Skip to content

Commit 540b7c9

Browse files
ddobrigkalibuild
andauthored
add ITS cluster map study for secondaries (#1897)
* add ITS cluster map study for secondaries * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 7bba362 commit 540b7c9

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

PWGLF/Tasks/QC/straRecoStudy.cxx

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,13 @@ struct preProcessMCcollisions {
190190
histos.add("h2dNContribSpecialCorr2b", "h2dNContribSpecialCorr2b", kTH2D, {axisContributorsTRD, axisContributorsTOF});
191191
}
192192

193-
void process(aod::McCollision const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const& collisions, TracksCompleteIUMC const& tracks, aod::McParticles const& mcParticles, aod::BCs const&)
193+
void processData(TracksCompleteIU const& tracks)
194+
{
195+
// Dummy process
196+
}
197+
PROCESS_SWITCH(preProcessMCcollisions, processData, "Real data dummy", false);
198+
199+
void processMC(aod::McCollision const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const& collisions, TracksCompleteIUMC const& tracks, aod::McParticles const& mcParticles, aod::BCs const&)
194200
{
195201
int lNumberOfXi = 0;
196202
for (auto& mcp : mcParticles) {
@@ -294,6 +300,7 @@ struct preProcessMCcollisions {
294300
}
295301
mcCollsExtra(collisions.size());
296302
}
303+
PROCESS_SWITCH(preProcessMCcollisions, processMC, "MC prepare", true);
297304
};
298305

299306
struct straRecoStudy {
@@ -381,6 +388,10 @@ struct straRecoStudy {
381388
const AxisSpec axisITSClu{10, -0.5f, +9.5f, "ITS clusters"};
382389
const AxisSpec axisTPCCroRo{160, -0.5f, +159.5f, "TPC crossed rows"};
383390

391+
// bit packed ITS cluster map
392+
const AxisSpec axisITSCluMap{(int)128, -0.5f, +127.5f, "Packed ITS map"};
393+
const AxisSpec axisRadius{(int)160, 0.0f, +80.0f, "Radius (cm)"};
394+
384395
TString lSpecies[] = {"K0Short", "Lambda", "AntiLambda", "XiMinus", "XiPlus", "OmegaMinus", "OmegaPlus"};
385396
const AxisSpec lMassAxis[] = {axisK0ShortMass, axisLambdaMass, axisLambdaMass, axisXiMass, axisXiMass, axisOmegaMass, axisOmegaMass};
386397

@@ -429,6 +440,12 @@ struct straRecoStudy {
429440
histos.add("h2dOmegaMinusQADCACascToPV", "h2dOmegaMinusQADCACascToPV", kTH2F, {axisVsPtCoarse, axisDCAWD});
430441
histos.add("h2dOmegaMinusQAPointingAngle", "h2dOmegaMinusQAPointingAngle", kTH2F, {axisVsPtCoarse, axisPA});
431442

443+
histos.add("h2dITSCluMap_V0Positive", "h2dITSCluMap_V0Positive", kTH2D, {axisITSCluMap, axisRadius});
444+
histos.add("h2dITSCluMap_V0Negative", "h2dITSCluMap_V0Negative", kTH2D, {axisITSCluMap, axisRadius});
445+
histos.add("h2dITSCluMap_CascPositive", "h2dITSCluMap_CascPositive", kTH2D, {axisITSCluMap, axisRadius});
446+
histos.add("h2dITSCluMap_CascNegative", "h2dITSCluMap_CascNegative", kTH2D, {axisITSCluMap, axisRadius});
447+
histos.add("h2dITSCluMap_CascBachelor", "h2dITSCluMap_CascBachelor", kTH2D, {axisITSCluMap, axisRadius});
448+
432449
// Track quality tests
433450
histos.add("h3dTrackPtsK0ShortP", "h3dTrackPtsK0ShortP", kTH3F, {axisVsPtCoarse, axisITSClu, axisTPCCroRo});
434451
histos.add("h3dTrackPtsK0ShortN", "h3dTrackPtsK0ShortN", kTH3F, {axisVsPtCoarse, axisITSClu, axisTPCCroRo});
@@ -534,6 +551,47 @@ struct straRecoStudy {
534551
}
535552
PROCESS_SWITCH(straRecoStudy, processV0, "Regular V0 analysis", true);
536553

554+
void processV0RealData(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision, aod::V0Datas const& v0tables, aod::CascDataExt const& Cascades, TracksCompleteIU const& tracks, aod::V0sLinked const&)
555+
{
556+
evselstats[kEvSelAll]++;
557+
if (event_sel8_selection && !collision.sel8()) {
558+
return;
559+
}
560+
evselstats[kEvSelBool]++;
561+
if (event_posZ_selection && abs(collision.posZ()) > 10.f) { // 10cm
562+
return;
563+
}
564+
evselstats[kEvSelVtxZ]++;
565+
for (auto& v0 : v0tables) {
566+
// MC association
567+
auto posPartTrack = v0.posTrack_as<TracksCompleteIU>();
568+
auto negPartTrack = v0.negTrack_as<TracksCompleteIU>();
569+
histos.fill(HIST("h2dITSCluMap_V0Positive"), (float)posPartTrack.itsClusterMap(), v0.v0radius());
570+
histos.fill(HIST("h2dITSCluMap_V0Negative"), (float)negPartTrack.itsClusterMap(), v0.v0radius());
571+
572+
if (posPartTrack.itsNCls() < itsminclusters || negPartTrack.itsNCls() < itsminclusters)
573+
continue;
574+
if (posPartTrack.tpcNClsCrossedRows() < tpcmincrossedrows || negPartTrack.tpcNClsCrossedRows() < tpcmincrossedrows)
575+
continue;
576+
577+
if (v0.v0radius() > v0setting_radius && v0.v0radius() < maxV0Radius) {
578+
if (v0.v0cosPA(collision.posX(), collision.posY(), collision.posZ()) > v0setting_cospa) {
579+
if (v0.dcaV0daughters() < v0setting_dcav0dau) {
580+
//*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*
581+
// Fill invariant masses
582+
histos.fill(HIST("h2dMassK0Short"), v0.pt(), v0.mK0Short());
583+
histos.fill(HIST("h2dMassLambda"), v0.pt(), v0.mLambda());
584+
histos.fill(HIST("h2dMassAntiLambda"), v0.pt(), v0.mAntiLambda());
585+
//*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*
586+
}
587+
}
588+
}
589+
} // end v0 loop
590+
fillHistos();
591+
resetCounters();
592+
}
593+
PROCESS_SWITCH(straRecoStudy, processV0RealData, "Regular V0 analysis in real data", false);
594+
537595
void processCascade(soa::Join<aod::Collisions, aod::EvSels>::iterator const& collision, aod::V0Datas const&, soa::Filtered<CascMC> const& Cascades, TracksCompleteIUMC const& tracks, aod::McParticles const&, aod::V0sLinked const&)
538596
{
539597
if (event_sel8_selection && !collision.sel8()) {
@@ -652,6 +710,10 @@ struct straRecoStudy {
652710
auto posPartTrack = v0.posTrack_as<TracksCompleteIU>();
653711
auto negPartTrack = v0.negTrack_as<TracksCompleteIU>();
654712

713+
histos.fill(HIST("h2dITSCluMap_CascPositive"), (float)posPartTrack.itsClusterMap(), casc.v0radius());
714+
histos.fill(HIST("h2dITSCluMap_CascNegative"), (float)negPartTrack.itsClusterMap(), casc.v0radius());
715+
histos.fill(HIST("h2dITSCluMap_CascBachelor"), (float)bachPartTrack.itsClusterMap(), casc.cascradius());
716+
655717
if (casc.sign() < 0) {
656718
histos.fill(HIST("h3dTrackPtsXiMinusP"), casc.pt(), posPartTrack.itsNCls(), posPartTrack.tpcNClsCrossedRows());
657719
histos.fill(HIST("h3dTrackPtsXiMinusN"), casc.pt(), negPartTrack.itsNCls(), negPartTrack.tpcNClsCrossedRows());

0 commit comments

Comments
 (0)