3636#include < string_view>
3737#include < vector>
3838
39- namespace o2 ::analysis::femto
40- {
41- namespace cascadehistmanager
39+ namespace o2 ::analysis::femto::cascadehistmanager
4240{
4341// enum for track histograms
4442enum CascadeHist {
@@ -90,7 +88,7 @@ enum CascadeHist {
9088
9189constexpr std::size_t MaxSecondary = 3 ;
9290
93- template <const char * Prefix>
91+ template <auto & Prefix>
9492struct ConfCascadeBinning : o2::framework::ConfigurableGroup {
9593 std::string prefix = Prefix;
9694 o2::framework::ConfigurableAxis pt{" pt" , {{600 , 0 , 6 }}, " Pt" };
@@ -106,7 +104,7 @@ using ConfXiBinning = ConfCascadeBinning<PrefixXiBinning>;
106104constexpr const char PrefixOmegaBinning[] = " OmegaBinning" ;
107105using ConfOmegaBinning = ConfCascadeBinning<PrefixOmegaBinning>;
108106
109- template <const char * Prefix>
107+ template <auto & Prefix>
110108struct ConfCascadeQaBinning : o2::framework::ConfigurableGroup {
111109 std::string prefix = Prefix;
112110 o2::framework::Configurable<bool > plot2d{" plot2d" , true , " Enable 2d Qa histograms" };
@@ -136,7 +134,7 @@ constexpr std::array<histmanager::HistInfo<CascadeHist>, kCascadeHistLast> HistT
136134 {kEta , o2::framework::HistType::kTH1F , " hEta" , " Pseudorapdity; #eta; Entries" },
137135 {kPhi , o2::framework::HistType::kTH1F , " hPhi" , " Azimuthal angle; #varphi; Entries" },
138136 {kMass , o2::framework::HistType::kTH1F , " hMass" , " Invariant Mass; m_{Inv} (GeV/#it{c}^{2}); Entries" },
139- {kSign , o2::framework::HistType::kTH1F , " hSign" , " Sign (-1 -> antiparticle , 0 -> self conjugate, +1 -> particle ); sign; Entries" },
137+ {kSign , o2::framework::HistType::kTH1F , " hSign" , " Sign (-1 -> particle , 0 -> self conjugate, +1 -> antiparticle ); sign; Entries" },
140138 {kPtVsMass , o2::framework::HistType::kTH2F , " hPtVsMass" , " Transverse momentum vs invariant mass; p_{T} (GeV/#it{c}); m_{Inv} (GeV/#it{c}^{2})" },
141139 {kMassXi , o2::framework::HistType::kTH1F , " hMassXi" , " Mass #Xi; m_{#Lambda#pi} (GeV/#it{c}^{2}); Entries" },
142140 {kMassOmega , o2::framework::HistType::kTH1F , " hMassOmega" , " mass #Omega; m_{#LambdaK} (GeV/#it{c}^{2}); Entries" },
@@ -172,50 +170,54 @@ constexpr std::array<histmanager::HistInfo<CascadeHist>, kCascadeHistLast> HistT
172170 {kSecondaryOther , o2::framework::HistType::kTH2F , " hFromSecondaryOther" , " Particles from every other secondary decay; p_{T} (GeV/#it{c}); cos(#alpha)" }},
173171};
174172
173+ // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
175174#define CASCADE_HIST_ANALYSIS_MAP (conf ) \
176- {kPt , {conf.pt }}, \
177- {kEta , {conf.eta }}, \
178- {kPhi , {conf.phi }}, \
179- {kMass , {conf.mass }}, \
180- {kSign , {conf.sign }}, \
181- {kPtVsMass , {conf.pt , conf.mass }},
182-
183- #define CASCADE_HIST_MC_MAP (conf ) \
184- {kTruePtVsPt , {conf.pt , conf.pt }}, \
185- {kTrueEtaVsEta , {conf.eta , conf.eta }}, \
186- {kTruePhiVsPhi , {conf.phi , conf.phi }}, \
187- {kPdg , {conf.pdgCodes }}, \
188- {kPdgMother , {conf.pdgCodes }}, \
189- {kPdgPartonicMother , {conf.pdgCodes }},
190-
191- #define CASCADE_HIST_QA_MAP (confAnalysis, confQa ) \
192- {kCosPa , {confQa.cosPa }}, \
193- {kDecayDauDca , {confQa.dauDcaAtDecay }}, \
194- {kTransRadius , {confQa.transRadius }}, \
195- {kLambdaCosPa , {confQa.lambdaCosPa }}, \
196- {kLambdaDauDca , {confQa.lambdaDauDca }}, \
197- {kLambdaTransRadius , {confQa.lambdaTransRadius }}, \
198- {kLambdaDcaToPv , {confQa.lambdaDcaToPv }}, \
199- {kPtVsEta , {confAnalysis.pt , confAnalysis.eta }}, \
200- {kPtVsPhi , {confAnalysis.pt , confAnalysis.phi }}, \
201- {kPhiVsEta , {confAnalysis.phi , confAnalysis.eta }}, \
202- {kPtVsCosPa , {confAnalysis.pt , confQa.cosPa }}, \
203- {kMassXi , {confQa.massXi }}, \
204- {kMassOmega , {confQa.massOmega }}, \
205- {kPtVsMassXi , {confAnalysis.pt , confQa.massXi }}, \
206- {kPtVsMassOmega , {confAnalysis.pt , confQa.massOmega }}, \
207- {kMassXiVsMassOmega , {confQa.massXi , confQa.massOmega }},
208-
209- #define CASCADE_HIST_MC_QA_MAP (confAnalysis, confQa ) \
210- {kNoMcParticle , {confAnalysis.pt , confQa.cosPa }}, \
211- {kPrimary , {confAnalysis.pt , confQa.cosPa }}, \
212- {kFromWrongCollision , {confAnalysis.pt , confQa.cosPa }}, \
213- {kFromMaterial , {confAnalysis.pt , confQa.cosPa }}, \
214- {kMissidentified , {confAnalysis.pt , confQa.cosPa }}, \
215- {kSecondary1 , {confAnalysis.pt , confQa.cosPa }}, \
216- {kSecondary2 , {confAnalysis.pt , confQa.cosPa }}, \
217- {kSecondary3 , {confAnalysis.pt , confQa.cosPa }}, \
218- {kSecondaryOther , {confAnalysis.pt , confQa.cosPa }},
175+ {kPt , {(conf).pt }}, \
176+ {kEta , {(conf).eta }}, \
177+ {kPhi , {(conf).phi }}, \
178+ {kMass , {(conf).mass }}, \
179+ {kSign , {(conf).sign }}, \
180+ {kPtVsMass , {(conf).pt , (conf).mass }},
181+
182+ // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
183+ #define CASCADE_HIST_MC_MAP (conf ) \
184+ {kTruePtVsPt , {(conf).pt , (conf).pt }}, \
185+ {kTrueEtaVsEta , {(conf).eta , (conf).eta }}, \
186+ {kTruePhiVsPhi , {(conf).phi , (conf).phi }}, \
187+ {kPdg , {(conf).pdgCodes }}, \
188+ {kPdgMother , {(conf).pdgCodes }}, \
189+ {kPdgPartonicMother , {(conf).pdgCodes }},
190+
191+ // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
192+ #define CASCADE_HIST_QA_MAP (confAnalysis, confQa ) \
193+ {kCosPa , {(confQa).cosPa }}, \
194+ {kDecayDauDca , {(confQa).dauDcaAtDecay }}, \
195+ {kTransRadius , {(confQa).transRadius }}, \
196+ {kLambdaCosPa , {(confQa).lambdaCosPa }}, \
197+ {kLambdaDauDca , {(confQa).lambdaDauDca }}, \
198+ {kLambdaTransRadius , {(confQa).lambdaTransRadius }}, \
199+ {kLambdaDcaToPv , {(confQa).lambdaDcaToPv }}, \
200+ {kPtVsEta , {(confAnalysis).pt , (confAnalysis).eta }}, \
201+ {kPtVsPhi , {(confAnalysis).pt , (confAnalysis).phi }}, \
202+ {kPhiVsEta , {(confAnalysis).phi , (confAnalysis).eta }}, \
203+ {kPtVsCosPa , {(confAnalysis).pt , (confQa).cosPa }}, \
204+ {kMassXi , {(confQa).massXi }}, \
205+ {kMassOmega , {(confQa).massOmega }}, \
206+ {kPtVsMassXi , {(confAnalysis).pt , (confQa).massXi }}, \
207+ {kPtVsMassOmega , {(confAnalysis).pt , (confQa).massOmega }}, \
208+ {kMassXiVsMassOmega , {(confQa).massXi , (confQa).massOmega }},
209+
210+ // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
211+ #define CASCADE_HIST_MC_QA_MAP (confAnalysis, confQa ) \
212+ {kNoMcParticle , {(confAnalysis).pt , (confQa).cosPa }}, \
213+ {kPrimary , {(confAnalysis).pt , (confQa).cosPa }}, \
214+ {kFromWrongCollision , {(confAnalysis).pt , (confQa).cosPa }}, \
215+ {kFromMaterial , {(confAnalysis).pt , (confQa).cosPa }}, \
216+ {kMissidentified , {(confAnalysis).pt , (confQa).cosPa }}, \
217+ {kSecondary1 , {(confAnalysis).pt , (confQa).cosPa }}, \
218+ {kSecondary2 , {(confAnalysis).pt , (confQa).cosPa }}, \
219+ {kSecondary3 , {(confAnalysis).pt , (confQa).cosPa }}, \
220+ {kSecondaryOther , {(confAnalysis).pt , (confQa).cosPa }},
219221
220222template <typename T>
221223auto makeCascadeHistSpecMap (const T& confBinningAnalysis)
@@ -269,10 +271,10 @@ constexpr std::string_view McDir = "MC/";
269271// / \class FemtoDreamEventHisto
270272// / \brief Class for histogramming event properties
271273// template <femtomodes::Mode mode>
272- template <const char * cascadePrefix,
273- const char * bachelorPrefix,
274- const char * posDauPrefix,
275- const char * negDauPrefix,
274+ template <auto & cascadePrefix,
275+ auto & bachelorPrefix,
276+ auto & posDauPrefix,
277+ auto & negDauPrefix,
276278 modes::Cascade cascade>
277279class CascadeHistManager
278280{
@@ -687,6 +689,5 @@ class CascadeHistManager
687689 trackhistmanager::TrackHistManager<posDauPrefix> mPosDauManager ;
688690 trackhistmanager::TrackHistManager<negDauPrefix> mNegDauManager ;
689691};
690- }; // namespace cascadehistmanager
691- }; // namespace o2::analysis::femto
692+ } // namespace o2::analysis::femto::cascadehistmanager
692693#endif // PWGCF_FEMTO_CORE_CASCADEHISTMANAGER_H_
0 commit comments