Skip to content

Commit 4e70102

Browse files
Add QA histogram on V0 selection
1 parent 6fdf9cd commit 4e70102

File tree

1 file changed

+68
-5
lines changed

1 file changed

+68
-5
lines changed

PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -558,9 +558,9 @@ struct derivedlambdakzeroanalysis {
558558
}
559559

560560
// Primary particle selection, central to analysis
561-
maskSelectionK0Short = maskTopological | maskTrackProperties | maskK0ShortSpecific | (static_cast<uint64_t>(1) << selPhysPrimK0Short);
562-
maskSelectionLambda = maskTopological | maskTrackProperties | maskLambdaSpecific | (static_cast<uint64_t>(1) << selPhysPrimLambda);
563-
maskSelectionAntiLambda = maskTopological | maskTrackProperties | maskAntiLambdaSpecific | (static_cast<uint64_t>(1) << selPhysPrimAntiLambda);
561+
maskSelectionK0Short = maskTopological | maskTrackProperties | maskK0ShortSpecific;
562+
maskSelectionLambda = maskTopological | maskTrackProperties | maskLambdaSpecific;
563+
maskSelectionAntiLambda = maskTopological | maskTrackProperties | maskAntiLambdaSpecific;
564564

565565
BITSET(maskSelectionK0Short, selPhysPrimK0Short);
566566
BITSET(maskSelectionLambda, selPhysPrimLambda);
@@ -659,6 +659,51 @@ struct derivedlambdakzeroanalysis {
659659
hPrimaryV0s->GetXaxis()->SetBinLabel(1, "All V0s");
660660
hPrimaryV0s->GetXaxis()->SetBinLabel(2, "Primary V0s");
661661

662+
auto hSelectionV0s = histos.add<TH1>("GeneralQA/hSelectionV0s", "hSelectionV0s", kTH1D, {{static_cast<int>(selPhysPrimAntiLambda) + 3, -0.5f, static_cast<double>(selPhysPrimAntiLambda) + 2.5f}});
663+
hSelectionV0s->GetXaxis()->SetBinLabel(1, "All");
664+
hSelectionV0s->GetXaxis()->SetBinLabel(selCosPA+2, "cosPA");
665+
hSelectionV0s->GetXaxis()->SetBinLabel(selRadius+2, "Radius min.");
666+
hSelectionV0s->GetXaxis()->SetBinLabel(selRadiusMax+2, "Radius max.");
667+
hSelectionV0s->GetXaxis()->SetBinLabel(selDCANegToPV+2, "DCA neg. to PV");
668+
hSelectionV0s->GetXaxis()->SetBinLabel(selDCAPosToPV+2, "DCA pos. to PV");
669+
hSelectionV0s->GetXaxis()->SetBinLabel(selDCAV0Dau+2, "DCA V0 dau.");
670+
hSelectionV0s->GetXaxis()->SetBinLabel(selK0ShortRapidity+2, "K^{0}_{S} rapidity");
671+
hSelectionV0s->GetXaxis()->SetBinLabel(selLambdaRapidity+2, "#Lambda rapidity");
672+
hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDPositivePion+2, "TPC PID #pi^{+}");
673+
hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDNegativePion+2, "TPC PID #pi^{-}");
674+
hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDPositiveProton+2, "TPC PID p");
675+
hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDNegativeProton+2, "TPC PID #bar{p}");
676+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTPositiveProtonLambda+2, "TOF #Delta t p from #Lambda");
677+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTPositivePionLambda+2, "TOF #Delta t #pi^{+} from #Lambda");
678+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTPositivePionK0Short+2, "TOF #Delta t #pi^{+} from K^{0}_{S}");
679+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTNegativeProtonLambda+2, "TOF #Delta t #bar{p} from #Lambda");
680+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTNegativePionLambda+2, "TOF #Delta t #pi^{-} from #Lambda");
681+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFDeltaTNegativePionK0Short+2, "TOF #Delta t #pi^{-} from K^{0}_{S}");
682+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaPositiveProtonLambda+2, "TOF PID p from #Lambda");
683+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaPositivePionLambda+2, "TOF PID #pi^{+} from #Lambda");
684+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaPositivePionK0Short+2, "TOF PID #pi^{+} from K^{0}_{S}");
685+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaNegativeProtonLambda+2, "TOF PID #bar{p} from #Lambda");
686+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaNegativePionLambda+2, "TOF PID #pi^{-} from #Lambda");
687+
hSelectionV0s->GetXaxis()->SetBinLabel(selTOFNSigmaNegativePionK0Short+2, "TOF PID #pi^{-} from K^{0}_{S}");
688+
hSelectionV0s->GetXaxis()->SetBinLabel(selK0ShortCTau+2, "K^{0}_{S} lifetime");
689+
hSelectionV0s->GetXaxis()->SetBinLabel(selLambdaCTau+2, "#Lambda lifetime");
690+
hSelectionV0s->GetXaxis()->SetBinLabel(selK0ShortArmenteros+2, "Arm. pod. cut");
691+
hSelectionV0s->GetXaxis()->SetBinLabel(selPosGoodTPCTrack+2, "Pos. good TPC track");
692+
hSelectionV0s->GetXaxis()->SetBinLabel(selNegGoodTPCTrack+2, "Neg. good TPC track");
693+
hSelectionV0s->GetXaxis()->SetBinLabel(selPosGoodITSTrack+2, "Pos. good ITS track");
694+
hSelectionV0s->GetXaxis()->SetBinLabel(selNegGoodITSTrack+2, "Neg. good ITS track");
695+
hSelectionV0s->GetXaxis()->SetBinLabel(selPosItsOnly+2, "Pos. ITS-only");
696+
hSelectionV0s->GetXaxis()->SetBinLabel(selNegItsOnly+2, "Neg. ITS-only");
697+
hSelectionV0s->GetXaxis()->SetBinLabel(selPosNotTPCOnly+2, "Pos. not TPC-only");
698+
hSelectionV0s->GetXaxis()->SetBinLabel(selNegNotTPCOnly+2, "Neg. not TPC-only");
699+
hSelectionV0s->GetXaxis()->SetBinLabel(selConsiderK0Short+2, "True K^{0}_{S}");
700+
hSelectionV0s->GetXaxis()->SetBinLabel(selConsiderLambda+2, "True #Lambda");
701+
hSelectionV0s->GetXaxis()->SetBinLabel(selConsiderAntiLambda+2, "True #bar{#Lambda}");
702+
hSelectionV0s->GetXaxis()->SetBinLabel(selPhysPrimK0Short+2, "Phys. prim. K^{0}_{S}");
703+
hSelectionV0s->GetXaxis()->SetBinLabel(selPhysPrimLambda+2, "Phys. prim. #Lambda");
704+
hSelectionV0s->GetXaxis()->SetBinLabel(selPhysPrimAntiLambda+2, "Phys. prim. #bar{#Lambda}");
705+
hSelectionV0s->GetXaxis()->SetBinLabel(selPhysPrimAntiLambda+3, "Cand. selected");
706+
662707
// histograms versus mass
663708
if (analyseK0Short) {
664709
histos.add("h2dNbrOfK0ShortVsCentrality", "h2dNbrOfK0ShortVsCentrality", kTH2D, {axisConfigurations.axisCentrality, {10, -0.5f, 9.5f}});
@@ -882,8 +927,12 @@ struct derivedlambdakzeroanalysis {
882927
if (analyseAntiLambda && calculateFeeddownMatrix && (doprocessMonteCarloRun3 || doprocessMonteCarloRun2))
883928
histos.add("h3dAntiLambdaFeeddown", "h3dAntiLambdaFeeddown", kTH3D, {axisConfigurations.axisCentrality, axisConfigurations.axisPt, axisConfigurations.axisPtXi});
884929

885-
// demo // fast
886-
histos.add("hMassK0Short", "hMassK0Short", kTH1D, {axisConfigurations.axisK0Mass});
930+
if (analyseK0Short)
931+
histos.add("hMassK0Short", "hMassK0Short", kTH1D, {axisConfigurations.axisK0Mass});
932+
if (analyseLambda)
933+
histos.add("hMassLambda", "hMassLambda", kTH1D, {axisConfigurations.axisLambdaMass});
934+
if (analyseAntiLambda)
935+
histos.add("hMassAntiLambda", "hMassAntiLambda", kTH1D, {axisConfigurations.axisLambdaMass});
887936

888937
// QA histograms if requested
889938
if (doCompleteTopoQA) {
@@ -1477,9 +1526,19 @@ struct derivedlambdakzeroanalysis {
14771526
histos.fill(HIST("h2dNegativePtVsPhi"), v0.negativept(), computePhiMod(v0.negativephi(), -1));
14781527
}
14791528

1529+
// Fill first bin: all candidates
1530+
histos.fill(HIST("GeneralQA/hSelectionV0s"), 0);
1531+
// Loop over all bits in the enum and fill if passed
1532+
for (int i = 0; i <= selPhysPrimAntiLambda; i++) {
1533+
if (BITCHECK(selMap, i)) {
1534+
histos.fill(HIST("GeneralQA/hSelectionV0s"), i + 1); // +1 because bin 0 = "All"
1535+
}
1536+
}
1537+
14801538
// __________________________________________
14811539
// main analysis
14821540
if (passK0ShortSelections && analyseK0Short) {
1541+
histos.fill(HIST("GeneralQA/hSelectionV0s"), selPhysPrimAntiLambda+2); //
14831542
histos.fill(HIST("GeneralQA/h2dArmenterosSelected"), v0.alpha(), v0.qtarm()); // cross-check
14841543
histos.fill(HIST("h3dMassK0Short"), centrality, pt, v0.mK0Short());
14851544
if (gapSide == 0)
@@ -1563,6 +1622,7 @@ struct derivedlambdakzeroanalysis {
15631622
nK0Shorts++;
15641623
}
15651624
if (passLambdaSelections && analyseLambda) {
1625+
histos.fill(HIST("GeneralQA/hSelectionV0s"), selPhysPrimAntiLambda+2); //
15661626
histos.fill(HIST("h3dMassLambda"), centrality, pt, v0.mLambda());
15671627
if (gapSide == 0)
15681628
histos.fill(HIST("h3dMassLambdaSGA"), centrality, pt, v0.mLambda());
@@ -1572,6 +1632,7 @@ struct derivedlambdakzeroanalysis {
15721632
histos.fill(HIST("h3dMassLambdaDG"), centrality, pt, v0.mLambda());
15731633
else
15741634
histos.fill(HIST("h3dMassLambdaHadronic"), centrality, pt, v0.mLambda());
1635+
histos.fill(HIST("hMassLambda"), v0.mLambda());
15751636
if (doPlainTopoQA) {
15761637
histos.fill(HIST("Lambda/hPosDCAToPV"), v0.dcapostopv());
15771638
histos.fill(HIST("Lambda/hNegDCAToPV"), v0.dcanegtopv());
@@ -1644,6 +1705,7 @@ struct derivedlambdakzeroanalysis {
16441705
nLambdas++;
16451706
}
16461707
if (passAntiLambdaSelections && analyseAntiLambda) {
1708+
histos.fill(HIST("GeneralQA/hSelectionV0s"), selPhysPrimAntiLambda+2); //
16471709
histos.fill(HIST("h3dMassAntiLambda"), centrality, pt, v0.mAntiLambda());
16481710
if (gapSide == 0)
16491711
histos.fill(HIST("h3dMassAntiLambdaSGA"), centrality, pt, v0.mAntiLambda());
@@ -1653,6 +1715,7 @@ struct derivedlambdakzeroanalysis {
16531715
histos.fill(HIST("h3dMassAntiLambdaDG"), centrality, pt, v0.mAntiLambda());
16541716
else
16551717
histos.fill(HIST("h3dMassAntiLambdaHadronic"), centrality, pt, v0.mAntiLambda());
1718+
histos.fill(HIST("hMassAntiLambda"), v0.mAntiLambda());
16561719
if (doPlainTopoQA) {
16571720
histos.fill(HIST("AntiLambda/hPosDCAToPV"), v0.dcapostopv());
16581721
histos.fill(HIST("AntiLambda/hNegDCAToPV"), v0.dcanegtopv());

0 commit comments

Comments
 (0)