@@ -57,6 +57,8 @@ enum Sigma0Hist {
5757 kDecayVtxY ,
5858 kDecayVtxZ ,
5959 kDecayVtx ,
60+ kPosDauEta ,
61+ kNegDauEta ,
6062 // 2d qa
6163 kPtVsEta ,
6264 kPtVsPhi ,
@@ -110,6 +112,8 @@ struct ConfSigma0QaBinning : o2::framework::ConfigurableGroup {
110112 o2::framework::ConfigurableAxis massAntiSigma0{" massAntiSigma0" , {{100 , 1 , 1.2 }}, " mass for antiparticle hypothesis" };
111113};
112114
115+ constexpr char PrefixSigma0Se[] = " Sigma0/SE/" ;
116+ constexpr char PrefixSigma0Me[] = " Sigma0/ME/" ;
113117constexpr const char PrefixSigma0QaBinning[] = " Sigma0QaBinning" ;
114118using ConfSigma0QaBinningDefault = ConfSigma0QaBinning<PrefixSigma0QaBinning>;
115119
@@ -128,6 +132,8 @@ constexpr std::array<histmanager::HistInfo<Sigma0Hist>, kSigma0HistLast> HistTab
128132 {kDecayVtxY , o2::framework::HistType::kTH1F , " hDecayVtxY" , " Y coordinate of decay vertex ; DV_{Y} (cm); Entries" },
129133 {kDecayVtxZ , o2::framework::HistType::kTH1F , " hDecayVtxZ" , " Z coordinate of decay vertex ; DV_{Z} (cm); Entries" },
130134 {kDecayVtx , o2::framework::HistType::kTH1F , " hDecayVtx" , " Distance of decay vertex from primary vertex ; DV (cm); Entries" },
135+ {kPosDauEta , o2::framework::HistType::kTH1F , " hPosDAuEta" , " #eta of positive v0 track ; #eta; Entries" },
136+ {kNegDauEta , o2::framework::HistType::kTH1F , " hNegDAuEta" , " #eta of negative v0 track ; #eta; Entries" },
131137 {kPtVsEta , o2::framework::HistType::kTH2F , " hPtVsEta" , " p_{T} vs #eta; p_{T} (GeV/#it{c}) ; #eta" },
132138 {kPtVsPhi , o2::framework::HistType::kTH2F , " hPtVsPhi" , " p_{T} vs #varphi; p_{T} (GeV/#it{c}) ; #varphi" },
133139 {kPhiVsEta , o2::framework::HistType::kTH2F , " hPhiVsEta" , " #varphi vs #eta; #varphi ; #eta" },
@@ -167,6 +173,8 @@ constexpr std::array<histmanager::HistInfo<Sigma0Hist>, kSigma0HistLast> HistTab
167173 {kDecayVtxY , {(confQa).decayVertex }}, \
168174 {kDecayVtxZ , {(confQa).decayVertex }}, \
169175 {kDecayVtx , {(confQa).decayVertex }}, \
176+ {kPosDauEta , {(confAnalysis).eta }}, \
177+ {kNegDauEta , {(confAnalysis).eta }}, \
170178 {kPtVsEta , {(confAnalysis).pt , (confAnalysis).eta }}, \
171179 {kPtVsPhi , {(confAnalysis).pt , (confAnalysis).phi }}, \
172180 {kPhiVsEta , {(confAnalysis).phi , (confAnalysis).eta }}, \
@@ -177,6 +185,7 @@ constexpr std::array<histmanager::HistInfo<Sigma0Hist>, kSigma0HistLast> HistTab
177185 {kPtVsAntiSigma0Mass , {(confAnalysis).pt , (confQa).massAntiSigma0 }}, \
178186 {kSigma0MassVsAntiSigma0Mass , {(confQa).massSigma0 , (confQa).massAntiSigma0 }},
179187
188+
180189// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
181190#define SIGMA0_HIST_MC_QA_MAP (confAnalysis, confQa ) \
182191 {kNoMcParticle , {(confAnalysis).pt , (confQa).cosPa }}, \
@@ -303,11 +312,16 @@ class Sigma0HistManager
303312 }
304313 }
305314
306- // wrapper for tripletProcessHelpers
315+ // FIXME: dummy wrapper to satisfy triplet process helpers; rehaul Sigma0 QA and find a better solution for process helpers table consumption
307316 template <modes::Mode mode, typename T1 , typename T2 >
308- void fill (T1 const & sigma0candidate, T2 const & tracks )
317+ void fill (T1 const & sigma0candidate, T2 const & trackTable )
309318 {
310319 this ->fillAnalysis (sigma0candidate);
320+ auto posDau = trackTable.rawIteratorAt (sigma0candidate.posDauId () - trackTable.offset ());
321+ auto negDau = trackTable.rawIteratorAt (sigma0candidate.negDauId () - trackTable.offset ());
322+ if constexpr (modes::isFlagSet (mode, modes::Mode::kQa )) {
323+ this ->fillQaLite (sigma0candidate, posDau, negDau);
324+ }
311325 }
312326
313327 // fill sigma0 + lambda + photon
@@ -329,11 +343,16 @@ class Sigma0HistManager
329343 this ->template fillMc <mode>(sigma0candidate, col, mcParticles, mcMothers, mcPartonicMothers);
330344 }
331345 }
332- // wrapper for tripletProcessHelpers
346+ // FIXME: dummy wrapper to satisfy triplet process helpers; rehaul Sigma0 QA and find a better solution for process helpers table consumption
333347 template <modes::Mode mode, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
334348 void fill (T1 const & sigma0candidate, T2 const & trackTable, T3 const & col, T4 const & mcParticles, T5 const & mcMothers, T6 const & mcPartonicMothers)
335349 {
336350 this ->template fillMc <mode>(sigma0candidate, col, mcParticles, mcMothers, mcPartonicMothers);
351+ auto posDau = trackTable.rawIteratorAt (sigma0candidate.posDauId () - trackTable.offset ());
352+ auto negDau = trackTable.rawIteratorAt (sigma0candidate.negDauId () - trackTable.offset ());
353+ if constexpr (modes::isFlagSet (mode, modes::Mode::kQa )) {
354+ this ->fillQaLite (sigma0candidate, posDau, negDau);
355+ }
337356 }
338357 // fill mc + lambda + photon
339358 template <modes::Mode mode, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
@@ -383,6 +402,9 @@ class Sigma0HistManager
383402 mHistogramRegistry ->add (qaDir + getHistNameV2 (kDecayVtxY , HistTable), getHistDesc (kDecayVtxY , HistTable), getHistType (kDecayVtxY , HistTable), {Sigma0Specs.at (kDecayVtxY )});
384403 mHistogramRegistry ->add (qaDir + getHistNameV2 (kDecayVtxZ , HistTable), getHistDesc (kDecayVtxZ , HistTable), getHistType (kDecayVtxZ , HistTable), {Sigma0Specs.at (kDecayVtxZ )});
385404 mHistogramRegistry ->add (qaDir + getHistNameV2 (kDecayVtx , HistTable), getHistDesc (kDecayVtx , HistTable), getHistType (kDecayVtx , HistTable), {Sigma0Specs.at (kDecayVtx )});
405+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kDecayVtx , HistTable), getHistDesc (kDecayVtx , HistTable), getHistType (kDecayVtx , HistTable), {Sigma0Specs.at (kDecayVtx )});
406+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kPosDauEta , HistTable), getHistDesc (kPosDauEta , HistTable), getHistType (kPosDauEta , HistTable), {Sigma0Specs.at (kPosDauEta )});
407+ mHistogramRegistry ->add (qaDir + getHistNameV2 (kNegDauEta , HistTable), getHistDesc (kNegDauEta , HistTable), getHistType (kNegDauEta , HistTable), {Sigma0Specs.at (kNegDauEta )});
386408
387409 if (mPlot2d ) {
388410 mHistogramRegistry ->add (qaDir + getHistNameV2 (kPtVsEta , HistTable), getHistDesc (kPtVsEta , HistTable), getHistType (kPtVsEta , HistTable), {Sigma0Specs.at (kPtVsEta )});
@@ -458,6 +480,15 @@ class Sigma0HistManager
458480 }
459481 }
460482
483+ // TODO: currently wrapper for triplet process helpers, eventually a wrapper for Tracks-only dependent QA filling
484+ template <typename T1 , typename T2 >
485+ void fillQaLite (T1 const & sigma0candidate, T2 const & posDau, T2 const & negDau)
486+ {
487+ this ->template fillQa (sigma0candidate);
488+ mHistogramRegistry ->fill (HIST (sigma0Prefix) + HIST (QaDir) + HIST (getHistName (kPosDauEta , HistTable)), posDau.eta ());
489+ mHistogramRegistry ->fill (HIST (sigma0Prefix) + HIST (QaDir) + HIST (getHistName (kNegDauEta , HistTable)), negDau.eta ());
490+ }
491+
461492 template <modes::Mode mode, typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
462493 void fillMc (T1 const & sigma0Candidate, T2 const & col, T3 const & /* mcParticles*/ , T4 const & /* mcMothers*/ , T5 const & /* mcPartonicMothers*/ )
463494 {
@@ -520,4 +551,4 @@ class Sigma0HistManager
520551 photonhistmanager::PhotonHistManager<PrefixPhoton> mPhotonManager ;
521552};
522553}; // namespace o2::analysis::femto::sigma0histmanager
523- #endif // PWGCF_FEMTO_CORE_Sigma0HISTMANAGER_H_
554+ #endif // PWGCF_FEMTO_CORE_SIGMA0HISTMANAGER_H_
0 commit comments