8181 break ; \
8282 }
8383
84+ // Variation of CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2)
85+ // where GETTER1 and GETTER2 are methods of the OBJECT
86+ #define CHECK_AND_FILL_VEC_DS_SIGNED (OBJECT, FEATURE, GETTER1, GETTER2 ) \
87+ case static_cast <uint8_t >(InputFeaturesDsToKKPi::FEATURE): { \
88+ if (caseDsToKKPi) { \
89+ inputFeatures.emplace_back (OBJECT.GETTER1 ()); \
90+ } else { \
91+ inputFeatures.emplace_back (OBJECT.GETTER2 ()); \
92+ } \
93+ break ; \
94+ }
95+
8496namespace o2 ::analysis
8597{
8698enum class InputFeaturesDsToKKPi : uint8_t {
@@ -148,9 +160,8 @@ class HfMlResponseDsToKKPi : public HfMlResponse<TypeOutputScore>
148160 // / \param prong2 is the candidate's prong2
149161 // / \param caseDsToKKPi used to divide the case DsToKKPi from DsToPiKK
150162 // / \return inputFeatures vector
151- template <typename T1, typename T2>
152- std::vector<float > getInputFeatures (T1 const & candidate,
153- T2 const & prong0, T2 const & prong1, T2 const & prong2, bool const & caseDsToKKPi)
163+ template <typename T1>
164+ std::vector<float > getInputFeatures (T1 const & candidate, bool const caseDsToKKPi)
154165 {
155166 std::vector<float > inputFeatures;
156167
@@ -174,33 +185,33 @@ class HfMlResponseDsToKKPi : public HfMlResponse<TypeOutputScore>
174185 CHECK_AND_FILL_VEC_DS (impactParameterZ0);
175186 CHECK_AND_FILL_VEC_DS (impactParameterZ1);
176187 CHECK_AND_FILL_VEC_DS (impactParameterZ2);
177- // TPC PID variables
178- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTpcPi0, tpcNSigmaPi );
179- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTpcPi1, tpcNSigmaPi );
180- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTpcPi2, tpcNSigmaPi );
181- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTpcKa0, tpcNSigmaKa );
182- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTpcKa1, tpcNSigmaKa );
183- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTpcKa2, tpcNSigmaKa );
184- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTofPi0, tofNSigmaPi );
185- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTofPi1, tofNSigmaPi );
186- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTofPi2, tofNSigmaPi );
187- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTofKa0, tofNSigmaKa );
188- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTofKa1, tofNSigmaKa );
189- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTofKa2, tofNSigmaKa );
190- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong0, prong2, nSigTpcKaExpKa0, tpcNSigmaKa );
191- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong2, prong0, nSigTpcPiExpPi2, tpcNSigmaPi );
192- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong0, prong2, nSigTofKaExpKa0, tofNSigmaKa );
193- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong2, prong0, nSigTofPiExpPi2, tofNSigmaPi );
188+ // TPC and TOF PID variables
189+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcPi0, nSigTpcPi0 );
190+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcPi1, nSigTpcPi1 );
191+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcPi2, nSigTpcPi2 );
192+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcKa0, nSigTpcKa0 );
193+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcKa1, nSigTpcKa1 );
194+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcKa2, nSigTpcKa2 );
195+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofPi0, nSigTofPi0 );
196+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofPi1, nSigTofPi1 );
197+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofPi2, nSigTofPi2 );
198+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofKa0, nSigTofKa0 );
199+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofKa1, nSigTofKa1 );
200+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTofKa2, nSigTofKa2 );
201+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTpcKaExpKa0, nSigTpcKa0, nSigTpcKa2 );
202+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTpcPiExpPi2, nSigTpcPi2, nSigTpcPi0 );
203+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTofKaExpKa0, nSigTofKa0, nSigTofKa2 );
204+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTofPiExpPi2, nSigTofPi2, nSigTofPi0 );
194205
195206 // Combined PID variables
196- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTpcTofPi0, tpcTofNSigmaPi );
197- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTpcTofPi1, tpcTofNSigmaPi );
198- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTpcTofPi2, tpcTofNSigmaPi );
199- CHECK_AND_FILL_VEC_DS_FULL (prong0 , nSigTpcTofKa0, tpcTofNSigmaKa );
200- CHECK_AND_FILL_VEC_DS_FULL (prong1 , nSigTpcTofKa1, tpcTofNSigmaKa );
201- CHECK_AND_FILL_VEC_DS_FULL (prong2 , nSigTpcTofKa2, tpcTofNSigmaKa );
202- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong0, prong2, nSigTpcTofKaExpKa0, tpcTofNSigmaKa );
203- CHECK_AND_FILL_VEC_DS_OBJECT_SIGNED (prong2, prong0, nSigTpcTofPiExpPi2, tpcTofNSigmaPi );
207+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofPi0, tpcTofNSigmaPi0 );
208+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofPi1, tpcTofNSigmaPi1 );
209+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofPi2, tpcTofNSigmaPi2 );
210+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofKa0, tpcTofNSigmaKa0 );
211+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofKa1, tpcTofNSigmaKa1 );
212+ CHECK_AND_FILL_VEC_DS_FULL (candidate , nSigTpcTofKa2, tpcTofNSigmaKa2 );
213+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTpcTofKaExpKa0, tpcTofNSigmaKa0, tpcTofNSigmaKa2 );
214+ CHECK_AND_FILL_VEC_DS_SIGNED (candidate, nSigTpcTofPiExpPi2, tpcTofNSigmaPi2, tpcTofNSigmaPi0 );
204215
205216 // Ds specific variables
206217 CHECK_AND_FILL_VEC_DS_HFHELPER_SIGNED (candidate, absCos3PiK, absCos3PiKDsToKKPi, absCos3PiKDsToPiKK);
0 commit comments