1818#define PWGHF_CORE_HFMLRESPONSEOMEGACTOOMEGAPIQA_H_
1919
2020#include " PWGHF/Core/HfMlResponse.h"
21- #include " PWGHF/DataModel/CandidateReconstructionTables .h"
21+ #include " PWGHF/DataModel/CandidateReconstructionTablesQa .h"
2222
2323#include " Tools/ML/MlResponse.h"
2424
3434 { \
3535 #FEATURE , static_cast <uint8_t >(InputFeaturesOmegacToOmegaPi::FEATURE )}
3636
37+ // Specific case of CHECK_AND_FILL_VEC_OMEGAC0_FULL(OBJECT, FEATURE, GETTER)
38+ // where OBJECT is named candidate and FEATURE = GETTER
39+ #define CHECK_AND_FILL_VEC_OMEGAC0 (GETTER ) \
40+ case static_cast <uint8_t >(InputFeaturesOmegacToOmegaPi::GETTER ): { \
41+ inputFeatures.emplace_back (candidate.GETTER ()); \
42+ break ; \
43+ }
44+
3745// Check if the index of mCachedIndices (index associated to a FEATURE)
3846// matches the entry in EnumInputFeatures associated to this FEATURE
3947// if so, the inputFeatures vector is filled with the FEATURE's value
4452 break ; \
4553 }
4654
47- // Specific case of CHECK_AND_FILL_VEC_OMEGAC0_FULL(OBJECT, FEATURE, GETTER)
48- // where OBJECT is named candidate and FEATURE = GETTER
49- #define CHECK_AND_FILL_VEC_OMEGAC0 ( GETTER ) \
50- case static_cast <uint8_t >(InputFeaturesOmegacToOmegaPi::GETTER ): { \
51- inputFeatures.emplace_back (candidate. GETTER ()); \
52- break ; \
55+ // Variation of CHECK_AND_FILL_VEC_OMEGAC0_FULL(OBJECT, FEATURE, GETTER)
56+ // where GETTER is a method of HfHelper
57+ #define CHECK_AND_FILL_VEC_OMEGAC0_HFHELPER ( OBJECT, FEATURE, GETTER ) \
58+ case static_cast <uint8_t >(InputFeaturesOmegacToOmegaPi::FEATURE ): { \
59+ inputFeatures.emplace_back (HfHelperQa:: GETTER (OBJECT )); \
60+ break ; \
5361 }
5462
5563namespace o2 ::analysis
5664{
57- enum class InputFeaturesOmegacToOmegaPi : uint8_t {
58-
65+ enum class InputFeaturesOmegacToOmegaPi : uint8_t { // TODO: check if all the features needed are convered
5966 // Common variables
60- dcaCharmBaryonDau = 0 ,
61- dcaCascDau,
67+ impactParameterXYCharmBachelor = 0 ,
68+ impactParameterZCharmBachelor,
69+ impactParameterXYCascade,
70+ impactParameterZCascade,
71+ dcaDaughters,
72+ dcaCascadeDaughters,
73+ cpa,
74+ cpaCascade,
75+ cpaCascadeToCharmHadron,
76+ cosThetaStarPiFromOmegac,
77+ decayLengthXY,
78+ decayLengthXYNormalised,
79+ decayLengthXYCascade,
80+ massCascade,
6281 nSigmaTPCPiFromV0,
6382 nSigmaTPCPiFromOmegac,
6483 nSigmaTPCKaFromCasc,
6584
66- // DCAFitter variables
67- impactParBachFromCharmBaryonXY,
68- impactParBachFromCharmBaryonZ,
69- impactParCascXY,
70- impactParCascZ,
71- cosPACharmBaryon,
72- cosPACasc,
73- normDecayLenCharmBar,
74-
7585 // KFParticle variables
76- cosPaOmegacToPv,
77- kfDcaXYPiFromOmegac,
78- chi2TopoPiFromOmegacToPv,
79- invMassCascade,
80- massCascChi2OverNdf,
81- kfDcaXYCascToPv,
82- cosPaCascToPv,
83- cosThetaStarPiFromOmegac,
84- chi2NdfTopoOmegacToPv,
85- ldlCasc,
86- cosPaCascToOmegac,
87- decayLenXYCasc,
88- decayLenXYOmegac,
89- ldlOmegac,
90- chi2NdfTopoCascToOmegac,
91- chi2NdfTopoCascToPv,
92- chi2GeoOmegac,
93- chi2GeoCasc,
86+ decayLengthNormKf,
87+ decayLengthNormKfCascade,
88+ chi2Geo,
89+ chi2TopoOverNdfToPv,
90+ chi2GeoCascade,
91+ chi2TopoOverNdfCascadeToCharmHadron,
92+ chi2TopoOverNdfCascadeToPv,
93+
9494};
9595
9696template <typename TypeOutputScore = float , aod::hf_cand_casc_lf::ConstructMethod reconstructionType = aod::hf_cand_casc_lf::ConstructMethod::DcaFitter>
@@ -117,53 +117,36 @@ class HfMlResponseOmegacToOmegaPi : public HfMlResponse<TypeOutputScore>
117117
118118 // Variables common to DCAFitter and KFParticle
119119 switch (idx) {
120-
121- CHECK_AND_FILL_VEC_OMEGAC0 (dcaCharmBaryonDau);
122- CHECK_AND_FILL_VEC_OMEGAC0 (dcaCascDau);
120+ CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, impactParameterXYCharmBachelor, impactParameter1);
121+ CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, impactParameterZCharmBachelor, impactParameterZ1);
122+ CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, impactParameterXYCascade, impactParameter0);
123+ CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, impactParameterZCascade, impactParameterZ0);
124+ CHECK_AND_FILL_VEC_OMEGAC0 (dcaDaughters);
125+ CHECK_AND_FILL_VEC_OMEGAC0 (dcaCascadeDaughters);
126+ CHECK_AND_FILL_VEC_OMEGAC0 (cpa);
127+ CHECK_AND_FILL_VEC_OMEGAC0 (cpaCascade);
128+ CHECK_AND_FILL_VEC_OMEGAC0 (cpaCascadeToCharmHadron);
129+ CHECK_AND_FILL_VEC_OMEGAC0_HFHELPER (candidate, cosThetaStarPiFromOmegac, cosThetaStarOmegaczeroToOmegaPi);
130+ CHECK_AND_FILL_VEC_OMEGAC0 (decayLengthXY);
131+ CHECK_AND_FILL_VEC_OMEGAC0 (decayLengthXYNormalised);
132+ CHECK_AND_FILL_VEC_OMEGAC0 (decayLengthXYCascade);
133+ CHECK_AND_FILL_VEC_OMEGAC0 (massCascade);
123134 // TPC PID variables
124135 CHECK_AND_FILL_VEC_OMEGAC0_FULL (lamProngPi, nSigmaTPCPiFromV0, tpcNSigmaPi);
125136 CHECK_AND_FILL_VEC_OMEGAC0_FULL (cascProng, nSigmaTPCKaFromCasc, tpcNSigmaKa);
126137 CHECK_AND_FILL_VEC_OMEGAC0_FULL (charmBaryonProng, nSigmaTPCPiFromOmegac, tpcNSigmaPi);
127138 }
128139
129- // DCAFitter variables
130- if constexpr (reconstructionType == aod::hf_cand_casc_lf::ConstructMethod::DcaFitter) {
131-
132- switch (idx) {
133-
134- CHECK_AND_FILL_VEC_OMEGAC0 (impactParBachFromCharmBaryonXY);
135- CHECK_AND_FILL_VEC_OMEGAC0 (impactParBachFromCharmBaryonZ);
136- CHECK_AND_FILL_VEC_OMEGAC0 (impactParCascXY);
137- CHECK_AND_FILL_VEC_OMEGAC0 (impactParCascZ);
138- CHECK_AND_FILL_VEC_OMEGAC0 (cosPACharmBaryon);
139- CHECK_AND_FILL_VEC_OMEGAC0 (cosPACasc);
140- CHECK_AND_FILL_VEC_OMEGAC0 (normDecayLenCharmBar);
141- }
142- }
143-
144140 // KFParticle variables
145141 if constexpr (reconstructionType == aod::hf_cand_casc_lf::ConstructMethod::KfParticle) {
146-
147142 switch (idx) {
148-
149- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, cosPaOmegacToPv, cosPACharmBaryon);
150- CHECK_AND_FILL_VEC_OMEGAC0 (kfDcaXYPiFromOmegac);
151- CHECK_AND_FILL_VEC_OMEGAC0 (chi2TopoPiFromOmegacToPv);
152- CHECK_AND_FILL_VEC_OMEGAC0 (invMassCascade);
153- CHECK_AND_FILL_VEC_OMEGAC0 (massCascChi2OverNdf);
154- CHECK_AND_FILL_VEC_OMEGAC0 (kfDcaXYCascToPv);
155- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, cosPaCascToPv, cosPACasc);
156- CHECK_AND_FILL_VEC_OMEGAC0 (cosThetaStarPiFromOmegac);
157- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, chi2NdfTopoOmegacToPv, chi2TopoOmegacToPv);
158- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, ldlCasc, cascldl);
159- CHECK_AND_FILL_VEC_OMEGAC0 (cosPaCascToOmegac);
160- CHECK_AND_FILL_VEC_OMEGAC0 (decayLenXYCasc);
161- CHECK_AND_FILL_VEC_OMEGAC0 (decayLenXYOmegac);
162- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, ldlOmegac, omegacldl);
163- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, chi2NdfTopoCascToOmegac, chi2TopoCascToOmegac);
164- CHECK_AND_FILL_VEC_OMEGAC0_FULL (candidate, chi2NdfTopoCascToPv, chi2TopoCascToPv);
165- CHECK_AND_FILL_VEC_OMEGAC0 (chi2GeoOmegac);
166- CHECK_AND_FILL_VEC_OMEGAC0 (chi2GeoCasc);
143+ CHECK_AND_FILL_VEC_OMEGAC0 (decayLengthNormKf);
144+ CHECK_AND_FILL_VEC_OMEGAC0 (decayLengthNormKfCascade);
145+ CHECK_AND_FILL_VEC_OMEGAC0 (chi2Geo);
146+ CHECK_AND_FILL_VEC_OMEGAC0 (chi2TopoOverNdfCascadeToPv);
147+ CHECK_AND_FILL_VEC_OMEGAC0 (chi2GeoCascade);
148+ CHECK_AND_FILL_VEC_OMEGAC0 (chi2TopoOverNdfCascadeToCharmHadron);
149+ CHECK_AND_FILL_VEC_OMEGAC0 (chi2TopoOverNdfToPv);
167150 }
168151 }
169152 }
@@ -177,52 +160,35 @@ class HfMlResponseOmegacToOmegaPi : public HfMlResponse<TypeOutputScore>
177160 {
178161 // Common variables
179162 MlResponse<TypeOutputScore>::mAvailableInputFeatures = {
180-
181- FILL_MAP_OMEGAC0 (dcaCharmBaryonDau),
182- FILL_MAP_OMEGAC0 (dcaCascDau),
163+ FILL_MAP_OMEGAC0 (impactParameterXYCharmBachelor),
164+ FILL_MAP_OMEGAC0 (impactParameterZCharmBachelor),
165+ FILL_MAP_OMEGAC0 (impactParameterXYCascade),
166+ FILL_MAP_OMEGAC0 (impactParameterZCascade),
167+ FILL_MAP_OMEGAC0 (dcaDaughters),
168+ FILL_MAP_OMEGAC0 (dcaCascadeDaughters),
169+ FILL_MAP_OMEGAC0 (cpa),
170+ FILL_MAP_OMEGAC0 (cpaCascade),
171+ FILL_MAP_OMEGAC0 (cpaCascadeToCharmHadron),
172+ FILL_MAP_OMEGAC0 (cosThetaStarPiFromOmegac),
173+ FILL_MAP_OMEGAC0 (decayLengthXY),
174+ FILL_MAP_OMEGAC0 (decayLengthXYNormalised),
175+ FILL_MAP_OMEGAC0 (decayLengthXYCascade),
176+ FILL_MAP_OMEGAC0 (massCascade),
183177 FILL_MAP_OMEGAC0 (nSigmaTPCPiFromV0),
184178 FILL_MAP_OMEGAC0 (nSigmaTPCPiFromOmegac),
185179 FILL_MAP_OMEGAC0 (nSigmaTPCKaFromCasc)};
186180
187- // DCAFitter variables
188- if constexpr (reconstructionType == aod::hf_cand_casc_lf::ConstructMethod::DcaFitter) {
189-
190- std::map<std::string, uint8_t > mapDcaFeatures{
191-
192- FILL_MAP_OMEGAC0 (impactParBachFromCharmBaryonXY),
193- FILL_MAP_OMEGAC0 (impactParBachFromCharmBaryonZ),
194- FILL_MAP_OMEGAC0 (impactParCascXY),
195- FILL_MAP_OMEGAC0 (impactParCascZ),
196- FILL_MAP_OMEGAC0 (cosPACharmBaryon),
197- FILL_MAP_OMEGAC0 (cosPACasc),
198- FILL_MAP_OMEGAC0 (normDecayLenCharmBar)};
199-
200- MlResponse<TypeOutputScore>::mAvailableInputFeatures .insert (mapDcaFeatures.begin (), mapDcaFeatures.end ());
201- }
202-
203181 // KFParticle variables
204182 if constexpr (reconstructionType == aod::hf_cand_casc_lf::ConstructMethod::KfParticle) {
205183
206184 std::map<std::string, uint8_t > mapKfFeatures{
207-
208- FILL_MAP_OMEGAC0 (cosPaOmegacToPv),
209- FILL_MAP_OMEGAC0 (kfDcaXYPiFromOmegac),
210- FILL_MAP_OMEGAC0 (chi2TopoPiFromOmegacToPv),
211- FILL_MAP_OMEGAC0 (invMassCascade),
212- FILL_MAP_OMEGAC0 (massCascChi2OverNdf),
213- FILL_MAP_OMEGAC0 (kfDcaXYCascToPv),
214- FILL_MAP_OMEGAC0 (cosPaCascToPv),
215- FILL_MAP_OMEGAC0 (cosThetaStarPiFromOmegac),
216- FILL_MAP_OMEGAC0 (chi2NdfTopoOmegacToPv),
217- FILL_MAP_OMEGAC0 (ldlCasc),
218- FILL_MAP_OMEGAC0 (cosPaCascToOmegac),
219- FILL_MAP_OMEGAC0 (decayLenXYCasc),
220- FILL_MAP_OMEGAC0 (decayLenXYOmegac),
221- FILL_MAP_OMEGAC0 (ldlOmegac),
222- FILL_MAP_OMEGAC0 (chi2NdfTopoCascToOmegac),
223- FILL_MAP_OMEGAC0 (chi2NdfTopoCascToPv),
224- FILL_MAP_OMEGAC0 (chi2GeoOmegac),
225- FILL_MAP_OMEGAC0 (chi2GeoCasc)};
185+ FILL_MAP_OMEGAC0 (decayLengthNormKf),
186+ FILL_MAP_OMEGAC0 (decayLengthNormKfCascade),
187+ FILL_MAP_OMEGAC0 (chi2Geo),
188+ FILL_MAP_OMEGAC0 (chi2TopoOverNdfToPv),
189+ FILL_MAP_OMEGAC0 (chi2GeoCascade),
190+ FILL_MAP_OMEGAC0 (chi2TopoOverNdfCascadeToCharmHadron),
191+ FILL_MAP_OMEGAC0 (chi2TopoOverNdfCascadeToPv)};
226192
227193 MlResponse<TypeOutputScore>::mAvailableInputFeatures .insert (mapKfFeatures.begin (), mapKfFeatures.end ());
228194 }
@@ -232,6 +198,7 @@ class HfMlResponseOmegacToOmegaPi : public HfMlResponse<TypeOutputScore>
232198} // namespace o2::analysis
233199
234200#undef FILL_MAP_OMEGAC0
235- #undef CHECK_AND_FILL_VEC_OMEGAC0_FULL
236201#undef CHECK_AND_FILL_VEC_OMEGAC0
202+ #undef CHECK_AND_FILL_VEC_OMEGAC0_FULL
203+ #undef CHECK_AND_FILL_VEC_OMEGAC0_HFHELPER
237204#endif // PWGHF_CORE_HFMLRESPONSEOMEGACTOOMEGAPIQA_H_
0 commit comments