@@ -160,6 +160,7 @@ struct HfCorrelatorLcHadronsSelection {
160160// Lc-Hadron correlation pair builder - for real data and data-like analysis (i.e. reco-level w/o matching request via Mc truth)
161161struct HfCorrelatorLcHadrons {
162162 Produces<aod::LcHadronPair> entryLcHadronPair;
163+ Produces<aod::LcHadronPairY> entryLcHadronPairY;
163164 Produces<aod::LcHadronPairTrkPID> entryLcHadronPairTrkPID;
164165 Produces<aod::LcHadronRecoInfo> entryLcHadronRecoInfo;
165166 Produces<aod::LcHadronMlInfo> entryLcHadronMlInfo;
@@ -209,6 +210,7 @@ struct HfCorrelatorLcHadrons {
209210 Service<o2::framework::O2DatabasePDG> pdg;
210211 int leadingIndex = 0 ;
211212 bool correlationStatus = false ;
213+ static constexpr size_t nDaughters{3u };
212214 TRandom3* rnd = new TRandom3(0 );
213215
214216 // Event Mixing for the Data Mode
@@ -394,7 +396,7 @@ struct HfCorrelatorLcHadrons {
394396 outputMl[iclass] = candidate.mlProbLcToPKPi ()[classMl->at (iclass)];
395397 }
396398 entryLcCandRecoInfo (hfHelper.invMassLcToPKPi (candidate), candidate.pt () * chargeLc, outputMl[0 ], outputMl[1 ]); // 0: BkgBDTScore, 1:PromptBDTScore
397- entryLc (candidate.phi (), candidate.eta (), candidate.pt (), hfHelper.invMassLcToPKPi (candidate), poolBin, gCollisionId , timeStamp);
399+ entryLc (candidate.phi (), candidate.eta (), candidate.pt () * chargeLc , hfHelper.invMassLcToPKPi (candidate), poolBin, gCollisionId , timeStamp);
398400 }
399401 if (candidate.isSelLcToPiKP () >= selectionFlagLc) {
400402 registry.fill (HIST (" hMassLcVsPt" ), hfHelper.invMassLcToPiKP (candidate), candidate.pt (), efficiencyWeightLc);
@@ -405,7 +407,7 @@ struct HfCorrelatorLcHadrons {
405407 }
406408 entryLcCandRecoInfo (hfHelper.invMassLcToPiKP (candidate), candidate.pt () * chargeLc, outputMl[0 ], outputMl[1 ]); // 0: BkgBDTScore, 1:PromptBDTScore
407409 if (!skipMixedEventTableFilling) {
408- entryLc (candidate.phi (), candidate.eta (), candidate.pt (), hfHelper.invMassLcToPiKP (candidate), poolBin, gCollisionId , timeStamp);
410+ entryLc (candidate.phi (), candidate.eta (), candidate.pt () * chargeLc , hfHelper.invMassLcToPiKP (candidate), poolBin, gCollisionId , timeStamp);
409411 }
410412 }
411413
@@ -438,6 +440,7 @@ struct HfCorrelatorLcHadrons {
438440 track.pt () * track.sign (),
439441 poolBin,
440442 correlationStatus);
443+ entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
441444 entryLcHadronRecoInfo (hfHelper.invMassLcToPKPi (candidate), false );
442445 entryLcHadronGenInfo (false , false , 0 );
443446 entryLcHadronMlInfo (outputMl[0 ], outputMl[1 ]);
@@ -453,6 +456,7 @@ struct HfCorrelatorLcHadrons {
453456 track.pt () * track.sign (),
454457 poolBin,
455458 correlationStatus);
459+ entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
456460 entryLcHadronRecoInfo (hfHelper.invMassLcToPiKP (candidate), false );
457461 entryLcHadronGenInfo (false , false , 0 );
458462 entryLcHadronMlInfo (outputMl[0 ], outputMl[1 ]);
@@ -689,6 +693,7 @@ struct HfCorrelatorLcHadrons {
689693 track.pt () * track.sign (),
690694 poolBin,
691695 correlationStatus);
696+ entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
692697 entryLcHadronRecoInfo (hfHelper.invMassLcToPKPi (candidate), isLcSignal);
693698 if (fillTrkPID) {
694699 entryLcHadronPairTrkPID (track.tpcNSigmaPr (), track.tpcNSigmaKa (), track.tpcNSigmaPi (), track.tofNSigmaPr (), track.tofNSigmaKa (), track.tofNSigmaPi ());
@@ -718,6 +723,7 @@ struct HfCorrelatorLcHadrons {
718723 track.pt () * track.sign (),
719724 poolBin,
720725 correlationStatus);
726+ entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
721727 entryLcHadronRecoInfo (hfHelper.invMassLcToPiKP (candidate), isLcSignal);
722728 if (fillTrkPID) {
723729 entryLcHadronPairTrkPID (track.tpcNSigmaPr (), track.tpcNSigmaKa (), track.tpcNSigmaPi (), track.tofNSigmaPr (), track.tofNSigmaKa (), track.tofNSigmaPi ());
@@ -794,12 +800,12 @@ struct HfCorrelatorLcHadrons {
794800
795801 // prompt and non-prompt division
796802 std::vector<int > listDaughters{};
797- std::array<int , 3 > arrDaughLcPDG = {kProton , -kKPlus , kPiPlus };
798- std::array<int , 3 > prongsId;
803+ std::array<int , nDaughters > arrDaughLcPDG = {kProton , -kKPlus , kPiPlus };
804+ std::array<int , nDaughters > prongsId;
799805 listDaughters.clear ();
800806 RecoDecay::getDaughters (particle, &listDaughters, arrDaughLcPDG, 2 );
801807 int counterDaughters = 0 ;
802- if (listDaughters.size () == 3 ) {
808+ if (listDaughters.size () == nDaughters ) {
803809 for (const auto & dauIdx : listDaughters) {
804810 auto daughI = mcParticles.rawIteratorAt (dauIdx - mcParticles.offset ());
805811 counterDaughters += 1 ;
@@ -849,6 +855,7 @@ struct HfCorrelatorLcHadrons {
849855 particleAssoc.pt () * chargeAssoc / std::abs (chargeAssoc),
850856 poolBin,
851857 correlationStatus);
858+ entryLcHadronPairY (particleAssoc.y () - yL);
852859 entryLcHadronRecoInfo (MassLambdaCPlus, true );
853860 entryLcHadronGenInfo (isLcPrompt, particleAssoc.isPhysicalPrimary (), trackOrigin);
854861 } // end inner loop
@@ -889,6 +896,7 @@ struct HfCorrelatorLcHadrons {
889896 assocParticle.pt () * assocParticle.sign (),
890897 poolBin,
891898 correlationStatus);
899+ entryLcHadronPairY (assocParticle.y () - hfHelper.yLc (trigLc));
892900 entryLcHadronRecoInfo (hfHelper.invMassLcToPKPi (trigLc), false );
893901 entryLcHadronGenInfo (false , false , 0 );
894902 if (fillTrkPID) {
@@ -907,6 +915,7 @@ struct HfCorrelatorLcHadrons {
907915 assocParticle.pt () * assocParticle.sign (),
908916 poolBin,
909917 correlationStatus);
918+ entryLcHadronPairY (assocParticle.y () - hfHelper.yLc (trigLc));
910919 entryLcHadronRecoInfo (hfHelper.invMassLcToPiKP (trigLc), false );
911920 entryLcHadronGenInfo (false , false , 0 );
912921 if (fillTrkPID) {
@@ -1006,6 +1015,7 @@ struct HfCorrelatorLcHadrons {
10061015 pAssoc.pt () * pAssoc.sign (),
10071016 poolBin,
10081017 correlationStatus);
1018+ entryLcHadronPairY (pAssoc.y () - hfHelper.yLc (candidate));
10091019 entryLcHadronRecoInfo (hfHelper.invMassLcToPKPi (candidate), isLcSignal);
10101020 entryLcHadronGenInfo (isLcPrompt, isPhysicalPrimary, trackOrigin);
10111021 if (fillTrkPID) {
@@ -1024,6 +1034,7 @@ struct HfCorrelatorLcHadrons {
10241034 pAssoc.pt () * pAssoc.sign (),
10251035 poolBin,
10261036 correlationStatus);
1037+ entryLcHadronPairY (pAssoc.y () - hfHelper.yLc (candidate));
10271038 entryLcHadronRecoInfo (hfHelper.invMassLcToPiKP (candidate), isLcSignal);
10281039 entryLcHadronGenInfo (isLcPrompt, isPhysicalPrimary, trackOrigin);
10291040 if (fillTrkPID) {
@@ -1079,6 +1090,7 @@ struct HfCorrelatorLcHadrons {
10791090 particleAssoc.pt () * chargeAssoc / std::abs (chargeAssoc),
10801091 poolBin,
10811092 correlationStatus);
1093+ entryLcHadronPairY (particleAssoc.y () - yL);
10821094 entryLcHadronRecoInfo (MassLambdaCPlus, true );
10831095 entryLcHadronGenInfo (isLcPrompt, particleAssoc.isPhysicalPrimary (), trackOrigin);
10841096 }
0 commit comments