@@ -48,8 +48,13 @@ struct HfTaskXic {
4848 Configurable<float > dcaZTrackMax{" dcaZTrackMax" , 0.0025 , " max. DCAz for track" };
4949 Configurable<std::vector<double >> binsPt{" binsPt" , std::vector<double >{hf_cuts_xic_to_p_k_pi::vecBinsPt}, " pT bin limits" };
5050
51- // THnSparse for ML outputScores and Vars
5251 Configurable<bool > enableTHn{" enableTHn" , false , " enable THn for Xic" };
52+ HfHelper hfHelper;
53+ Service<o2::framework::O2DatabasePDG> pdg;
54+
55+ Filter filterSelectCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
56+
57+ // THnSparse for ML outputScores and Vars
5358 ConfigurableAxis thnConfigAxisPt{" thnConfigAxisPt" , {36 , 0 , 36 }, " " };
5459 ConfigurableAxis thnConfigAxisMass{" thnConfigAxisMass" , {300 , 1.98 , 2.58 }, " " };
5560 ConfigurableAxis thnConfigAxisPtProng{" thnConfigAxisPtProng" , {100 , 0 , 20 }, " " };
@@ -61,19 +66,10 @@ struct HfTaskXic {
6166 ConfigurableAxis thnConfigAxisBdtScoreSignal{" thnConfigAxisBdtScoreSignal" , {100 , 0 ., 1 .}, " " };
6267 ConfigurableAxis thnConfigAxisYMC{" thnConfigAxisYMC" , {100 , -2 ., 2 .}, " " };
6368 //
64- Service<o2::framework::O2DatabasePDG> pdg;
65- HfHelper hfHelper;
6669
6770 float etaMaxAcceptance = 0.8 ;
6871 float ptMinAcceptance = 0.1 ;
6972
70- using TracksWPid = soa::Join<aod::TracksWDca,
71- aod::TracksPidPi, aod::TracksPidKa, aod::TracksPidPr>;
72-
73- Filter filterSelectCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
74-
75- Partition<soa::Join<aod::HfCand3ProngWPidPiKaPr, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>> selectedMCXicCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
76-
7773 HistogramRegistry registry{
7874 " registry" , // histo not in pt bins
7975 {
@@ -257,7 +253,7 @@ struct HfTaskXic {
257253 template <bool useMl, typename Cands>
258254 void analysisData (aod::Collision const & collision,
259255 Cands const & candidates,
260- TracksWPid const & tracks)
256+ aod::TracksWDca const & tracks)
261257 {
262258 int nTracks = 0 ;
263259
@@ -317,9 +313,9 @@ struct HfTaskXic {
317313 registry.fill (HIST (" Data/hChi2PCA" ), candidate.chi2PCA (), ptCandidate);
318314
319315 // PID histos
320- auto trackProng0 = candidate.template prong0_as <TracksWPid >();
321- auto trackProng1 = candidate.template prong1_as <TracksWPid >();
322- auto trackProng2 = candidate.template prong2_as <TracksWPid >();
316+ auto trackProng0 = candidate.template prong0_as <aod::TracksWDca >();
317+ auto trackProng1 = candidate.template prong1_as <aod::TracksWDca >();
318+ auto trackProng2 = candidate.template prong2_as <aod::TracksWDca >();
323319
324320 auto momentumProng0 = trackProng0.p ();
325321 auto momentumProng1 = trackProng1.p ();
@@ -355,10 +351,11 @@ struct HfTaskXic {
355351 if (enableTHn) {
356352 double massXic (-1 );
357353 double outputBkg (-1 ), outputPrompt (-1 ), outputFD (-1 );
354+ const int ternaryCl = 3 ;
358355 if (candidate.isSelXicToPKPi () >= selectionFlagXic) {
359356 massXic = hfHelper.invMassXicToPKPi (candidate);
360357 if constexpr (useMl) {
361- if (candidate.mlProbXicToPKPi ().size () == 3 ) {
358+ if (candidate.mlProbXicToPKPi ().size () == ternaryCl ) {
362359 outputBkg = candidate.mlProbXicToPKPi ()[0 ]; // / bkg score
363360 outputPrompt = candidate.mlProbXicToPKPi ()[1 ]; // / prompt score
364361 outputFD = candidate.mlProbXicToPKPi ()[2 ]; // / non-prompt score
@@ -372,7 +369,7 @@ struct HfTaskXic {
372369 if (candidate.isSelXicToPiKP () >= selectionFlagXic) {
373370 massXic = hfHelper.invMassXicToPiKP (candidate);
374371 if constexpr (useMl) {
375- if (candidate.mlProbXicToPiKP ().size () == 3 ) {
372+ if (candidate.mlProbXicToPiKP ().size () == ternaryCl ) {
376373 outputBkg = candidate.mlProbXicToPiKP ()[0 ]; // / bkg score
377374 outputPrompt = candidate.mlProbXicToPiKP ()[1 ]; // / prompt score
378375 outputFD = candidate.mlProbXicToPiKP ()[2 ]; // / non-prompt score
@@ -389,14 +386,14 @@ struct HfTaskXic {
389386
390387 void processDataStd (aod::Collision const & collision,
391388 soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKaPr, aod::HfSelXicToPKPi>> const & candidates,
392- TracksWPid const & tracks)
389+ aod::TracksWDca const & tracks)
393390 {
394391 analysisData<false >(collision, candidates, tracks);
395392 }
396393 PROCESS_SWITCH (HfTaskXic, processDataStd, " Process Data with the standard method" , true );
397394
398395 void processDataWithMl (aod::Collision const & collision,
399- soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKaPr, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi>> const & candidatesMl, TracksWPid const & tracks)
396+ soa::Filtered<soa::Join<aod::HfCand3ProngWPidPiKaPr, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi>> const & candidatesMl, aod::TracksWDca const & tracks)
400397 {
401398 analysisData<true >(collision, candidatesMl, tracks);
402399 }
@@ -494,6 +491,7 @@ struct HfTaskXic {
494491 if (enableTHn) {
495492 double massXic (-1 );
496493 double outputBkg (-1 ), outputPrompt (-1 ), outputFD (-1 );
494+ const int ternaryCl = 3 ;
497495 bool allProngsInAcceptance = false ;
498496 if ((candidate.isSelXicToPKPi () >= selectionFlagXic) && pdgCodeProng0 == kProton ) {
499497 massXic = hfHelper.invMassXicToPKPi (candidate);
@@ -505,7 +503,7 @@ struct HfTaskXic {
505503 }
506504 allProngsInAcceptance = isProngInAcceptance (etaProngs[0 ], ptProngs[0 ]) && isProngInAcceptance (etaProngs[1 ], ptProngs[1 ]) && isProngInAcceptance (etaProngs[2 ], ptProngs[2 ]);
507505 if constexpr (useMl) {
508- if (candidate.mlProbXicToPKPi ().size () == 3 ) {
506+ if (candidate.mlProbXicToPKPi ().size () == ternaryCl ) {
509507 outputBkg = candidate.mlProbXicToPKPi ()[0 ]; // / bkg score
510508 outputPrompt = candidate.mlProbXicToPKPi ()[1 ]; // / prompt score
511509 outputFD = candidate.mlProbXicToPKPi ()[2 ]; // / non-prompt score
@@ -526,7 +524,7 @@ struct HfTaskXic {
526524 }
527525 allProngsInAcceptance = isProngInAcceptance (etaProngs[0 ], ptProngs[0 ]) && isProngInAcceptance (etaProngs[1 ], ptProngs[1 ]) && isProngInAcceptance (etaProngs[2 ], ptProngs[2 ]);
528526 if constexpr (useMl) {
529- if (candidate.mlProbXicToPiKP ().size () == 3 ) {
527+ if (candidate.mlProbXicToPiKP ().size () == ternaryCl ) {
530528 outputBkg = candidate.mlProbXicToPiKP ()[0 ]; // / bkg score
531529 outputPrompt = candidate.mlProbXicToPiKP ()[1 ]; // / prompt score
532530 outputFD = candidate.mlProbXicToPiKP ()[2 ]; // / non-prompt score
0 commit comments