@@ -149,13 +149,16 @@ struct HfFilter { // Main struct for HF triggers
149149
150150 // parameters for Sigma_C proton trigger
151151 Configurable<LabeledArray<float >> cutsSigmaCPr{
152- " cutsSigmaCPr" ,
153- {cutsSigmaCPrDefault[0 ],
154- static_cast <uint32_t >(labelsRowsSigmaCPr.size ()),
155- static_cast <uint32_t >(labelsColumnsSigmaCPr.size ()),
156- labelsRowsSigmaCPr,
157- labelsColumnsSigmaCPr},
158- " Cuts for SigmaCPr trigger (proton pT, PID, TOF)" };
152+ " cutsSigmaCPr" ,
153+ {cutsSigmaCPrDefault[0 ],
154+ static_cast <uint32_t >(labelsRowsSigmaCPr.size ()),
155+ static_cast <uint32_t >(labelsColumnsSigmaCPr.size ()),
156+ labelsRowsSigmaCPr,
157+ labelsColumnsSigmaCPr},
158+ " Cuts for SigmaCPr trigger (proton pT and TOF threshold pT)"
159+ };
160+ Configurable<bool > forceTofProtonForSigmaCPr{" forceTofProtonForSigmaCPr" , true , " flag to force TOF PID for protons in SigmaCPr trigger" };
161+
159162 // parameters for charm baryons to Xi bachelor
160163 Configurable<LabeledArray<float >> cutsXiCascades{" cutsXiCascades" , {cutsCascades[0 ], 1 , 8 , labelsEmpty, labelsColumnsCascades}, " Selections for cascades (Xi) for Xi+bachelor triggers" };
161164 Configurable<LabeledArray<float >> cutsXiBachelor{" cutsXiBachelor" , {cutsCharmBaryons[0 ], 1 , 15 , labelsEmpty, labelsColumnsCharmBarCuts}, " Selections for charm baryons (Xi+Pi, Xi+Ka, Xi+Pi+Pi)" };
@@ -170,7 +173,7 @@ struct HfFilter { // Main struct for HF triggers
170173 Configurable<LabeledArray<double >> thresholdBDTScoreDSToPiKK{" thresholdBDTScoreDSToPiKK" , {hf_cuts_bdt_multiclass::Cuts[0 ], hf_cuts_bdt_multiclass::NBinsPt, hf_cuts_bdt_multiclass::NCutBdtScores, hf_cuts_bdt_multiclass::labelsPt, hf_cuts_bdt_multiclass::labelsCutBdt}, " Threshold values for BDT output scores of Ds+ candidates" };
171174 Configurable<LabeledArray<double >> thresholdBDTScoreLcToPiKP{" thresholdBDTScoreLcToPiKP" , {hf_cuts_bdt_multiclass::Cuts[0 ], hf_cuts_bdt_multiclass::NBinsPt, hf_cuts_bdt_multiclass::NCutBdtScores, hf_cuts_bdt_multiclass::labelsPt, hf_cuts_bdt_multiclass::labelsCutBdt}, " Threshold values for BDT output scores of Lc+ candidates" };
172175 Configurable<LabeledArray<double >> thresholdBDTScoreXicToPiKP{" thresholdBDTScoreXicToPiKP" , {hf_cuts_bdt_multiclass::Cuts[0 ], hf_cuts_bdt_multiclass::NBinsPt, hf_cuts_bdt_multiclass::NCutBdtScores, hf_cuts_bdt_multiclass::labelsPt, hf_cuts_bdt_multiclass::labelsCutBdt}, " Threshold values for BDT output scores of Xic+ candidates" };
173- Configurable<LabeledArray<double >> thresholdBDTScoreScLcToPiKP{ " thresholdBDTScoreScLcToPiKP " , {hf_cuts_bdt_multiclass::Cuts[0 ], hf_cuts_bdt_multiclass::NBinsPt, hf_cuts_bdt_multiclass::NCutBdtScores, hf_cuts_bdt_multiclass::labelsPt, hf_cuts_bdt_multiclass::labelsCutBdt}, " Threshold values for BDT output scores of Lc<--Sc candidates" };
176+ Configurable<LabeledArray<double >> thresholdBDTScoreScForSigmaCPr{ " thresholdBDTScoreScForSigmaCPr " , {hf_cuts_bdt_multiclass::Cuts[0 ], hf_cuts_bdt_multiclass::NBinsPt, hf_cuts_bdt_multiclass::NCutBdtScores, hf_cuts_bdt_multiclass::labelsPt, hf_cuts_bdt_multiclass::labelsCutBdt}, " Threshold values for BDT output scores of Lc<--Sc candidates for sigmaC-pr trigger " };
174177
175178 Configurable<bool > acceptBdtBkgOnly{" acceptBdtBkgOnly" , true , " Enable / disable selection based on BDT bkg score only" };
176179
@@ -234,7 +237,7 @@ struct HfFilter { // Main struct for HF triggers
234237 std::array<std::shared_ptr<TH1>, kNCharmParticles > hCharmProtonKstarDistr{};
235238 std::array<std::shared_ptr<TH1>, kNCharmParticles > hCharmDeuteronKstarDistr{};
236239 std::array<std::shared_ptr<TH2>, nTotBeautyParts> hMassVsPtB{};
237- std::array<std::shared_ptr<TH2>, kNCharmParticles + 24 > hMassVsPtC{}; // +9 for resonances (D*+, D*0, Ds*+, Ds1+, Ds2*+, Xic+* right sign, Xic+* wrong sign, Xic0* right sign, Xic0* wrong sign) +2 for SigmaC (SigmaC++, SigmaC0) +2 for SigmaCK pairs (SigmaC++K-, SigmaC0K0s) +3 for charm baryons (Xi+Pi, Xi+Ka, Xi+Pi+Pi) + JPsi + 4 for charm baryons (D0+p, D0+pWrongSign, D*0p, D*0+pWrongSign)
240+ std::array<std::shared_ptr<TH2>, kNCharmParticles + 24 > hMassVsPtC{}; // +9 for resonances (D*+, D*0, Ds*+, Ds1+, Ds2*+, Xic+* right sign, Xic+* wrong sign, Xic0* right sign, Xic0* wrong sign) +2 for SigmaC (SigmaC++, SigmaC0) +2 for SigmaCK pairs (SigmaC++K-, SigmaC0K0s) +3 for charm baryons (Xi+Pi, Xi+Ka, Xi+Pi+Pi) + JPsi + 4 for charm baryons (D0+p, D0+pWrongSign, D*0p, D*0+pWrongSign) +1 for SigmaCPr correlation
238241 std::array<std::shared_ptr<TH2>, 4 > hPrDePID; // proton TPC, proton TOF, deuteron TPC, deuteron TOF
239242 std::array<std::shared_ptr<TH1>, kNCharmParticles > hBDTScoreBkg{};
240243 std::array<std::shared_ptr<TH1>, kNCharmParticles > hBDTScorePrompt{};
@@ -295,13 +298,13 @@ struct HfFilter { // Main struct for HF triggers
295298 helper.setVtxConfiguration (dfStrangeness, true ); // (DCAFitterN, useAbsDCA)
296299 helper.setVtxConfiguration (dfStrangeness3, true ); // (DCAFitterN, useAbsDCA)
297300 helper.setParSigmaCPr (
298- cutsPtDeltaMassCharmReso->get (0u , 13u ), // min ΔM
299- cutsPtDeltaMassCharmReso->get (1u , 13u ), // max ΔM
300- cutsPtDeltaMassCharmReso->get (2u , 13u ), // min pT SigmaC
301- cutsSigmaCPr->get (0u , 0u ), // min pT proton
302- cutsSigmaCPr->get (1u , 0u ), // max pT proton
303- static_cast < bool >( cutsSigmaCPr->get (2u , 0u )) , // force TOF
304- cutsSigmaCPr-> get ( 3u , 0u ) // TOF pT threshold
301+ cutsPtDeltaMassCharmReso->get (0u , 13u ), // min ΔM
302+ cutsPtDeltaMassCharmReso->get (1u , 13u ), // max ΔM
303+ cutsPtDeltaMassCharmReso->get (2u , 13u ), // min pT SigmaC
304+ cutsSigmaCPr->get (0u , 0u ), // min pT proton
305+ cutsSigmaCPr->get (1u , 0u ), // max pT proton
306+ cutsSigmaCPr->get (2u , 2u ) , // TOF pT threshold
307+ forceTofProtonForSigmaCPr // set True for force TOF on proton candidate after threshold
305308 );
306309 dfStrangeness.setMatCorrType (matCorr);
307310 dfStrangeness3.setMatCorrType (matCorr);
@@ -389,7 +392,7 @@ struct HfFilter { // Main struct for HF triggers
389392 // ThetaC
390393 hMassVsPtC[kNCharmParticles + 21 ] = registry.add <TH2>(" fMassVsPtCharmBaryonToDstarP" , " #it{M} vs. #it{p}_{T} distribution of triggered D^{*0}#p candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts" , HistType::kTH2D , {ptAxis, massAxisC[kNCharmParticles + 21 ]});
391394 hMassVsPtC[kNCharmParticles + 22 ] = registry.add <TH2>(" fMassVsPtCharmBaryonToDstarPWrongSign" , " #it{M} vs. #it{p}_{T} distribution of triggered D^{*0}#p wrong sign candidates;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts" , HistType::kTH2D , {ptAxis, massAxisC[kNCharmParticles + 22 ]});
392- // SigmaC-p
395+ // SigmaC-p
393396 hMassVsPtC[kNCharmParticles + 23 ] = registry.add <TH2>(" fMassVsPtSigmaCPr" , " #it{M} vs. #it{p}_{T} distribution of #Sigma_{c} for SigmaCPr trigger;#it{p}_{T} (GeV/#it{c});#it{M} (GeV/#it{c}^{2});counts" , HistType::kTH2D , {ptAxis, massAxisC[kNCharmParticles + 23 ]});
394397
395398 for (int iBeautyPart{0 }; iBeautyPart < kNBeautyParticles ; ++iBeautyPart) {
@@ -479,7 +482,7 @@ struct HfFilter { // Main struct for HF triggers
479482 bool isSelectedITSROFBorder = evSel.applyITSROFBorderCut ? collision.selection_bit (o2::aod::evsel::kNoITSROFrameBorder ) : true ;
480483 bool isSelectedPvZ = (std::fabs (collision.posZ ()) < evSel.maxPvZ );
481484 if (!isSelectedTVX || !isSelectedTFBorder || !isSelectedITSROFBorder || !isSelectedPvZ) {
482- tags (keepEvent[kHighPt2P ], keepEvent[kHighPt3P ], keepEvent[kBeauty3P ], keepEvent[kBeauty4P ], keepEvent[kFemto2P ], keepEvent[kFemto3P ], keepEvent[kDoubleCharm2P ], keepEvent[kDoubleCharm3P ], keepEvent[kDoubleCharmMix ], keepEvent[kV0Charm2P ], keepEvent[kV0Charm3P ], keepEvent[kCharmBarToXiBach ], keepEvent[kSigmaCPPK ], keepEvent[kSigmaC0K0 ], keepEvent[kSigmaCPr ], keepEvent[ kPhotonCharm2P ], keepEvent[kPhotonCharm3P ], keepEvent[kSingleCharm2P ], keepEvent[kSingleCharm3P ], keepEvent[kSingleNonPromptCharm2P ], keepEvent[kSingleNonPromptCharm3P ], keepEvent[kCharmBarToXi2Bach ], keepEvent[kPrCharm2P ], keepEvent[kBtoJPsiKa ], keepEvent[kBtoJPsiKstar ], keepEvent[kBtoJPsiPhi ], keepEvent[kBtoJPsiPrKa ], keepEvent[kBtoJPsiPi ]);
485+ tags (keepEvent[kHighPt2P ], keepEvent[kHighPt3P ], keepEvent[kBeauty3P ], keepEvent[kBeauty4P ], keepEvent[kFemto2P ], keepEvent[kFemto3P ], keepEvent[kDoubleCharm2P ], keepEvent[kDoubleCharm3P ], keepEvent[kDoubleCharmMix ], keepEvent[kV0Charm2P ], keepEvent[kV0Charm3P ], keepEvent[kCharmBarToXiBach ], keepEvent[kSigmaCPPK ], keepEvent[kSigmaC0K0 ], keepEvent[kPhotonCharm2P ], keepEvent[kPhotonCharm3P ], keepEvent[kSingleCharm2P ], keepEvent[kSingleCharm3P ], keepEvent[kSingleNonPromptCharm2P ], keepEvent[kSingleNonPromptCharm3P ], keepEvent[kCharmBarToXi2Bach ], keepEvent[kPrCharm2P ], keepEvent[kBtoJPsiKa ], keepEvent[kBtoJPsiKstar ], keepEvent[kBtoJPsiPhi ], keepEvent[kBtoJPsiPrKa ], keepEvent[kBtoJPsiPi ], keepEvent[ kSigmaCPr ]);
483486 continue ;
484487 }
485488
@@ -1552,7 +1555,7 @@ struct HfFilter { // Main struct for HF triggers
15521555 bool isTrackProton = helper.isSelectedTrack4Corr (track, trackParFourth, activateQA, hPrDePID[4 ], hPrDePID[5 ], kProtonForScPrCorr );
15531556
15541557 if ((!keepEvent[kSigmaCPPK ] || !keepEvent[kSigmaCPr ]) && is3Prong[2 ] > 0 && is3ProngInMass[2 ] > 0 && isSignalTagged[2 ] > 0 && (isTrackKaon || isTrackProton)) {
1555- // we need a candidate Lc->pKpi and a candidate soft kaon
1558+ // we need a candidate Lc->pKpi and a candidate soft kaon, and also need a candidate of proton for sigmaC correlation
15561559
15571560 // look for SigmaC++ candidates
15581561 for (const auto & trackSoftPiId : trackIdsThisCollision) { // start loop over tracks (soft pi)
@@ -1591,70 +1594,65 @@ struct HfFilter { // Main struct for HF triggers
15911594 // check the mass of the SigmaC++ candidate
15921595 auto pVecSigmaC = RecoDecay::pVec (pVecFirst, pVecSecond, pVecThird, pVecSoftPi);
15931596 auto ptSigmaC = RecoDecay::pt (pVecSigmaC);
1594- int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange <2 >(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2 ], hMassVsPtC[kNCharmParticles + 9 ], activateQA);
1597+ int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange <2 >(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2 ], hMassVsPtC[kNCharmParticles + 9 ], activateQA); // put charge = -1, it ensure the function is not looking charge and calculate the bit for ground state of SigmaC in the specified mass range
15951598 if (whichSigmaC > 0 ) {
15961599 // / let's build a candidate SigmaC++K- pair
15971600 // / and keep it only if:
15981601 // / - it has the correct charge (±1)
15991602 // / - it is in the correct mass range
1600-
16011603 // check the charge for SigmaC++K- candidates
1604+ if (!keepEvent[kSigmaCPPK ] && (std::abs (chargeSc + track.sign ()) == 1 && std::abs (chargeSc) == 2 )){
1605+ // check the invariant mass
1606+ float massSigmaCPKPi{-999 .}, massSigmaCPiKP{-999 .}, deltaMassXicResoPKPi{-999 .}, deltaMassXicResoPiKP{-999 .};
1607+ float ptSigmaCKaon = RecoDecay::pt (pVecSigmaC, pVecFourth);
1608+
1609+ if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get (2u , 10u )) {
1610+ if (TESTBIT (whichSigmaC, 0 )) {
1611+ massSigmaCPKPi = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massProton, massKa, massPi, massPi});
1612+ deltaMassXicResoPKPi = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massProton, massKa, massPi, massPi, massKa}) - massSigmaCPKPi;
1613+ }
1614+ if (TESTBIT (whichSigmaC, 1 )) {
1615+ massSigmaCPiKP = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massPi, massKa, massProton, massPi});
1616+ deltaMassXicResoPiKP = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massPi, massKa, massProton, massPi, massKa}) - massSigmaCPiKP;
1617+ }
1618+ bool isPKPiOk = (cutsPtDeltaMassCharmReso->get (0u , 10u ) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get (1u , 10u ));
1619+ bool isPiKPOk = (cutsPtDeltaMassCharmReso->get (0u , 10u ) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get (1u , 10u ));
1620+ if ((isPKPiOk || isPiKPOk) && isTrackKaon) {
1621+ // / This is a good SigmaC++K- event
1622+ keepEvent[kSigmaCPPK ] = true ;
16021623
1603- if (!keepEvent[kSigmaCPPK ] && (std::abs (chargeSc + track.sign ()) == 1 && std::abs (chargeSc) == 2 )) {
1604- // check the invariant mass
1605- float massSigmaCPKPi{-999 .}, massSigmaCPiKP{-999 .}, deltaMassXicResoPKPi{-999 .}, deltaMassXicResoPiKP{-999 .};
1606- float ptSigmaCKaon = RecoDecay::pt (pVecSigmaC, pVecFourth);
1607-
1608- if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get (2u , 10u )) {
1609- if (TESTBIT (whichSigmaC, 0 )) {
1610- massSigmaCPKPi = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massProton, massKa, massPi, massPi});
1611- deltaMassXicResoPKPi = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massProton, massKa, massPi, massPi, massKa}) - massSigmaCPKPi;
1612- }
1613- if (TESTBIT (whichSigmaC, 1 )) {
1614- massSigmaCPiKP = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massPi, massKa, massProton, massPi});
1615- deltaMassXicResoPiKP = RecoDecay::m (std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massPi, massKa, massProton, massPi, massKa}) - massSigmaCPiKP;
1616- }
1617- bool isPKPiOk = (cutsPtDeltaMassCharmReso->get (0u , 10u ) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get (1u , 10u ));
1618- bool isPiKPOk = (cutsPtDeltaMassCharmReso->get (0u , 10u ) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get (1u , 10u ));
1619- if ((isPKPiOk || isPiKPOk) && isTrackKaon) {
1620- // / This is a good SigmaC++K- event
1621- keepEvent[kSigmaCPPK ] = true ;
1622-
1623- // / QA plot
1624- if (activateQA) {
1625- if (isPKPiOk) {
1626- if (TESTBIT (whichSigmaC, 2 )) {
1627- hMassVsPtC[kNCharmParticles + 11 ]->Fill (ptSigmaCKaon, deltaMassXicResoPKPi);
1628- }
1629- if (TESTBIT (whichSigmaC, 3 )) {
1630- hMassVsPtC[kNCharmParticles + 12 ]->Fill (ptSigmaCKaon, deltaMassXicResoPKPi);
1631- }
1624+ // / QA plot
1625+ if (activateQA) {
1626+ if (isPKPiOk) {
1627+ if (TESTBIT (whichSigmaC, 2 )) {
1628+ hMassVsPtC[kNCharmParticles + 11 ]->Fill (ptSigmaCKaon, deltaMassXicResoPKPi);
16321629 }
1633- if (isPiKPOk) {
1634- if (TESTBIT (whichSigmaC, 2 )) {
1635- hMassVsPtC[kNCharmParticles + 11 ]->Fill (ptSigmaCKaon, deltaMassXicResoPiKP);
1636- }
1637- if (TESTBIT (whichSigmaC, 3 )) {
1638- hMassVsPtC[kNCharmParticles + 12 ]->Fill (ptSigmaCKaon, deltaMassXicResoPiKP);
1639- }
1630+ if (TESTBIT (whichSigmaC, 3 )) {
1631+ hMassVsPtC[kNCharmParticles + 12 ]->Fill (ptSigmaCKaon, deltaMassXicResoPKPi);
1632+ }
1633+ }
1634+ if (isPiKPOk) {
1635+ if (TESTBIT (whichSigmaC, 2 )) {
1636+ hMassVsPtC[kNCharmParticles + 11 ]->Fill (ptSigmaCKaon, deltaMassXicResoPiKP);
1637+ }
1638+ if (TESTBIT (whichSigmaC, 3 )) {
1639+ hMassVsPtC[kNCharmParticles + 12 ]->Fill (ptSigmaCKaon, deltaMassXicResoPiKP);
16401640 }
16411641 }
16421642 }
16431643 }
16441644 }
1645+ }
16451646 }
1647+ // now from here we are looking for SigmaC-proton trigger
1648+ // DeltaEta is the difference in Eta between SigmaC candiate and proton
16461649 float deltaEta = std::abs (RecoDecay::eta (pVecSigmaC) - track.eta ());
16471650 if (!keepEvent[kSigmaCPr ] && (isTrackProton && deltaEta < 1.0 )) {
1648- auto tagBDT = helper.isBDTSelected (scores[2 ], thresholdBDTScoreScLcToPiKP.value );
1649- int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange <-1 >(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2 ], hMassVsPtC[kNCharmParticles + 23 ], activateQA);
1650- if (TESTBIT (whichSigmaC, 4 )) {
1651- if (TESTBIT (tagBDT, RecoDecay::OriginType::Prompt)) {
1652- }
1653- }
1654- // helper.selectionSigmaCForScPCorr(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2], hMassVsPtC[kNCharmParticles + 23], activateQA, configSigmaC.minMassSigmaCCorr, configSigmaC.maxMassSigmaCCorr, configSigmaC.minPtSigmaC, configSigmaC.maxPtSigmaC)
1655- if (TESTBIT (whichSigmaC, 4 ) && TESTBIT (tagBDT, RecoDecay::OriginType::Prompt)) {
1651+ auto tagBDT = helper.isBDTSelected (scores[2 ], thresholdBDTScoreScForSigmaCPr.value );
1652+ int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange <-1 >(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2 ], hMassVsPtC[kNCharmParticles + 23 ], activateQA); // put charge {-1} for not looking charge specific SigmaC ground state, it will return bit 4 corresponding to it
1653+ if (TESTBIT (whichSigmaC, 4 ) && TESTBIT (tagBDT, RecoDecay::OriginType::Prompt)) {
16561654 keepEvent[kSigmaCPr ] = true ;
1657- }
1655+ }
16581656 }
16591657 } // end SigmaC++ candidate
16601658 } // end loop over tracks (soft pi)
@@ -2052,7 +2050,7 @@ struct HfFilter { // Main struct for HF triggers
20522050 }
20532051 }
20542052
2055- tags (keepEvent[kHighPt2P ], keepEvent[kHighPt3P ], keepEvent[kBeauty3P ], keepEvent[kBeauty4P ], keepEvent[kFemto2P ], keepEvent[kFemto3P ], keepEvent[kDoubleCharm2P ], keepEvent[kDoubleCharm3P ], keepEvent[kDoubleCharmMix ], keepEvent[kV0Charm2P ], keepEvent[kV0Charm3P ], keepEvent[kCharmBarToXiBach ], keepEvent[kSigmaCPPK ], keepEvent[kSigmaC0K0 ], keepEvent[kSigmaCPr ], keepEvent[ kPhotonCharm2P ], keepEvent[kPhotonCharm3P ], keepEvent[kSingleCharm2P ], keepEvent[kSingleCharm3P ], keepEvent[kSingleNonPromptCharm2P ], keepEvent[kSingleNonPromptCharm3P ], keepEvent[kCharmBarToXi2Bach ], keepEvent[kPrCharm2P ], keepEvent[kBtoJPsiKa ], keepEvent[kBtoJPsiKstar ], keepEvent[kBtoJPsiPhi ], keepEvent[kBtoJPsiPrKa ], keepEvent[kBtoJPsiPi ]);
2053+ tags (keepEvent[kHighPt2P ], keepEvent[kHighPt3P ], keepEvent[kBeauty3P ], keepEvent[kBeauty4P ], keepEvent[kFemto2P ], keepEvent[kFemto3P ], keepEvent[kDoubleCharm2P ], keepEvent[kDoubleCharm3P ], keepEvent[kDoubleCharmMix ], keepEvent[kV0Charm2P ], keepEvent[kV0Charm3P ], keepEvent[kCharmBarToXiBach ], keepEvent[kSigmaCPPK ], keepEvent[kSigmaC0K0 ], keepEvent[kPhotonCharm2P ], keepEvent[kPhotonCharm3P ], keepEvent[kSingleCharm2P ], keepEvent[kSingleCharm3P ], keepEvent[kSingleNonPromptCharm2P ], keepEvent[kSingleNonPromptCharm3P ], keepEvent[kCharmBarToXi2Bach ], keepEvent[kPrCharm2P ], keepEvent[kBtoJPsiKa ], keepEvent[kBtoJPsiKstar ], keepEvent[kBtoJPsiPhi ], keepEvent[kBtoJPsiPrKa ], keepEvent[kBtoJPsiPi ], keepEvent[ kSigmaCPr ]);
20562054
20572055 if (!std::accumulate (keepEvent, keepEvent + kNtriggersHF , 0 )) {
20582056 hProcessedEvents->Fill (1 );
0 commit comments