@@ -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