Skip to content

Commit 79318c1

Browse files
authored
add ITS cluster map study for secondaries
1 parent afbe65e commit 79318c1

1 file changed

Lines changed: 57 additions & 2 deletions

File tree

PWGLF/Tasks/QC/straRecoStudy.cxx

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ struct preProcessMCcollisions {
149149
histos.add("h2dPVResolutionXYWithXi", "h2dPVResolutionXYWithXi", kTH2D, {axisPVResolutionXY, axisTwenty});
150150
histos.add("h2dPVResolutionZWithXi", "h2dPVResolutionZWithXi", kTH2D, {axisPVResolutionZ, axisTwenty});
151151
histos.add("h2dPVResolutionTWithXi", "h2dPVResolutionTWithXi", kTH2D, {axisPVResolutionT, axisTwenty});
152-
152+
153153
// Helper to decipher this histogram
154154
histos.get<TH2>(HIST("h2dNContributors"))->GetYaxis()->SetBinLabel(1, "Recoed 1 time, 1st PV"); // size 1 = 0
155155
histos.get<TH2>(HIST("h2dNContributors"))->GetYaxis()->SetBinLabel(2, "Recoed 2 times, Biggest PV"); // size 2 = 1
@@ -380,6 +380,10 @@ struct straRecoStudy {
380380

381381
const AxisSpec axisITSClu{10, -0.5f, +9.5f, "ITS clusters"};
382382
const AxisSpec axisTPCCroRo{160, -0.5f, +159.5f, "TPC crossed rows"};
383+
384+
// bit packed ITS cluster map
385+
const AxisSpec axisITSCluMap{(int)128, -0.5f, +127.5f, "Packed ITS map"};
386+
const AxisSpec axisRadius{(int)160, 0.0f, +80.0f, "Radius (cm)"};
383387

384388
TString lSpecies[] = {"K0Short", "Lambda", "AntiLambda", "XiMinus", "XiPlus", "OmegaMinus", "OmegaPlus"};
385389
const AxisSpec lMassAxis[] = {axisK0ShortMass, axisLambdaMass, axisLambdaMass, axisXiMass, axisXiMass, axisOmegaMass, axisOmegaMass};
@@ -428,6 +432,12 @@ struct straRecoStudy {
428432
histos.add("h2dOmegaMinusQADCABachToPV", "h2dOmegaMinusQADCABachToPV", kTH2F, {axisVsPtCoarse, axisDCA});
429433
histos.add("h2dOmegaMinusQADCACascToPV", "h2dOmegaMinusQADCACascToPV", kTH2F, {axisVsPtCoarse, axisDCAWD});
430434
histos.add("h2dOmegaMinusQAPointingAngle", "h2dOmegaMinusQAPointingAngle", kTH2F, {axisVsPtCoarse, axisPA});
435+
436+
histos.add("h2dITSCluMap_V0Positive", "h2dITSCluMap_V0Positive", kTH2D, {axisITSCluMap, axisRadius});
437+
histos.add("h2dITSCluMap_V0Negative", "h2dITSCluMap_V0Negative", kTH2D, {axisITSCluMap, axisRadius});
438+
histos.add("h2dITSCluMap_CascPositive", "h2dITSCluMap_CascPositive", kTH2D, {axisITSCluMap, axisRadius});
439+
histos.add("h2dITSCluMap_CascNegative", "h2dITSCluMap_CascNegative", kTH2D, {axisITSCluMap, axisRadius});
440+
histos.add("h2dITSCluMap_CascBachelor", "h2dITSCluMap_CascBachelor", kTH2D, {axisITSCluMap, axisRadius});
431441

432442
// Track quality tests
433443
histos.add("h3dTrackPtsK0ShortP", "h3dTrackPtsK0ShortP", kTH3F, {axisVsPtCoarse, axisITSClu, axisTPCCroRo});
@@ -533,6 +543,47 @@ struct straRecoStudy {
533543
resetCounters();
534544
}
535545
PROCESS_SWITCH(straRecoStudy, processV0, "Regular V0 analysis", true);
546+
547+
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&)
548+
{
549+
evselstats[kEvSelAll]++;
550+
if (event_sel8_selection && !collision.sel8()) {
551+
return;
552+
}
553+
evselstats[kEvSelBool]++;
554+
if (event_posZ_selection && abs(collision.posZ()) > 10.f) { // 10cm
555+
return;
556+
}
557+
evselstats[kEvSelVtxZ]++;
558+
for (auto& v0 : v0tables) {
559+
// MC association
560+
auto posPartTrack = v0.posTrack_as<TracksCompleteIU>();
561+
auto negPartTrack = v0.negTrack_as<TracksCompleteIU>();
562+
histos.fill(HIST("h2dITSCluMap_V0Positive"), (float)posPartTrack.itsClusterMap(), v0.v0radius());
563+
histos.fill(HIST("h2dITSCluMap_V0Negative"), (float)negPartTrack.itsClusterMap(), v0.v0radius());
564+
565+
if (posPartTrack.itsNCls() < itsminclusters || negPartTrack.itsNCls() < itsminclusters)
566+
continue;
567+
if (posPartTrack.tpcNClsCrossedRows() < tpcmincrossedrows || negPartTrack.tpcNClsCrossedRows() < tpcmincrossedrows)
568+
continue;
569+
570+
if (v0.v0radius() > v0setting_radius && v0.v0radius() < maxV0Radius) {
571+
if (v0.v0cosPA(collision.posX(), collision.posY(), collision.posZ()) > v0setting_cospa) {
572+
if (v0.dcaV0daughters() < v0setting_dcav0dau) {
573+
//*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*
574+
// Fill invariant masses
575+
histos.fill(HIST("h2dMassK0Short"), v0.pt(), v0.mK0Short());
576+
histos.fill(HIST("h2dMassLambda"), v0.pt(), v0.mLambda());
577+
histos.fill(HIST("h2dMassAntiLambda"), v0.pt(), v0.mAntiLambda());
578+
//*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*
579+
}
580+
}
581+
}
582+
} // end v0 loop
583+
fillHistos();
584+
resetCounters();
585+
}
586+
PROCESS_SWITCH(straRecoStudy, processV0RealData, "Regular V0 analysis in real data", false);
536587

537588
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&)
538589
{
@@ -651,6 +702,10 @@ struct straRecoStudy {
651702
auto v0 = v0index.v0Data(); // de-reference index to correct v0data in case it exists
652703
auto posPartTrack = v0.posTrack_as<TracksCompleteIU>();
653704
auto negPartTrack = v0.negTrack_as<TracksCompleteIU>();
705+
706+
histos.fill(HIST("h2dITSCluMap_CascPositive"), (float)posPartTrack.itsClusterMap(), casc.v0radius());
707+
histos.fill(HIST("h2dITSCluMap_CascNegative"), (float)negPartTrack.itsClusterMap(), casc.v0radius());
708+
histos.fill(HIST("h2dITSCluMap_CascBachelor"), (float)bachPartTrack.itsClusterMap(), casc.cascradius());
654709

655710
if (casc.sign() < 0) {
656711
histos.fill(HIST("h3dTrackPtsXiMinusP"), casc.pt(), posPartTrack.itsNCls(), posPartTrack.tpcNClsCrossedRows());
@@ -692,7 +747,7 @@ struct straRecoStudy {
692747
}
693748
}
694749
PROCESS_SWITCH(straRecoStudy, processCascadeRealData, "Regular cascade analysis, real data", false);
695-
750+
696751
void processGeneratedReconstructible(soa::Filtered<RecoedMCCollisions>::iterator const& collision, aod::McParticles const& mcParticles)
697752
{
698753
// check if collision successfully reconstructed

0 commit comments

Comments
 (0)