@@ -106,9 +106,10 @@ struct HfTaskXic0ToXiPi {
106106
107107 void init (InitContext&)
108108 {
109- std::array<bool , 16 > doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M,
110- doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M,
111- doprocessMcWithKFParticle, doprocessMcWithKFParticleMl, doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl};
109+ std::array<bool , 16 > doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M, \
110+ doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M, \
111+ doprocessMcWithKFParticle, doprocessMcWithKFParticleMl,doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl
112+ };
112113 if ((std::accumulate (doprocess.begin (), doprocess.end (), 0 )) != 1 ) {
113114 LOGP (fatal, " One and only one process function should be enabled at a time." );
114115 }
@@ -158,32 +159,14 @@ struct HfTaskXic0ToXiPi {
158159 }
159160 }
160161
161- template <bool applyMl, typename CandType, typename CollType>
162- void processData (const CandType& candidates, CollType const &)
163- {
164- for (const auto & candidate : candidates) {
165- if (candidate.resultSelections () != true ) {
166- continue ;
167- }
168- if (yCandRecMax >= 0 . && std::abs (candidate.etaCharmBaryon ()) > yCandRecMax) {
169- continue ;
170- }
171-
172- if constexpr (applyMl) {
173- registry.fill (HIST (" hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsXic0Type" ), candidate.mlProbToXiPi ()[0 ], candidate.invMassCharmBaryon (), candidate.ptXic (), candidate.etaCharmBaryon ());
174- } else {
175- registry.fill (HIST (" hMassVsPtVsPtBVsYVsOriginVsXic0Type" ), candidate.invMassCharmBaryon (), candidate.ptXic (), candidate.etaCharmBaryon ());
176- }
177- }
178- }
179-
180- template <bool useCentrality, bool applyMl, typename CandType, typename CollType>
162+ template <bool useKfParticle, bool useCentrality, bool applyMl, typename CandType, typename CollType>
181163 void processDataCent (const CandType& candidate, CollType const & collision)
182164 {
183165 if (candidate.resultSelections () != true ) {
184166 return ;
185167 }
186- if (yCandRecMax >= 0 . && std::abs (candidate.etaCharmBaryon ()) > yCandRecMax) {
168+ double etaCharmBaryon = useKfParticle ? candidate.kfRapXic () : candidate.etaCharmBaryon ();
169+ if (yCandRecMax >= 0 . && std::abs (etaCharmBaryon) > yCandRecMax) {
187170 return ;
188171 }
189172
@@ -199,22 +182,22 @@ struct HfTaskXic0ToXiPi {
199182 candidate.mlProbToXiPi ()[0 ],
200183 candidate.invMassCharmBaryon (),
201184 ptXic,
202- candidate. etaCharmBaryon () ,
185+ etaCharmBaryon,
203186 centrality,
204187 ptPiFromXic,
205188 numPvContributors);
206189 } else {
207190 registry.fill (HIST (" hMassVsPtVsYVsCentVsPtPion" ),
208191 candidate.invMassCharmBaryon (),
209192 ptXic,
210- candidate. etaCharmBaryon () ,
193+ etaCharmBaryon,
211194 centrality,
212195 ptPiFromXic,
213196 numPvContributors);
214197 }
215198 }
216199
217- template <bool applyMl, typename CandType, typename CollType>
200+ template <bool useKfParticle, bool applyMl, typename CandType, typename CollType>
218201 void processMc (const CandType& candidates,
219202 Xic0Gen const & mcParticles,
220203 TracksMc const &,
@@ -224,20 +207,21 @@ struct HfTaskXic0ToXiPi {
224207 // MC rec.
225208 for (const auto & candidate : candidates) {
226209 if (candidate.resultSelections () != true ) {
227- continue ;
210+ return ;
228211 }
229- if (yCandRecMax >= 0 . && std::abs (candidate.etaCharmBaryon ()) > yCandRecMax) {
230- continue ;
212+ double etaCharmBaryon = useKfParticle ? candidate.kfRapXic () : candidate.etaCharmBaryon ();
213+ if (yCandRecMax >= 0 . && std::abs (etaCharmBaryon) > yCandRecMax) {
214+ return ;
231215 }
232216
233217 auto numPvContributors = candidate.template collision_as <CollType>().numContrib ();
234- double ptXic = RecoDecay::pt (candidate.pxCharmBaryon (), candidate.pyCharmBaryon ());
218+ double ptXic = RecoDecay::pt (candidate.pxCharmBaryon (), candidate.pyCharmBaryon ());
235219 if constexpr (applyMl) {
236220 registry.fill (HIST (" hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsXic0Type" ),
237221 candidate.mlProbToXiPi ()[0 ],
238222 candidate.invMassCharmBaryon (),
239223 ptXic,
240- candidate. etaCharmBaryon () ,
224+ etaCharmBaryon,
241225 candidate.ptBhadMotherPart (),
242226 candidate.originMcRec (),
243227 candidate.flagMcMatchRec (),
@@ -246,7 +230,7 @@ struct HfTaskXic0ToXiPi {
246230 registry.fill (HIST (" hMassVsPtVsPtBVsYVsOriginVsXic0Type" ),
247231 candidate.invMassCharmBaryon (),
248232 ptXic,
249- candidate. etaCharmBaryon () ,
233+ etaCharmBaryon,
250234 candidate.ptBhadMotherPart (),
251235 candidate.originMcRec (),
252236 candidate.flagMcMatchRec (),
@@ -287,15 +271,15 @@ struct HfTaskXic0ToXiPi {
287271 }
288272 }
289273 }
290-
274+
291275 void processDataWithDCAFitter (Xic0Cands const & candidates,
292276 CollisionsWithEvSels const & collisions)
293277 {
294278 for (const auto & collision : collisions) {
295279 auto thisCollId = collision.globalIndex ();
296280 auto groupedXicCandidates = candidates.sliceBy (candXicPerCollision, thisCollId);
297281 for (const auto & candidate : groupedXicCandidates) {
298- processDataCent<false , false >(candidate, collision);
282+ processDataCent<false , false , false >(candidate, collision);
299283 }
300284 }
301285 }
@@ -308,20 +292,20 @@ struct HfTaskXic0ToXiPi {
308292 auto thisCollId = collision.globalIndex ();
309293 auto groupedXicCandidates = candidates.sliceBy (candXicKFPerCollision, thisCollId);
310294 for (const auto & candidate : groupedXicCandidates) {
311- processDataCent<false , false >(candidate, collision);
295+ processDataCent<true , false , false >(candidate, collision);
312296 }
313297 }
314298 }
315299 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticle, " process HfTaskXic0ToXiPi with KFParticle" , true );
316300
317301 void processDataWithDCAFitterMl (Xic0CandsMl const & candidates,
318- CollisionsWithEvSels const & collisions)
302+ CollisionsWithEvSels const & collisions)
319303 {
320304 for (const auto & collision : collisions) {
321305 auto thisCollId = collision.globalIndex ();
322306 auto groupedXicCandidates = candidates.sliceBy (candXicMlPerCollision, thisCollId);
323307 for (const auto & candidate : groupedXicCandidates) {
324- processDataCent<false , true >(candidate, collision);
308+ processDataCent<false , false , true >(candidate, collision);
325309 }
326310 }
327311 }
@@ -334,20 +318,20 @@ struct HfTaskXic0ToXiPi {
334318 auto thisCollId = collision.globalIndex ();
335319 auto groupedXicCandidates = candidates.sliceBy (candXicKFMlPerCollision, thisCollId);
336320 for (const auto & candidate : groupedXicCandidates) {
337- processDataCent<false , true >(candidate, collision);
321+ processDataCent<true , false , true >(candidate, collision);
338322 }
339323 }
340324 }
341325 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticleMl, " process HfTaskXic0ToXiPi with KFParticle and ML selections" , false );
342326
343327 void processDataWithDCAFitterFT0C (Xic0Cands const & candidates,
344- CollisionsWithFT0C const & collisions)
328+ CollisionsWithFT0C const & collisions)
345329 {
346330 for (const auto & collision : collisions) {
347331 auto thisCollId = collision.globalIndex ();
348332 auto groupedXicCandidates = candidates.sliceBy (candXicPerCollision, thisCollId);
349333 for (const auto & candidate : groupedXicCandidates) {
350- processDataCent<true , false >(candidate, collision);
334+ processDataCent<false , true , false >(candidate, collision);
351335 }
352336 }
353337 }
@@ -360,20 +344,20 @@ struct HfTaskXic0ToXiPi {
360344 auto thisCollId = collision.globalIndex ();
361345 auto groupedXicCandidates = candidates.sliceBy (candXicKFPerCollision, thisCollId);
362346 for (const auto & candidate : groupedXicCandidates) {
363- processDataCent<true , false >(candidate, collision);
347+ processDataCent<true , true , false >(candidate, collision);
364348 }
365349 }
366350 }
367351 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticleFT0C, " process HfTaskXic0ToXiPi with KFParticle and with FT0C centrality" , false );
368352
369353 void processDataWithDCAFitterFT0M (Xic0Cands const & candidates,
370- CollisionsWithFT0M const & collisions)
354+ CollisionsWithFT0M const & collisions)
371355 {
372356 for (const auto & collision : collisions) {
373357 auto thisCollId = collision.globalIndex ();
374358 auto groupedXicCandidates = candidates.sliceBy (candXicPerCollision, thisCollId);
375359 for (const auto & candidate : groupedXicCandidates) {
376- processDataCent<true , false >(candidate, collision);
360+ processDataCent<false , true , false >(candidate, collision);
377361 }
378362 }
379363 }
@@ -386,48 +370,48 @@ struct HfTaskXic0ToXiPi {
386370 auto thisCollId = collision.globalIndex ();
387371 auto groupedXicCandidates = candidates.sliceBy (candXicKFPerCollision, thisCollId);
388372 for (const auto & candidate : groupedXicCandidates) {
389- processDataCent<true , false >(candidate, collision);
373+ processDataCent<true , true , false >(candidate, collision);
390374 }
391375 }
392376 }
393377 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticleFT0M, " process HfTaskXic0ToXiPi with KFParticle and with FT0M centrality" , false );
394378
395379 void processDataWithDCAFitterMlFT0C (Xic0CandsMl const & candidates,
396- CollisionsWithFT0C const & collisions)
380+ CollisionsWithFT0C const & collisions)
397381 {
398382 for (const auto & collision : collisions) {
399383 auto thisCollId = collision.globalIndex ();
400384 auto groupedXicCandidates = candidates.sliceBy (candXicMlPerCollision, thisCollId);
401385 for (const auto & candidate : groupedXicCandidates) {
402- processDataCent<true , true >(candidate, collision);
386+ processDataCent<false , true , true >(candidate, collision);
403387 }
404- }
388+ }
405389 }
406390 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0C, " process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0C centrality" , false );
407-
391+
408392 void processDataWithKFParticleMlFT0C (Xic0CandsMlKF const & candidates,
409393 CollisionsWithFT0C const & collisions)
410394 {
411395 for (const auto & collision : collisions) {
412396 auto thisCollId = collision.globalIndex ();
413397 auto groupedXicCandidates = candidates.sliceBy (candXicKFMlPerCollision, thisCollId);
414398 for (const auto & candidate : groupedXicCandidates) {
415- processDataCent<true , true >(candidate, collision);
399+ processDataCent<true , true , true >(candidate, collision);
416400 }
417- }
401+ }
418402 }
419403 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0C, " process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0C centrality" , false );
420404
421405 void processDataWithDCAFitterMlFT0M (Xic0CandsMl const & candidates,
422- CollisionsWithFT0M const & collisions)
406+ CollisionsWithFT0M const & collisions)
423407 {
424408 for (const auto & collision : collisions) {
425409 auto thisCollId = collision.globalIndex ();
426410 auto groupedXicCandidates = candidates.sliceBy (candXicMlPerCollision, thisCollId);
427411 for (const auto & candidate : groupedXicCandidates) {
428- processDataCent<true , true >(candidate, collision);
412+ processDataCent<false , true , true >(candidate, collision);
429413 }
430- }
414+ }
431415 }
432416 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0M, " process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0M centrality" , false );
433417
@@ -438,19 +422,19 @@ struct HfTaskXic0ToXiPi {
438422 auto thisCollId = collision.globalIndex ();
439423 auto groupedXicCandidates = candidates.sliceBy (candXicKFMlPerCollision, thisCollId);
440424 for (const auto & candidate : groupedXicCandidates) {
441- processDataCent<true , true >(candidate, collision);
425+ processDataCent<true , true , true >(candidate, collision);
442426 }
443- }
427+ }
444428 }
445429 PROCESS_SWITCH (HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0M, " process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0M centrality" , false );
446430
447431 void processMcWithDCAFitter (Xic0CandsMc const & Xic0CandidatesMc,
448- Xic0Gen const & mcParticles,
449- TracksMc const & tracks,
450- CollisionsWithMcLabels const & collisions,
451- aod::McCollisions const & mcCollisions)
432+ Xic0Gen const & mcParticles,
433+ TracksMc const & tracks,
434+ CollisionsWithMcLabels const & collisions,
435+ aod::McCollisions const & mcCollisions)
452436 {
453- processMc<false >(Xic0CandidatesMc, mcParticles, tracks, collisions, mcCollisions);
437+ processMc<false , false >(Xic0CandidatesMc, mcParticles, tracks, collisions, mcCollisions);
454438 }
455439 PROCESS_SWITCH (HfTaskXic0ToXiPi, processMcWithDCAFitter, " Process MC with KFParticle" , false );
456440
@@ -460,17 +444,17 @@ struct HfTaskXic0ToXiPi {
460444 CollisionsWithMcLabels const & collisions,
461445 aod::McCollisions const & mcCollisions)
462446 {
463- processMc<false >(Xic0CandidatesMcKF, mcParticles, tracks, collisions, mcCollisions);
447+ processMc<true , false >(Xic0CandidatesMcKF, mcParticles, tracks, collisions, mcCollisions);
464448 }
465449 PROCESS_SWITCH (HfTaskXic0ToXiPi, processMcWithKFParticle, " Process MC with KFParticle" , false );
466450
467451 void processMcWithDCAFitterMl (Xic0CandsMlMc const & Xic0CandidatesMlMc,
468- Xic0Gen const & mcParticles,
469- TracksMc const & tracks,
470- CollisionsWithMcLabels const & collisions,
471- aod::McCollisions const & mcCollisions)
452+ Xic0Gen const & mcParticles,
453+ TracksMc const & tracks,
454+ CollisionsWithMcLabels const & collisions,
455+ aod::McCollisions const & mcCollisions)
472456 {
473- processMc<true >(Xic0CandidatesMlMc, mcParticles, tracks, collisions, mcCollisions);
457+ processMc<false , true >(Xic0CandidatesMlMc, mcParticles, tracks, collisions, mcCollisions);
474458 }
475459 PROCESS_SWITCH (HfTaskXic0ToXiPi, processMcWithDCAFitterMl, " Process MC with KFParticle and ML selections" , false );
476460
@@ -480,7 +464,7 @@ struct HfTaskXic0ToXiPi {
480464 CollisionsWithMcLabels const & collisions,
481465 aod::McCollisions const & mcCollisions)
482466 {
483- processMc<true >(Xic0CandidatesMlMcKF, mcParticles, tracks, collisions, mcCollisions);
467+ processMc<true , true >(Xic0CandidatesMlMcKF, mcParticles, tracks, collisions, mcCollisions);
484468 }
485469 PROCESS_SWITCH (HfTaskXic0ToXiPi, processMcWithKFParticleMl, " Process MC with KFParticle and ML selections" , false );
486470};
0 commit comments