2323// Fill the map of available input features
2424// the key is the feature's name (std::string)
2525// the value is the corresponding value in EnumInputFeatures
26- #define FILL_MAP_LCTOPKPI (FEATURE ) \
27- { \
28- #FEATURE, static_cast < uint8_t >(InputFeaturesLcToPKPi::FEATURE) \
29- }
26+ #define FILL_MAP_LCTOPKPI (FEATURE ) \
27+ { \
28+ #FEATURE, static_cast <uint8_t >(InputFeaturesLcToPKPi::FEATURE)}
3029
3130// Check if the index of mCachedIndices (index associated to a FEATURE)
3231// matches the entry in EnumInputFeatures associated to this FEATURE
6766 break ; \
6867 }
6968
69+ // Variation of CHECK_AND_FILL_VEC_LCTOPKPI_HFHELPER_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2)
70+ // where GETTER1 and GETTER2 are methods of the OBJECT
71+ #define CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (OBJECT, FEATURE, GETTER1, GETTER2 ) \
72+ case static_cast <uint8_t >(InputFeaturesLcToPKPi::FEATURE): { \
73+ if (caseLcToPKPi) { \
74+ inputFeatures.emplace_back (OBJECT.GETTER1 ()); \
75+ } else { \
76+ inputFeatures.emplace_back (OBJECT.GETTER2 ()); \
77+ } \
78+ break ; \
79+ }
80+
7081namespace o2 ::analysis
7182{
7283enum class InputFeaturesLcToPKPi : uint8_t {
@@ -135,9 +146,8 @@ class HfMlResponseLcToPKPi : public HfMlResponse<TypeOutputScore>
135146 // / \param prong1 is the candidate's prong1
136147 // / \param prong2 is the candidate's prong2
137148 // / \return inputFeatures vector
138- template <typename T1, typename T2>
139- std::vector<float > getInputFeatures (T1 const & candidate,
140- T2 const & prong0, T2 const & prong1, T2 const & prong2, bool const & caseLcToPKPi)
149+ template <typename T1>
150+ std::vector<float > getInputFeatures (T1 const & candidate, bool const & caseLcToPKPi)
141151 {
142152 std::vector<float > inputFeatures;
143153
@@ -159,41 +169,47 @@ class HfMlResponseLcToPKPi : public HfMlResponse<TypeOutputScore>
159169 CHECK_AND_FILL_VEC_LCTOPKPI (cpaXY);
160170 CHECK_AND_FILL_VEC_LCTOPKPI (chi2PCA);
161171 // TPC PID variables
162- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcNSigmaP0, tpcNSigmaPr);
163- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcNSigmaKa0, tpcNSigmaKa);
164- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcNSigmaPi0, tpcNSigmaPi);
165- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcNSigmaP1, tpcNSigmaPr);
166- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcNSigmaKa1, tpcNSigmaKa);
167- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcNSigmaPi1, tpcNSigmaPi);
168- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcNSigmaP2, tpcNSigmaPr);
169- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcNSigmaKa2, tpcNSigmaKa);
170- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcNSigmaPi2, tpcNSigmaPi);
171- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong0, prong2, tpcNSigmaPrExpPr0, tpcNSigmaPr);
172- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong2, prong0, tpcNSigmaPiExpPi2, tpcNSigmaPi);
172+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaP0, nSigTpcPr0);
173+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaKa0, nSigTpcKa0);
174+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaPi0, nSigTpcPi0);
175+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaP1, nSigTpcPr1);
176+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaKa1, nSigTpcKa1);
177+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaPi1, nSigTpcPi1);
178+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaP2, nSigTpcPr2);
179+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaKa2, nSigTpcKa2);
180+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcNSigmaPi2, nSigTpcPi2);
181+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcNSigmaPrExpPr0, tpcNSigmaPr);
182+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcNSigmaPiExpPi2, tpcNSigmaPi);
183+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tpcNSigmaPrExpPr0, nSigTpcPr0, nSigTpcPr2);
184+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tpcNSigmaPiExpPi2, nSigTpcPi2, nSigTpcPi0);
173185 // TOF PID variables
174- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tofNSigmaP0, tofNSigmaPr);
175- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tofNSigmaKa0, tofNSigmaKa);
176- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tofNSigmaPi0, tofNSigmaPi);
177- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tofNSigmaP1, tofNSigmaPr);
178- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tofNSigmaKa1, tofNSigmaKa);
179- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tofNSigmaPi1, tofNSigmaPi);
180- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tofNSigmaP2, tofNSigmaPr);
181- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tofNSigmaKa2, tofNSigmaKa);
182- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tofNSigmaPi2, tofNSigmaPi);
183- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong0, prong2, tofNSigmaPrExpPr0, tofNSigmaPr);
184- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong2, prong0, tofNSigmaPiExpPi2, tofNSigmaPi);
186+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaP0, nSigTofPr0);
187+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaKa0, nSigTofKa0);
188+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaPi0, nSigTofPi0);
189+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaP1, nSigTofPr1);
190+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaKa1, nSigTofKa1);
191+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaPi1, nSigTofPi1);
192+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaP2, nSigTofPr2);
193+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaKa2, nSigTofKa2);
194+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tofNSigmaPi2, nSigTofPi2);
195+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tofNSigmaPrExpPr0, tofNSigmaPr);
196+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tofNSigmaPiExpPi2, tofNSigmaPi);
197+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tofNSigmaPrExpPr0, nSigTofPr0, nSigTofPr2);
198+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tofNSigmaPiExpPi2, nSigTofPi2, nSigTofPi0);
185199 // Combined PID variables
186- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcTofNSigmaPi0, tpcTofNSigmaPi);
187- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcTofNSigmaPi1, tpcTofNSigmaPi);
188- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcTofNSigmaPi2, tpcTofNSigmaPi);
189- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcTofNSigmaKa0, tpcTofNSigmaKa);
190- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcTofNSigmaKa1, tpcTofNSigmaKa);
191- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcTofNSigmaKa2, tpcTofNSigmaKa);
192- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong0, tpcTofNSigmaPr0, tpcTofNSigmaPr);
193- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong1, tpcTofNSigmaPr1, tpcTofNSigmaPr);
194- CHECK_AND_FILL_VEC_LCTOPKPI_FULL (prong2, tpcTofNSigmaPr2, tpcTofNSigmaPr);
195- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong0, prong2, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr);
196- CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED (prong2, prong0, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi);
200+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPi0, tpcTofNSigmaPi0);
201+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPi1, tpcTofNSigmaPi1);
202+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPi2, tpcTofNSigmaPi2);
203+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaKa0, tpcTofNSigmaKa0);
204+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaKa1, tpcTofNSigmaKa1);
205+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaKa2, tpcTofNSigmaKa2);
206+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPr0, tpcTofNSigmaPr0);
207+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPr1, tpcTofNSigmaPr1);
208+ CHECK_AND_FILL_VEC_LCTOPKPI_FULL (candidate, tpcTofNSigmaPr2, tpcTofNSigmaPr2);
209+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr);
210+ // CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi);
211+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr0, tpcTofNSigmaPr2);
212+ CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED (candidate, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi2, tpcTofNSigmaPi0);
197213 }
198214 }
199215
0 commit comments