@@ -87,6 +87,7 @@ using namespace o2::aod;
8787using namespace o2 ::hf_centrality;
8888using namespace o2 ::framework;
8989using namespace o2 ::framework::expressions;
90+ using namespace o2 ::constants::physics;
9091
9192// enum for candidate type
9293enum CandidateType {
@@ -1267,14 +1268,6 @@ struct HfTrackIndexSkimCreator {
12671268 o2::base::Propagator::MatCorrType noMatCorr = o2::base::Propagator::MatCorrType::USEMatCorrNONE;
12681269 int runNumber;
12691270
1270- double massPi{0 .};
1271- double massK{0 .};
1272- double massProton{0 .};
1273- double massElectron{0 .};
1274- double massMuon{0 .};
1275- double massDzero{0 .};
1276- double massPhi{0 .};
1277-
12781271 // int nColls{0}; //can be added to run over limited collisions per file - for tesing purposes
12791272
12801273 static constexpr int kN2ProngDecays = hf_cand_2prong::DecayType::N2ProngDecays; // number of 2-prong hadron types
@@ -1328,34 +1321,26 @@ struct HfTrackIndexSkimCreator {
13281321 return ;
13291322 }
13301323
1331- massPi = o2::constants::physics::MassPiPlus;
1332- massK = o2::constants::physics::MassKPlus;
1333- massProton = o2::constants::physics::MassProton;
1334- massElectron = o2::constants::physics::MassElectron;
1335- massMuon = o2::constants::physics::MassMuonPlus;
1336- massDzero = o2::constants::physics::MassD0;
1337- massPhi = o2::constants::physics::MassPhi;
1338-
1339- arrMass2Prong[hf_cand_2prong::DecayType::D0ToPiK] = std::array{std::array{massPi, massK},
1340- std::array{massK, massPi}};
1324+ arrMass2Prong[hf_cand_2prong::DecayType::D0ToPiK] = std::array{std::array{MassPiPlus, MassKPlus},
1325+ std::array{MassKPlus, MassPiPlus}};
13411326
1342- arrMass2Prong[hf_cand_2prong::DecayType::JpsiToEE] = std::array{std::array{massElectron, massElectron },
1343- std::array{massElectron, massElectron }};
1327+ arrMass2Prong[hf_cand_2prong::DecayType::JpsiToEE] = std::array{std::array{MassElectron, MassElectron },
1328+ std::array{MassElectron, MassElectron }};
13441329
1345- arrMass2Prong[hf_cand_2prong::DecayType::JpsiToMuMu] = std::array{std::array{massMuon, massMuon },
1346- std::array{massMuon, massMuon }};
1330+ arrMass2Prong[hf_cand_2prong::DecayType::JpsiToMuMu] = std::array{std::array{MassMuonPlus, MassMuonPlus },
1331+ std::array{MassMuonPlus, MassMuonPlus }};
13471332
1348- arrMass3Prong[hf_cand_3prong::DecayType::DplusToPiKPi] = std::array{std::array{massPi, massK, massPi },
1349- std::array{massPi, massK, massPi }};
1333+ arrMass3Prong[hf_cand_3prong::DecayType::DplusToPiKPi] = std::array{std::array{MassPiPlus, MassKPlus, MassPiPlus },
1334+ std::array{MassPiPlus, MassKPlus, MassPiPlus }};
13501335
1351- arrMass3Prong[hf_cand_3prong::DecayType::LcToPKPi] = std::array{std::array{massProton, massK, massPi },
1352- std::array{massPi, massK, massProton }};
1336+ arrMass3Prong[hf_cand_3prong::DecayType::LcToPKPi] = std::array{std::array{MassProton, MassKPlus, MassPiPlus },
1337+ std::array{MassPiPlus, MassKPlus, MassProton }};
13531338
1354- arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi] = std::array{std::array{massK, massK, massPi },
1355- std::array{massPi, massK, massK }};
1339+ arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi] = std::array{std::array{MassKPlus, MassKPlus, MassPiPlus },
1340+ std::array{MassPiPlus, MassKPlus, MassKPlus }};
13561341
1357- arrMass3Prong[hf_cand_3prong::DecayType::XicToPKPi] = std::array{std::array{massProton, massK, massPi },
1358- std::array{massPi, massK, massProton }};
1342+ arrMass3Prong[hf_cand_3prong::DecayType::XicToPKPi] = std::array{std::array{MassProton, MassKPlus, MassPiPlus },
1343+ std::array{MassPiPlus, MassKPlus, MassProton }};
13591344
13601345 // cuts for 2-prong decays retrieved by json. the order must be then one in hf_cand_2prong::DecayType
13611346 cut2Prong = {config.cutsD0ToPiK , config.cutsJpsiToEE , config.cutsJpsiToMuMu };
@@ -1572,10 +1557,10 @@ struct HfTrackIndexSkimCreator {
15721557 whichHypo[kN2ProngDecays ] = whichHypo[hf_cand_2prong::DecayType::D0ToPiK];
15731558 double deltaMass = config.cutsDstarToD0Pi ->get (pTBinDstar, 1u );
15741559
1575- if (TESTBIT (whichHypo[iDecay2P], 0 ) && (massHypos[0 ] > (massDzero + deltaMass) * (massDzero + deltaMass) || massHypos[0 ] < (massDzero - deltaMass) * (massDzero - deltaMass))) {
1560+ if (TESTBIT (whichHypo[iDecay2P], 0 ) && (massHypos[0 ] > (MassD0 + deltaMass) * (MassD0 + deltaMass) || massHypos[0 ] < (MassD0 - deltaMass) * (MassD0 - deltaMass))) {
15761561 CLRBIT (whichHypo[kN2ProngDecays ], 0 );
15771562 }
1578- if (TESTBIT (whichHypo[iDecay2P], 1 ) && (massHypos[1 ] > (massDzero + deltaMass) * (massDzero + deltaMass) || massHypos[1 ] < (massDzero - deltaMass) * (massDzero - deltaMass))) {
1563+ if (TESTBIT (whichHypo[iDecay2P], 1 ) && (massHypos[1 ] > (MassD0 + deltaMass) * (MassD0 + deltaMass) || massHypos[1 ] < (MassD0 - deltaMass) * (MassD0 - deltaMass))) {
15791564 CLRBIT (whichHypo[kN2ProngDecays ], 1 );
15801565 }
15811566 }
@@ -1597,13 +1582,13 @@ struct HfTrackIndexSkimCreator {
15971582 double deltaMassMax = cut3Prong[hf_cand_3prong::DecayType::DsToKKPi].get (pTBin, 4u );
15981583 if (TESTBIT (whichHypo[hf_cand_3prong::DecayType::DsToKKPi], 0 )) {
15991584 double mass2PhiKKPi = RecoDecay::m2 (std::array{pVecTrack0, pVecTrack1}, std::array{arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi][0 ][0 ], arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi][0 ][1 ]});
1600- if (mass2PhiKKPi > (massPhi + deltaMassMax) * (massPhi + deltaMassMax) || mass2PhiKKPi < (massPhi - deltaMassMax) * (massPhi - deltaMassMax)) {
1585+ if (mass2PhiKKPi > (MassPhi + deltaMassMax) * (MassPhi + deltaMassMax) || mass2PhiKKPi < (MassPhi - deltaMassMax) * (MassPhi - deltaMassMax)) {
16011586 CLRBIT (whichHypo[hf_cand_3prong::DecayType::DsToKKPi], 0 );
16021587 }
16031588 }
16041589 if (TESTBIT (whichHypo[hf_cand_3prong::DecayType::DsToKKPi], 1 )) {
16051590 double mass2PhiPiKK = RecoDecay::m2 (std::array{pVecTrack1, pVecTrack2}, std::array{arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi][1 ][1 ], arrMass3Prong[hf_cand_3prong::DecayType::DsToKKPi][1 ][2 ]});
1606- if (mass2PhiPiKK > (massPhi + deltaMassMax) * (massPhi + deltaMassMax) || mass2PhiPiKK < (massPhi - deltaMassMax) * (massPhi - deltaMassMax)) {
1591+ if (mass2PhiPiKK > (MassPhi + deltaMassMax) * (MassPhi + deltaMassMax) || mass2PhiPiKK < (MassPhi - deltaMassMax) * (MassPhi - deltaMassMax)) {
16071592 CLRBIT (whichHypo[hf_cand_3prong::DecayType::DsToKKPi], 1 );
16081593 }
16091594 }
@@ -1912,8 +1897,8 @@ struct HfTrackIndexSkimCreator {
19121897
19131898 // D0 mass
19141899 double deltaMassD0 = config.cutsDstarToD0Pi ->get (pTBin, 1u ); // 1u == deltaMassD0Index
1915- double invMassD0 = RecoDecay::m (arrMomD0, std::array{massPi, massK });
1916- if (std::abs (invMassD0 - massDzero ) > deltaMassD0) {
1900+ double invMassD0 = RecoDecay::m (arrMomD0, std::array{MassPiPlus, MassKPlus });
1901+ if (std::abs (invMassD0 - MassD0 ) > deltaMassD0) {
19171902 isSelected = 0 ;
19181903 if (config.debug ) {
19191904 CLRBIT (cutStatus, 1 );
@@ -1923,7 +1908,7 @@ struct HfTrackIndexSkimCreator {
19231908
19241909 // D*+ mass
19251910 double maxDeltaMass = config.cutsDstarToD0Pi ->get (pTBin, 0u ); // 0u == deltaMassIndex
1926- double invMassDstar = RecoDecay::m (arrMom, std::array{massPi, massK, massPi });
1911+ double invMassDstar = RecoDecay::m (arrMom, std::array{MassPiPlus, MassKPlus, MassPiPlus });
19271912 deltaMass = invMassDstar - invMassD0;
19281913 if (deltaMass > maxDeltaMass) {
19291914 isSelected = 0 ;
@@ -3106,10 +3091,6 @@ struct HfTrackIndexSkimCreatorCascades {
31063091 o2::base::Propagator::MatCorrType matCorr = o2::base::Propagator::MatCorrType::USEMatCorrLUT;
31073092 int runNumber{0 };
31083093
3109- double massP{0 .};
3110- double massK0s{0 .};
3111- double massLc{0 .};
3112-
31133094 using SelectedCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::HfSelCollision>>;
31143095 using FilteredTrackAssocSel = soa::Filtered<soa::Join<aod::TrackAssoc, aod::HfSelTrack>>;
31153096
@@ -3132,10 +3113,6 @@ struct HfTrackIndexSkimCreatorCascades {
31323113 config.etaMinV0Daugh .value = -config.etaMaxV0Daugh ;
31333114 }
31343115
3135- massP = o2::constants::physics::MassProton;
3136- massK0s = o2::constants::physics::MassK0Short;
3137- massLc = o2::constants::physics::MassLambdaCPlus;
3138-
31393116 if (config.useDCAFitter ) {
31403117 df2.setPropagateToPCA (config.propagateToPCA );
31413118 df2.setMaxR (config.maxR );
@@ -3225,7 +3202,7 @@ struct HfTrackIndexSkimCreatorCascades {
32253202 }
32263203
32273204 // V0 invariant mass selection
3228- if (std::abs (v0.mK0Short () - massK0s ) > config.cutInvMassV0 ) {
3205+ if (std::abs (v0.mK0Short () - MassK0Short ) > config.cutInvMassV0 ) {
32293206 continue ; // should go to the filter, but since it is a dynamic column, I cannot use it there
32303207 }
32313208
@@ -3238,8 +3215,8 @@ struct HfTrackIndexSkimCreatorCascades {
32383215
32393216 // invariant-mass cut: we do it here, before updating the momenta of bach and V0 during the fitting to save CPU
32403217 // TODO: but one should better check that the value here and after the fitter do not change significantly!!!
3241- double mass2K0sP = RecoDecay::m (std::array{pVecBach, pVecV0}, std::array{massP, massK0s });
3242- if ((config.cutInvMassCascLc >= 0 .) && (std::abs (mass2K0sP - massLc ) > config.cutInvMassCascLc )) {
3218+ double mass2K0sP = RecoDecay::m (std::array{pVecBach, pVecV0}, std::array{MassProton, MassK0Short });
3219+ if ((config.cutInvMassCascLc >= 0 .) && (std::abs (mass2K0sP - MassLambdaCPlus ) > config.cutInvMassCascLc )) {
32433220 continue ;
32443221 }
32453222
@@ -3281,7 +3258,7 @@ struct HfTrackIndexSkimCreatorCascades {
32813258
32823259 // invariant mass
32833260 // re-calculate invariant masses with updated momenta, to fill the histogram
3284- mass2K0sP = RecoDecay::m (std::array{pVecBach, pVecV0}, std::array{massP, massK0s });
3261+ mass2K0sP = RecoDecay::m (std::array{pVecBach, pVecV0}, std::array{MassProton, MassK0Short });
32853262 std::array<float , 3 > posCasc = {0 ., 0 ., 0 .};
32863263 if (config.useDCAFitter ) {
32873264 const auto & cascVtx = df2.getPCACandidate ();
@@ -3378,14 +3355,6 @@ struct HfTrackIndexSkimCreatorLfCascades {
33783355 std::array<std::array<double , 2 >, kN2ProngDecays > arrMass2Prong;
33793356 std::array<std::array<double , 3 >, kN3ProngDecays > arrMass3Prong;
33803357
3381- // PDG masses
3382- double massP{0 .};
3383- double massPi{0 .};
3384- double massKaon{0 .};
3385- double massXi{0 .};
3386- double massOmega{0 .};
3387- double massLambda{0 .};
3388-
33893358 using SelectedCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::HfSelCollision>>;
33903359 using SelectedHfTrackAssoc = soa::Filtered<soa::Join<aod::TrackAssoc, aod::HfSelTrack>>;
33913360 using CascFull = soa::Join<aod::CascDatas, aod::CascCovs>;
@@ -3407,17 +3376,10 @@ struct HfTrackIndexSkimCreatorLfCascades {
34073376 return ;
34083377 }
34093378
3410- massP = o2::constants::physics::MassProton;
3411- massPi = o2::constants::physics::MassPiPlus;
3412- massKaon = o2::constants::physics::MassKPlus;
3413- massXi = o2::constants::physics::MassXiMinus;
3414- massOmega = o2::constants::physics::MassOmegaMinus;
3415- massLambda = o2::constants::physics::MassLambda0;
3416-
3417- arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi] = std::array{massXi, massPi};
3418- arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi] = std::array{massOmega, massPi};
3419- arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK] = std::array{massOmega, massKaon};
3420- arrMass3Prong[hf_cand_casc_lf::DecayType3Prong::XicplusToXiPiPi] = std::array{massXi, massPi, massPi};
3379+ arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi] = std::array{MassXiMinus, MassPiPlus};
3380+ arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi] = std::array{MassOmegaMinus, MassPiPlus};
3381+ arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK] = std::array{MassOmegaMinus, MassKPlus};
3382+ arrMass3Prong[hf_cand_casc_lf::DecayType3Prong::XicplusToXiPiPi] = std::array{MassXiMinus, MassPiPlus, MassPiPlus};
34213383
34223384 df2.setPropagateToPCA (config.propagateToPCA );
34233385 df2.setMaxR (config.maxR );
@@ -3498,7 +3460,7 @@ struct HfTrackIndexSkimCreatorLfCascades {
34983460 std::abs (casc.dcav0topv (pvx, pvy, pvz)) > config.dcaV0ToPv &&
34993461 casc.v0radius () > config.v0TransvRadius &&
35003462 casc.cascradius () > config.cascTransvRadius &&
3501- std::abs (casc.mLambda () - massLambda ) < config.v0MassWindow ) {
3463+ std::abs (casc.mLambda () - MassLambda0 ) < config.v0MassWindow ) {
35023464
35033465 registry.fill (HIST (" hCandidateCounter" ), 3.5 ); // pass cascade selections
35043466
@@ -3668,7 +3630,7 @@ struct HfTrackIndexSkimCreatorLfCascades {
36683630 std::array<std::array<float , 3 >, 2 > arrMomToXi = {pVecXi, pVecPion1XiHyp};
36693631 auto mass2ProngXiHyp = RecoDecay::m (arrMomToXi, arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi]);
36703632
3671- if ((std::abs (casc.mXi () - massXi ) < config.cascadeMassWindow ) && (mass2ProngXiHyp >= config.massXiPiMin ) && (mass2ProngXiHyp <= config.massXiPiMax )) {
3633+ if ((std::abs (casc.mXi () - MassXiMinus ) < config.cascadeMassWindow ) && (mass2ProngXiHyp >= config.massXiPiMin ) && (mass2ProngXiHyp <= config.massXiPiMax )) {
36723634 registry.fill (HIST (" hRejpTStatusXicZeroOmegacZeroToXiPi" ), 0 );
36733635 if (ptXic >= config.ptMinXicZeroOmegacZeroToXiPiLfCasc ) {
36743636 SETBIT (hfFlag, aod::hf_cand_casc_lf::DecayType2Prong::XiczeroOmegaczeroToXiPi);
@@ -3716,7 +3678,7 @@ struct HfTrackIndexSkimCreatorLfCascades {
37163678 auto mass2ProngOmegaPiHyp = RecoDecay::m (arrMomToOmega, arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi]);
37173679 auto mass2ProngOmegaKHyp = RecoDecay::m (arrMomToOmega, arrMass2Prong[hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK]);
37183680
3719- if (std::abs (casc.mOmega () - massOmega ) < config.cascadeMassWindow ) {
3681+ if (std::abs (casc.mOmega () - MassOmegaMinus ) < config.cascadeMassWindow ) {
37203682 if ((mass2ProngOmegaPiHyp >= config.massOmegaCharmBachelorMin ) && (mass2ProngOmegaPiHyp <= config.massOmegaCharmBachelorMax )) {
37213683 registry.fill (HIST (" hRejpTStatusOmegacZeroToOmegaPi" ), 0 );
37223684 if (ptOmegac >= config.ptMinOmegacZeroToOmegaPiLfCasc ) {
@@ -3819,7 +3781,7 @@ struct HfTrackIndexSkimCreatorLfCascades {
38193781 std::array<std::array<float , 3 >, 3 > arr3Mom = {pVec1, pVec2, pVec3};
38203782 auto mass3Prong = RecoDecay::m (arr3Mom, arrMass3Prong[hf_cand_casc_lf::DecayType3Prong::XicplusToXiPiPi]);
38213783
3822- if ((std::abs (casc.mXi () - massXi ) < config.cascadeMassWindow ) && (mass3Prong >= config.massXiPiPiMin ) && (mass3Prong <= config.massXiPiPiMax )) {
3784+ if ((std::abs (casc.mXi () - MassXiMinus ) < config.cascadeMassWindow ) && (mass3Prong >= config.massXiPiPiMin ) && (mass3Prong <= config.massXiPiPiMax )) {
38233785 registry.fill (HIST (" hRejpTStatusXicPlusToXiPiPi" ), 0 );
38243786 if (ptXic3Prong >= config.ptMinXicplusLfCasc ) {
38253787 SETBIT (hfFlag, aod::hf_cand_casc_lf::DecayType3Prong::XicplusToXiPiPi);
0 commit comments