Skip to content

Commit eb66e19

Browse files
committed
Update ML response
1 parent 238470b commit eb66e19

1 file changed

Lines changed: 82 additions & 115 deletions

File tree

‎PWGHF/Core/HfMlResponseOmegacToOmegaPiQa.h‎

Lines changed: 82 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
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

@@ -34,6 +34,14 @@
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
@@ -44,53 +52,45 @@
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

5563
namespace 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

9696
template <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

Comments
 (0)