@@ -58,6 +58,9 @@ enum CascadeHist {
5858 kLambdaDauDca ,
5959 kLambdaTransRadius ,
6060 kLambdaDcaToPv ,
61+ kStrangeTofBachelor ,
62+ kStrangeTofPosDau ,
63+ kStrangeTofNegDau ,
6164 // 2d qa
6265 kPtVsEta ,
6366 kPtVsPhi ,
@@ -67,6 +70,9 @@ enum CascadeHist {
6770 kPtVsMassOmega ,
6871 kPtVsMassLambda ,
6972 kMassXiVsMassOmega ,
73+ kStrangeTofVsTofBachelor ,
74+ kStrangeTofVsTofPosDau ,
75+ kStrangeTofVsTofNegDau ,
7076 // mc
7177 kOrigin ,
7278 kPdg ,
@@ -122,6 +128,7 @@ struct ConfCascadeQaBinning : o2::framework::ConfigurableGroup {
122128 o2::framework::ConfigurableAxis lambdaDauDca{" lambdaDauDca" , {{150 , 0 , 1.0 }}, " DCA of lambda daughters at lambda decay vertex" };
123129 o2::framework::ConfigurableAxis lambdaTransRadius{" lambdaTransRadius" , {{100 , 0 , 100 }}, " DCA of lambda daughters at lambda decay vertex" };
124130 o2::framework::ConfigurableAxis lambdaDcaToPv{" lambdaDcaToPv" , {{100 , 0 , 200 }}, " DCA of lambda daughter from primary vertex" };
131+ o2::framework::ConfigurableAxis strangeTof{" strangeTof" , {{500 , -5 , 5 }}, " Strangeness TOF vs TOF Nsigma for bachelor/daughters" };
125132};
126133
127134constexpr const char PrefixXiQaBinning[] = " XiQaBinning" ;
@@ -149,6 +156,9 @@ constexpr std::array<histmanager::HistInfo<CascadeHist>, kCascadeHistLast> HistT
149156 {kLambdaDauDca , o2::framework::HistType::kTH1F , " hLambdaDauDca" , " Daughter DCA at #Lambda decay vertex ; DCA_{#Lambda dau decay vertex} (cm); Entries" },
150157 {kLambdaTransRadius , o2::framework::HistType::kTH1F , " hLambdaTransRadius" , " Transverse radius of daughter #Lambda ; r_{xy,#Lambda dau} (cm); Entries" },
151158 {kLambdaDcaToPv , o2::framework::HistType::kTH1F , " hLambdaDcaToPv" , " DCA to primary vertex of daughter #Lambda ; DCA_{#Lambda} (cm); Entries" },
159+ {kStrangeTofBachelor , o2::framework::HistType::kTH1F , " hStrangeTofBachelor" , " Strange TOF of bachelor ; n#sigma_{TOF, strange}; Entries" },
160+ {kStrangeTofPosDau , o2::framework::HistType::kTH1F , " hStrangeTofPosDau" , " Strange TOF of positive Daughter ; n#sigma_{TOF, strange}; Entries" },
161+ {kStrangeTofNegDau , o2::framework::HistType::kTH1F , " hStrangeTofNegDau" , " Strange TOF of negative Daughter ; n#sigma_{TOF, strange}; Entries" },
152162 {kPtVsEta , o2::framework::HistType::kTH2F , " hPtVsEta" , " p_{T} vs #eta; p_{T} (GeV/#it{c}) ; #eta" },
153163 {kPtVsPhi , o2::framework::HistType::kTH2F , " hPtVsPhi" , " p_{T} vs #varphi; p_{T} (GeV/#it{c}) ; #varphi" },
154164 {kPhiVsEta , o2::framework::HistType::kTH2F , " hPhiVsEta" , " #varphi vs #eta; #varphi ; #eta" },
@@ -157,6 +167,9 @@ constexpr std::array<histmanager::HistInfo<CascadeHist>, kCascadeHistLast> HistT
157167 {kPtVsMassOmega , o2::framework::HistType::kTH2F , " hPtVsMassOmega" , " p_{T} vs mass #Omega; p_{T} (GeV/#it{c}); m_{#LambdaK} (GeV/#it{c}^{2})" },
158168 {kPtVsMassLambda , o2::framework::HistType::kTH2F , " hPtVsMassLambda" , " p_{T} vs mass daughter #Lambda; p_{T} (GeV/#it{c}); m_{#Lambda dau} (GeV/#it{c}^{2})" },
159169 {kMassXiVsMassOmega , o2::framework::HistType::kTH2F , " hMassXiVsMassOmega" , " mass #Xi vs mass #Omega; m_{#Lambda#pi} (GeV/#it{c}^{2}); m_{#LambdaK} (GeV/#it{c}^{2})" },
170+ {kStrangeTofVsTofBachelor , o2::framework::HistType::kTH2F , " hStrangeTofVsTofBachelor" , " TOF_{Strange} vs TOF_{Tracking} of bachelor; n#sigma_{TOF, strange}; n#sigma_{TOF, tracking}" },
171+ {kStrangeTofVsTofPosDau , o2::framework::HistType::kTH2F , " hStrangeTofVsTofPosDau" , " TOF_{Strange} vs TOF_{Tracking} of positive Daughter; n#sigma_{TOF, strange}; n#sigma_{TOF, tracking}" },
172+ {kStrangeTofVsTofNegDau , o2::framework::HistType::kTH2F , " hStrangeTofVsTofNegDau" , " TOF_{Strange} vs TOF_{Tracking} of negative Daughter; n#sigma_{TOF, strange}; n#sigma_{TOF, tracking}" },
160173 {kOrigin , o2::framework::HistType::kTH1F , " hOrigin" , " Status Codes (=Origin); Status Code; Entries" },
161174 {kPdg , o2::framework::HistType::kTH1F , " hPdg" , " PDG Codes of reconstructed v0; PDG Code; Entries" },
162175 {kPdgMother , o2::framework::HistType::kTH1F , " hPdgMother" , " PDG Codes of mother of reconstructed v0; PDG Code; Entries" },
@@ -194,25 +207,31 @@ constexpr std::array<histmanager::HistInfo<CascadeHist>, kCascadeHistLast> HistT
194207 {kPdgPartonicMother , {(conf).pdgCodes }},
195208
196209// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
197- #define CASCADE_HIST_QA_MAP (confAnalysis, confQa ) \
198- {kCosPa , {(confQa).cosPa }}, \
199- {kDecayDauDca , {(confQa).dauDcaAtDecay }}, \
200- {kTransRadius , {(confQa).transRadius }}, \
201- {kLambdaMass , {(confQa).lambdaMass }}, \
202- {kLambdaCosPa , {(confQa).lambdaCosPa }}, \
203- {kLambdaDauDca , {(confQa).lambdaDauDca }}, \
204- {kLambdaTransRadius , {(confQa).lambdaTransRadius }}, \
205- {kLambdaDcaToPv , {(confQa).lambdaDcaToPv }}, \
206- {kPtVsEta , {(confAnalysis).pt , (confAnalysis).eta }}, \
207- {kPtVsPhi , {(confAnalysis).pt , (confAnalysis).phi }}, \
208- {kPhiVsEta , {(confAnalysis).phi , (confAnalysis).eta }}, \
209- {kPtVsCosPa , {(confAnalysis).pt , (confQa).cosPa }}, \
210- {kMassXi , {(confQa).massXi }}, \
211- {kMassOmega , {(confQa).massOmega }}, \
212- {kPtVsMassXi , {(confAnalysis).pt , (confQa).massXi }}, \
213- {kPtVsMassOmega , {(confAnalysis).pt , (confQa).massOmega }}, \
214- {kPtVsMassLambda , {(confAnalysis).pt , (confQa).lambdaMass }}, \
215- {kMassXiVsMassOmega , {(confQa).massXi , (confQa).massOmega }},
210+ #define CASCADE_HIST_QA_MAP (confAnalysis, confQa ) \
211+ {kCosPa , {(confQa).cosPa }}, \
212+ {kDecayDauDca , {(confQa).dauDcaAtDecay }}, \
213+ {kTransRadius , {(confQa).transRadius }}, \
214+ {kLambdaMass , {(confQa).lambdaMass }}, \
215+ {kLambdaCosPa , {(confQa).lambdaCosPa }}, \
216+ {kLambdaDauDca , {(confQa).lambdaDauDca }}, \
217+ {kLambdaTransRadius , {(confQa).lambdaTransRadius }}, \
218+ {kLambdaDcaToPv , {(confQa).lambdaDcaToPv }}, \
219+ {kStrangeTofBachelor , {(confQa).strangeTof }}, \
220+ {kStrangeTofPosDau , {(confQa).strangeTof }}, \
221+ {kStrangeTofNegDau , {(confQa).strangeTof }}, \
222+ {kPtVsEta , {(confAnalysis).pt , (confAnalysis).eta }}, \
223+ {kPtVsPhi , {(confAnalysis).pt , (confAnalysis).phi }}, \
224+ {kPhiVsEta , {(confAnalysis).phi , (confAnalysis).eta }}, \
225+ {kPtVsCosPa , {(confAnalysis).pt , (confQa).cosPa }}, \
226+ {kMassXi , {(confQa).massXi }}, \
227+ {kMassOmega , {(confQa).massOmega }}, \
228+ {kPtVsMassXi , {(confAnalysis).pt , (confQa).massXi }}, \
229+ {kPtVsMassOmega , {(confAnalysis).pt , (confQa).massOmega }}, \
230+ {kPtVsMassLambda , {(confAnalysis).pt , (confQa).lambdaMass }}, \
231+ {kMassXiVsMassOmega , {(confQa).massXi , (confQa).massOmega }}, \
232+ {kStrangeTofVsTofBachelor , {(confQa).strangeTof , (confQa).strangeTof }}, \
233+ {kStrangeTofVsTofPosDau , {(confQa).strangeTof , (confQa).strangeTof }}, \
234+ {kStrangeTofVsTofNegDau , {(confQa).strangeTof , (confQa).strangeTof }},
216235
217236// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
218237#define CASCADE_HIST_MC_QA_MAP (confAnalysis, confQa ) \
@@ -431,7 +450,7 @@ class CascadeHistManager
431450 fillAnalysis (cascadeCandidate);
432451 }
433452 if constexpr (modes::isFlagSet (mode, modes::Mode::kQa )) {
434- fillQa (cascadeCandidate);
453+ fillQa (cascadeCandidate, bachelor, posDaughter, negDaughter );
435454 }
436455 }
437456
@@ -449,7 +468,7 @@ class CascadeHistManager
449468 this ->fillAnalysis (cascadeCandidate);
450469 }
451470 if constexpr (modes::isFlagSet (mode, modes::Mode::kQa )) {
452- this ->fillQa (cascadeCandidate);
471+ this ->fillQa (cascadeCandidate, bachelor, negDaughter, posDaughter );
453472 }
454473 if constexpr (modes::isFlagSet (mode, modes::Mode::kMc )) {
455474 this ->template fillMc <mode>(cascadeCandidate, col, mcParticles, mcMothers, mcPartonicMothers);
@@ -496,6 +515,9 @@ class CascadeHistManager
496515 mHistogramRegistry ->add (qaDir + getHistNameV2 (kLambdaDcaToPv , HistTable), getHistDesc (kLambdaDcaToPv , HistTable), getHistType (kLambdaDcaToPv , HistTable), {cascadeSpecs.at (kLambdaDcaToPv )});
497516 mHistogramRegistry ->add (qaDir + getHistNameV2 (kMassXi , HistTable), getHistDesc (kMassXi , HistTable), getHistType (kMassXi , HistTable), {cascadeSpecs.at (kMassXi )});
498517 mHistogramRegistry ->add (qaDir + getHistNameV2 (kMassOmega , HistTable), getHistDesc (kMassOmega , HistTable), getHistType (kMassOmega , HistTable), {cascadeSpecs.at (kMassOmega )});
518+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofBachelor , HistTable), getHistDesc (kStrangeTofBachelor , HistTable), getHistType (kStrangeTofBachelor , HistTable), {cascadeSpecs.at (kStrangeTofBachelor )});
519+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofPosDau , HistTable), getHistDesc (kStrangeTofPosDau , HistTable), getHistType (kStrangeTofPosDau , HistTable), {cascadeSpecs.at (kStrangeTofPosDau )});
520+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofNegDau , HistTable), getHistDesc (kStrangeTofNegDau , HistTable), getHistType (kStrangeTofNegDau , HistTable), {cascadeSpecs.at (kStrangeTofNegDau )});
499521
500522 if (mPlot2d ) {
501523 mHistogramRegistry ->add (qaDir + getHistNameV2 (kPtVsEta , HistTable), getHistDesc (kPtVsEta , HistTable), getHistType (kPtVsEta , HistTable), {cascadeSpecs.at (kPtVsEta )});
@@ -507,6 +529,9 @@ class CascadeHistManager
507529 mHistogramRegistry ->add (qaDir + getHistNameV2 (kPtVsMassOmega , HistTable), getHistDesc (kPtVsMassOmega , HistTable), getHistType (kPtVsMassOmega , HistTable), {cascadeSpecs.at (kPtVsMassOmega )});
508530 mHistogramRegistry ->add (qaDir + getHistNameV2 (kPtVsMassLambda , HistTable), getHistDesc (kPtVsMassLambda , HistTable), getHistType (kPtVsMassLambda , HistTable), {cascadeSpecs.at (kPtVsMassLambda )});
509531 mHistogramRegistry ->add (qaDir + getHistNameV2 (kMassXiVsMassOmega , HistTable), getHistDesc (kMassXiVsMassOmega , HistTable), getHistType (kMassXiVsMassOmega , HistTable), {cascadeSpecs.at (kMassXiVsMassOmega )});
532+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofVsTofBachelor , HistTable), getHistDesc (kStrangeTofVsTofBachelor , HistTable), getHistType (kStrangeTofVsTofBachelor , HistTable), {cascadeSpecs.at (kStrangeTofVsTofBachelor )});
533+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofVsTofPosDau , HistTable), getHistDesc (kStrangeTofVsTofPosDau , HistTable), getHistType (kStrangeTofVsTofPosDau , HistTable), {cascadeSpecs.at (kStrangeTofVsTofPosDau )});
534+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kStrangeTofVsTofNegDau , HistTable), getHistDesc (kStrangeTofVsTofNegDau , HistTable), getHistType (kStrangeTofVsTofNegDau , HistTable), {cascadeSpecs.at (kStrangeTofVsTofNegDau )});
510535 }
511536 }
512537
@@ -562,19 +587,33 @@ class CascadeHistManager
562587 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (AnalysisDir) + HIST (getHistName (kPtVsMass , HistTable)), cascadeCandidate.pt (), cascadeCandidate.mass ());
563588 }
564589
565- template <typename T >
566- void fillQa (T const & cascadeCandidate)
590+ template <typename T1 , typename T2 , typename T3 , typename T4 >
591+ void fillQa (T1 const & cascadeCandidate, T2 const & bachelor, T3 const & posDau, T4 const & negDau )
567592 {
568593 float massXi = 0 .f ;
569594 float massOmega = 0 .f ;
595+ float tofBachelor = 0 .f ;
596+ float tofPosDau = 0 .f ;
597+ float tofNegDau = 0 .f ;
570598 if constexpr (modes::isEqual (cascade, modes::Cascade::kXi )) {
571599 massXi = cascadeCandidate.mass ();
572600 massOmega = cascadeCandidate.massOmega ();
601+ tofBachelor = bachelor.tofNSigmaPi ();
573602 }
574603 if constexpr (modes::isEqual (cascade, modes::Cascade::kOmega )) {
575604 massXi = cascadeCandidate.massXi ();
576605 massOmega = cascadeCandidate.mass ();
606+ tofBachelor = bachelor.tofNSigmaKa ();
577607 }
608+
609+ if (cascadeCandidate.sign () > 0 ) {
610+ tofPosDau = posDau.tofNSigmaPr ();
611+ tofNegDau = negDau.tofNSigmaPi ();
612+ } else {
613+ tofPosDau = posDau.tofNSigmaPi ();
614+ tofNegDau = negDau.tofNSigmaPr ();
615+ }
616+
578617 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kCosPa , HistTable)), cascadeCandidate.cascadeCosPa ());
579618 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kDecayDauDca , HistTable)), cascadeCandidate.cascadeDauDca ());
580619 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kTransRadius , HistTable)), cascadeCandidate.cascadeTransRadius ());
@@ -585,6 +624,9 @@ class CascadeHistManager
585624 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kLambdaDcaToPv , HistTable)), cascadeCandidate.lambdaDcaToPv ());
586625 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kMassXi , HistTable)), massXi);
587626 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kMassOmega , HistTable)), massOmega);
627+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofBachelor , HistTable)), cascadeCandidate.strangeTofBachelor ());
628+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofPosDau , HistTable)), cascadeCandidate.strangeTofPosDau ());
629+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofNegDau , HistTable)), cascadeCandidate.strangeTofNegDau ());
588630
589631 if (mPlot2d ) {
590632 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kPtVsEta , HistTable)), cascadeCandidate.pt (), cascadeCandidate.eta ());
@@ -595,6 +637,9 @@ class CascadeHistManager
595637 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kPtVsMassOmega , HistTable)), cascadeCandidate.pt (), massOmega);
596638 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kPtVsMassLambda , HistTable)), cascadeCandidate.pt (), cascadeCandidate.lambdaMass ());
597639 mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kMassXiVsMassOmega , HistTable)), massXi, massOmega);
640+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofVsTofBachelor , HistTable)), cascadeCandidate.strangeTofBachelor (), tofBachelor);
641+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofVsTofPosDau , HistTable)), cascadeCandidate.strangeTofPosDau (), tofPosDau);
642+ mHistogramRegistry ->fill (HIST (cascadePrefix) + HIST (QaDir) + HIST (getHistName (kStrangeTofVsTofNegDau , HistTable)), cascadeCandidate.strangeTofNegDau (), tofNegDau);
598643 }
599644 }
600645
0 commit comments