6161 break ; \
6262 }
6363
64+ // Variation of CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2)
65+ // where GETTER1 and GETTER2 are methods of the OBJECT, and used
66+ // depending on whether the candidate is a XicToPKPi or a XicToPiKP
67+ #define CHECK_AND_FILL_VEC_XIC_SIGNED (OBJECT, FEATURE, GETTER1, GETTER2 ) \
68+ case static_cast <uint8_t >(InputFeaturesXicToPKPi::FEATURE): { \
69+ if (caseXicToPKPi) { \
70+ inputFeatures.emplace_back (OBJECT.GETTER1 ()); \
71+ } else { \
72+ inputFeatures.emplace_back (OBJECT.GETTER2 ()); \
73+ } \
74+ break ; \
75+ }
76+
6477namespace o2 ::analysis
6578{
6679enum class InputFeaturesXicToPKPi : uint8_t {
@@ -129,9 +142,8 @@ class HfMlResponseXicToPKPi : public HfMlResponse<TypeOutputScore>
129142 // / \param prong1 is the candidate's prong1
130143 // / \param prong2 is the candidate's prong2
131144 // / \return inputFeatures vector
132- template <typename T1, typename T2>
133- std::vector<float > getInputFeatures (T1 const & candidate,
134- T2 const & prong0, T2 const & prong1, T2 const & prong2, bool const & caseXicToPKPi)
145+ template <typename T1>
146+ std::vector<float > getInputFeatures (T1 const & candidate, bool const & caseXicToPKPi)
135147 {
136148 std::vector<float > inputFeatures;
137149
@@ -153,41 +165,41 @@ class HfMlResponseXicToPKPi : public HfMlResponse<TypeOutputScore>
153165 CHECK_AND_FILL_VEC_XIC (cpaXY);
154166 CHECK_AND_FILL_VEC_XIC (chi2PCA);
155167 // TPC PID variables
156- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcNSigmaP0, tpcNSigmaPr );
157- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcNSigmaKa0, tpcNSigmaKa );
158- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcNSigmaPi0, tpcNSigmaPi );
159- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcNSigmaP1, tpcNSigmaPr );
160- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcNSigmaKa1, tpcNSigmaKa );
161- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcNSigmaPi1, tpcNSigmaPi );
162- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcNSigmaP2, tpcNSigmaPr );
163- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcNSigmaKa2, tpcNSigmaKa );
164- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcNSigmaPi2, tpcNSigmaPi );
165- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong0, prong2, tpcNSigmaPrExpPr0, tpcNSigmaPr );
166- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong2, prong0, tpcNSigmaPiExpPi2, tpcNSigmaPi );
168+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaP0, nSigTpcPr0 );
169+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaKa0, nSigTpcKa0 );
170+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaPi0, nSigTpcPi0 );
171+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaP1, nSigTpcPr1 );
172+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaKa1, nSigTpcKa1 );
173+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaPi1, nSigTpcPi1 );
174+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaP2, nSigTpcPr2 );
175+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaKa2, nSigTpcKa2 );
176+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcNSigmaPi2, nSigTpcPi2 );
177+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tpcNSigmaPrExpPr0, nSigTpcPr0, nSigTpcPr2 );
178+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tpcNSigmaPiExpPi2, nSigTpcPi2, nSigTpcPi0 );
167179 // TOF PID variables
168- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tofNSigmaP0, tofNSigmaPr );
169- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tofNSigmaKa0, tofNSigmaKa );
170- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tofNSigmaPi0, tofNSigmaPi );
171- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tofNSigmaP1, tofNSigmaPr );
172- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tofNSigmaKa1, tofNSigmaKa );
173- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tofNSigmaPi1, tofNSigmaPi );
174- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tofNSigmaP2, tofNSigmaPr );
175- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tofNSigmaKa2, tofNSigmaKa );
176- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tofNSigmaPi2, tofNSigmaPi );
177- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong0, prong2, tofNSigmaPrExpPr0, tofNSigmaPr );
178- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong2, prong0, tofNSigmaPiExpPi2, tofNSigmaPi );
180+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaP0, nSigTofPr0 );
181+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaKa0, nSigTofKa0 );
182+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaPi0, nSigTofPi0 );
183+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaP1, nSigTofPr1 );
184+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaKa1, nSigTofKa1 );
185+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaPi1, nSigTofPi1 );
186+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaP2, nSigTofPr2 );
187+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaKa2, nSigTofKa2 );
188+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tofNSigmaPi2, nSigTofPi2 );
189+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tofNSigmaPrExpPr0, nSigTofPr0, nSigTofPr2 );
190+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tofNSigmaPiExpPi2, nSigTofPi2, nSigTofPi0 );
179191 // Combined PID variables
180- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcTofNSigmaPi0, tpcTofNSigmaPi );
181- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcTofNSigmaPi1, tpcTofNSigmaPi );
182- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcTofNSigmaPi2, tpcTofNSigmaPi );
183- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcTofNSigmaKa0, tpcTofNSigmaKa );
184- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcTofNSigmaKa1, tpcTofNSigmaKa );
185- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcTofNSigmaKa2, tpcTofNSigmaKa );
186- CHECK_AND_FILL_VEC_XIC_FULL (prong0 , tpcTofNSigmaPr0, tpcTofNSigmaPr );
187- CHECK_AND_FILL_VEC_XIC_FULL (prong1 , tpcTofNSigmaPr1, tpcTofNSigmaPr );
188- CHECK_AND_FILL_VEC_XIC_FULL (prong2 , tpcTofNSigmaPr2, tpcTofNSigmaPr );
189- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong0, prong2, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr );
190- CHECK_AND_FILL_VEC_XIC_OBJECT_SIGNED (prong2, prong0, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi );
192+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPi0, tpcTofNSigmaPi0 );
193+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPi1, tpcTofNSigmaPi1 );
194+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPi2, tpcTofNSigmaPi2 );
195+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaKa0, tpcTofNSigmaKa0 );
196+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaKa1, tpcTofNSigmaKa1 );
197+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaKa2, tpcTofNSigmaKa2 );
198+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPr0, tpcTofNSigmaPr0 );
199+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPr1, tpcTofNSigmaPr1 );
200+ CHECK_AND_FILL_VEC_XIC_FULL (candidate , tpcTofNSigmaPr2, tpcTofNSigmaPr2 );
201+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr0, tpcTofNSigmaPr2 );
202+ CHECK_AND_FILL_VEC_XIC_SIGNED (candidate, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi2, tpcTofNSigmaPi0 );
191203 }
192204 }
193205
0 commit comments