Skip to content

Commit 7f6918d

Browse files
author
Mriganka Mouli Mondal
committed
mergin after implementing comment and recove tab character
Merge remote-tracking branch 'refs/remotes/origin/master'
2 parents a09ab7d + ca4d78b commit 7f6918d

File tree

61 files changed

+2409
-957
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+2409
-957
lines changed

Common/CCDB/EventSelectionParams.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ const char* selectionLabels[kNsel] = {
4949
"kIsTriggerTVX",
5050
"kIsINT1",
5151
"kNoITSROFrameBorder",
52-
"kNoTimeFrameBorder"};
52+
"kNoTimeFrameBorder",
53+
"kNoSameBunchPileup",
54+
"kIsGoodZvtxFT0vsPV",
55+
"kIsVertexITSTPC",
56+
"kIsVertexTOFmatched",
57+
"kIsVertexTRDmatched"};
5358
} // namespace o2::aod::evsel
5459

5560
using namespace o2::aod::evsel;

Common/CCDB/EventSelectionParams.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ enum EventSelectionFlags {
5555
kIsINT1, // SPDGFO >= 1 || V0A || V0C
5656
kNoITSROFrameBorder, // bunch crossing is far from ITS RO Frame border
5757
kNoTimeFrameBorder, // bunch crossing is far from Time Frame borders
58+
kNoSameBunchPileup, // reject collisions in case of pileup with another collision in the same foundBC
59+
kIsGoodZvtxFT0vsPV, // small difference between z-vertex from PV and from FT0
60+
kIsVertexITSTPC, // at least one ITS-TPC track (reject vertices built from ITS-only tracks)
61+
kIsVertexTOFmatched, // at least one of vertex contributors is matched to TOF
62+
kIsVertexTRDmatched, // at least one of vertex contributors is matched to TRD
5863
kNsel // counter
5964
};
6065

Common/TableProducer/eventSelection.cxx

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ struct BcSelectionTask {
4141
Service<o2::ccdb::BasicCCDBManager> ccdb;
4242
HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
4343
Configurable<int> confTriggerBcShift{"triggerBcShift", 999, "set to 294 for apass2/apass3 in LHC22o-t"};
44-
Configurable<int> confITSROFrameBorderMargin{"ITSROFrameBorderMargin", 30, "Number of bcs at the end of ITS RO Frame border"};
44+
Configurable<int> confITSROFrameStartBorderMargin{"ITSROFrameStartBorderMargin", 10, "Number of bcs at the start of ITS RO Frame border"};
45+
Configurable<int> confITSROFrameEndBorderMargin{"ITSROFrameEndBorderMargin", 20, "Number of bcs at the end of ITS RO Frame border"};
4546
Configurable<int> confTimeFrameStartBorderMargin{"TimeFrameStartBorderMargin", 350, "Number of bcs to cut at the start of the Time Frame"};
4647
Configurable<int> confTimeFrameEndBorderMargin{"TimeFrameEndBorderMargin", 4000, "Number of bcs to cut at the end of the Time Frame"};
4748

@@ -339,7 +340,7 @@ struct BcSelectionTask {
339340
// 2bc margin is also introduced at ehe beginning of ITS RO Frame to account for the uncertainty of the roFrameBiasInBC
340341
uint16_t bcInITSROF = (globalBC + 3564 - alppar->roFrameBiasInBC) % alppar->roFrameLengthInBC;
341342
LOGP(debug, "bcInITSROF={}", bcInITSROF);
342-
selection |= bcInITSROF > 1 && bcInITSROF < alppar->roFrameLengthInBC - confITSROFrameBorderMargin ? BIT(kNoITSROFrameBorder) : 0;
343+
selection |= bcInITSROF > confITSROFrameStartBorderMargin && bcInITSROF < alppar->roFrameLengthInBC - confITSROFrameEndBorderMargin ? BIT(kNoITSROFrameBorder) : 0;
343344

344345
// check if bc is far from the Time Frame borders
345346
int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF;
@@ -403,7 +404,7 @@ struct EventSelectionTask {
403404
Produces<aod::EvSels> evsel;
404405
Configurable<std::string> syst{"syst", "PbPb", "pp, pPb, Pbp, PbPb, XeXe"}; // TODO determine from AOD metadata or from CCDB
405406
Configurable<int> muonSelection{"muonSelection", 0, "0 - barrel, 1 - muon selection with pileup cuts, 2 - muon selection without pileup cuts"};
406-
Configurable<int> customDeltaBC{"customDeltaBC", 0, "custom BC delta for FIT-collision matching"};
407+
Configurable<float> maxDiffZvtxFT0vsPV{"maxDiffZvtxFT0vsPV", 1., "maximum difference (in cm) between z-vertex from FT0 and PV"};
407408
Configurable<bool> isMC{"isMC", 0, "0 - data, 1 - MC"};
408409
Partition<aod::Tracks> tracklets = (aod::track::trackType == static_cast<uint8_t>(o2::aod::track::TrackTypeEnum::Run2Tracklet));
409410

@@ -489,16 +490,16 @@ struct EventSelectionTask {
489490
// apply int7-like selections
490491
bool sel7 = 1;
491492
for (int i = 0; i < kNsel; i++) {
492-
sel7 &= applySelection[i] ? TESTBIT(selection, i) : 1;
493+
sel7 = sel7 && (applySelection[i] ? TESTBIT(selection, i) : 1);
493494
}
494495

495496
// TODO introduce array of sel[0]... sel[8] or similar?
496497
bool sel8 = bc.selection_bit(kIsBBT0A) && bc.selection_bit(kIsBBT0C); // TODO apply other cuts for sel8
497498
bool sel1 = bc.selection_bit(kIsINT1);
498-
sel1 &= bc.selection_bit(kNoBGV0A);
499-
sel1 &= bc.selection_bit(kNoBGV0C);
500-
sel1 &= bc.selection_bit(kNoTPCLaserWarmUp);
501-
sel1 &= bc.selection_bit(kNoTPCHVdip);
499+
sel1 = sel1 && bc.selection_bit(kNoBGV0A);
500+
sel1 = sel1 && bc.selection_bit(kNoBGV0C);
501+
sel1 = sel1 && bc.selection_bit(kNoTPCLaserWarmUp);
502+
sel1 = sel1 && bc.selection_bit(kNoTPCHVdip);
502503

503504
// INT1 (SPDFO>0 | V0A | V0C) minimum bias trigger logic used in pp2010 and pp2011
504505
bool isINT1period = bc.runNumber() <= 136377 || (bc.runNumber() >= 144871 && bc.runNumber() <= 159582);
@@ -516,7 +517,7 @@ struct EventSelectionTask {
516517
PROCESS_SWITCH(EventSelectionTask, processRun2, "Process Run2 event selection", true);
517518

518519
Preslice<FullTracksIU> perCollision = aod::track::collisionId;
519-
void processRun3(aod::Collisions const& cols, FullTracksIU const& tracks, BCsWithBcSelsRun3 const& bcs)
520+
void processRun3(aod::Collisions const& cols, FullTracksIU const& tracks, BCsWithBcSelsRun3 const& bcs, aod::FT0s const&)
520521
{
521522
int run = bcs.iteratorAt(0).runNumber();
522523
// extract bc pattern from CCDB for data or anchored MC only
@@ -560,44 +561,50 @@ struct EventSelectionTask {
560561
return;
561562
}
562563

564+
std::vector<int> vFoundBCindex(cols.size(), -1); // indices of found bcs
565+
std::vector<bool> vIsVertexITSTPC(cols.size(), 0); // at least one of vertex contributors is ITS-TPC track
566+
std::vector<bool> vIsVertexTOFmatched(cols.size(), 0); // at least one of vertex contributors is matched to TOF
567+
std::vector<bool> vIsVertexTRDmatched(cols.size(), 0); // at least one of vertex contributors is matched to TRD
568+
std::vector<int> vCollisionsPerBc(bcs.size(), 0); // counter of collisions per found bc for pileup checks
569+
// loop to find nearest bc with FT0 entry -> foundBC index
563570
for (auto& col : cols) {
564571
auto bc = col.bc_as<BCsWithBcSelsRun3>();
565572
int64_t meanBC = bc.globalBC();
566573
const double bcNS = o2::constants::lhc::LHCBunchSpacingNS;
567574
int64_t deltaBC = std::ceil(col.collisionTimeRes() / bcNS * 4);
568575

569576
// count tracks of different types
570-
int nITStracks = 0;
571-
int nTPCtracks = 0;
577+
int nITSTPCtracks = 0;
572578
int nTOFtracks = 0;
573579
int nTRDtracks = 0;
580+
int nTRDnotTOFtracks = 0;
574581
double timeFromTOFtracks = 0;
575582
double timeFromTRDtracks = 0;
576583
auto tracksGrouped = tracks.sliceBy(perCollision, col.globalIndex());
577584
for (auto& track : tracksGrouped) {
578585
if (!track.isPVContributor()) {
579586
continue;
580587
}
581-
nITStracks += track.hasITS();
582-
nTPCtracks += track.hasTPC();
588+
nITSTPCtracks += track.hasITS() && track.hasTPC();
583589
nTOFtracks += track.hasTOF();
584-
nTRDtracks += track.hasTRD() && !track.hasTOF();
590+
nTRDtracks += track.hasTRD();
591+
nTRDnotTOFtracks += track.hasTRD() && !track.hasTOF();
585592
// calculate average time using TOF and TRD tracks
586593
if (track.hasTOF()) {
587594
timeFromTOFtracks += track.trackTime();
588595
} else if (track.hasTRD()) {
589596
timeFromTRDtracks += track.trackTime();
590597
}
591598
}
592-
LOGP(debug, "nContrib={} nITStracks={} nTPCtracks={} nTOFtracks={} nTRDtracks={}", col.numContrib(), nITStracks, nTPCtracks, nTOFtracks, nTRDtracks);
599+
LOGP(debug, "nContrib={} nITSTPCtracks={} nTOFtracks={} nTRDtracks={} nTRDnotTOFtracks={}", col.numContrib(), nITSTPCtracks, nTOFtracks, nTRDtracks, nTRDnotTOFtracks);
593600

594-
if (nTRDtracks > 0) {
595-
meanBC += TMath::Nint(timeFromTRDtracks / nTRDtracks / bcNS); // assign collision bc using TRD-matched tracks
596-
deltaBC = 0; // use precise bc from TRD-matched tracks
601+
if (nTRDnotTOFtracks > 0) {
602+
meanBC += TMath::Nint(timeFromTRDtracks / nTRDnotTOFtracks / bcNS); // assign collision bc using TRD-matched tracks
603+
deltaBC = 0; // use precise bc from TRD-matched tracks
597604
} else if (nTOFtracks > 0) {
598605
meanBC += TMath::FloorNint(timeFromTOFtracks / nTOFtracks / bcNS); // assign collision bc using TOF-matched tracks
599606
deltaBC = 4; // use precise bc from TOF tracks with +/-4 bc margin
600-
} else if (nTPCtracks > 0) {
607+
} else if (nITSTPCtracks > 0) {
601608
deltaBC += 30; // extend deltaBC for collisions built with ITS-TPC tracks only
602609
}
603610

@@ -615,20 +622,38 @@ struct EventSelectionTask {
615622
bc.setCursor(indexClosestTOR);
616623
}
617624
}
618-
619625
int32_t foundBC = bc.globalIndex();
626+
int32_t colIndex = col.globalIndex();
627+
LOGP(debug, "foundBC = {} globalBC = {}", foundBC, bc.globalBC());
628+
vFoundBCindex[colIndex] = foundBC;
629+
vIsVertexITSTPC[colIndex] = nITSTPCtracks > 0;
630+
vIsVertexTOFmatched[colIndex] = nTOFtracks > 0;
631+
vIsVertexTRDmatched[colIndex] = nTRDtracks > 0;
632+
vCollisionsPerBc[foundBC]++;
633+
}
634+
635+
for (auto& col : cols) {
636+
int32_t colIndex = col.globalIndex();
637+
int32_t foundBC = vFoundBCindex[colIndex];
638+
auto bc = bcs.iteratorAt(foundBC);
620639
int32_t foundFT0 = bc.foundFT0Id();
621640
int32_t foundFV0 = bc.foundFV0Id();
622641
int32_t foundFDD = bc.foundFDDId();
623642
int32_t foundZDC = bc.foundZDCId();
624643

625-
LOGP(debug, "foundFT0 = {} globalBC = {}", foundFT0, bc.globalBC());
644+
// compare zVtx from FT0 and from PV
645+
bool isGoodZvtxFT0vsPV = bc.has_foundFT0() ? fabs(bc.foundFT0().posZ() - col.posZ()) < maxDiffZvtxFT0vsPV : 0;
626646

627647
// copy alias decisions from bcsel table
628648
uint32_t alias = bc.alias_raw();
629649

630650
// copy selection decisions from bcsel table
631651
uint64_t selection = bc.selection_raw();
652+
selection |= vCollisionsPerBc[foundBC] <= 1 ? BIT(kNoSameBunchPileup) : 0;
653+
selection |= vIsVertexITSTPC[colIndex] ? BIT(kIsVertexITSTPC) : 0;
654+
selection |= vIsVertexTOFmatched[colIndex] ? BIT(kIsVertexTOFmatched) : 0;
655+
selection |= vIsVertexTRDmatched[colIndex] ? BIT(kIsVertexTRDmatched) : 0;
656+
selection |= isGoodZvtxFT0vsPV ? BIT(kIsGoodZvtxFT0vsPV) : 0;
632657

633658
// apply int7-like selections
634659
bool sel7 = 0;

EventFiltering/PWGHF/HFFilter.cxx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ struct HfFilter { // Main struct for HF triggers
8888

8989
// parameters for V0 + charm triggers
9090
Configurable<LabeledArray<float>> cutsGammaK0sLambda{"cutsGammaK0sLambda", {cutsV0s[0], 1, 6, labelsEmpty, labelsColumnsV0s}, "Selections for V0s (gamma, K0s, Lambda) for D+V0 triggers"};
91-
Configurable<LabeledArray<float>> cutsPtDeltaMassCharmReso{"cutsPtDeltaMassCharmReso", {cutsCharmReso[0], 3, 9, labelsRowsDeltaMassCharmReso, labelsColumnsDeltaMassCharmReso}, "pt (GeV/c) and invariant-mass delta (GeV/c2) for charm hadron resonances"};
91+
Configurable<LabeledArray<float>> cutsPtDeltaMassCharmReso{"cutsPtDeltaMassCharmReso", {cutsCharmReso[0], 3, 11, labelsRowsDeltaMassCharmReso, labelsColumnsDeltaMassCharmReso}, "pt (GeV/c) and invariant-mass delta (GeV/c2) for charm hadron resonances"};
9292
Configurable<bool> keepAlsoWrongDmesLambdaPairs{"keepAlsoWrongDmesLambdaPairs", true, "flat go keep also wrong sign D+Lambda pairs"};
9393

9494
// parameters for charm baryons to Xi bachelor
@@ -198,7 +198,7 @@ struct HfFilter { // Main struct for HF triggers
198198
helper.setMassResolParametrisation(paramCharmMassShape);
199199
helper.setNumSigmaForDeltaMassCharmHadCut(numSigmaDeltaMassCharmHad);
200200
helper.setPtRangeSoftPiSigmaC(ptCuts->get(0u, 4u), ptCuts->get(1u, 4u));
201-
helper.setPtDeltaMassRangeSigmaC(cutsPtDeltaMassCharmReso->get(0u, 6u), cutsPtDeltaMassCharmReso->get(1u, 6u), cutsPtDeltaMassCharmReso->get(0u, 7u), cutsPtDeltaMassCharmReso->get(1u, 7u), cutsPtDeltaMassCharmReso->get(2u, 6u), cutsPtDeltaMassCharmReso->get(2u, 7u));
201+
helper.setPtDeltaMassRangeSigmaC(cutsPtDeltaMassCharmReso->get(0u, 6u), cutsPtDeltaMassCharmReso->get(1u, 6u), cutsPtDeltaMassCharmReso->get(0u, 7u), cutsPtDeltaMassCharmReso->get(1u, 7u), cutsPtDeltaMassCharmReso->get(0u, 8u), cutsPtDeltaMassCharmReso->get(1u, 8u), cutsPtDeltaMassCharmReso->get(0u, 9u), cutsPtDeltaMassCharmReso->get(1u, 9u), cutsPtDeltaMassCharmReso->get(2u, 6u), cutsPtDeltaMassCharmReso->get(2u, 7u), cutsPtDeltaMassCharmReso->get(2u, 8u), cutsPtDeltaMassCharmReso->get(2u, 9u));
202202
helper.setPtRangeSoftKaonXicResoToSigmaC(ptCuts->get(0u, 5u), ptCuts->get(1u, 5u));
203203

204204
hProcessedEvents = registry.add<TH1>("fProcessedEvents", "HF - event filtered;;counts", HistType::kTH1F, {{kNtriggersHF + 2, -0.5, +kNtriggersHF + 1.5}});
@@ -987,7 +987,7 @@ struct HfFilter { // Main struct for HF triggers
987987
// check the mass of the SigmaC++ candidate
988988
auto pVecSigmaC = RecoDecay::pVec(pVecFirst, pVecSecond, pVecThird, pVecSoftPi);
989989
auto ptSigmaC = RecoDecay::pt(pVecSigmaC);
990-
int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2], hMassVsPtC[kNCharmParticles + 9], activateQA);
990+
int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange<2>(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2], hMassVsPtC[kNCharmParticles + 9], activateQA);
991991
if (whichSigmaC > 0) {
992992
/// let's build a candidate SigmaC++K- pair
993993
/// and keep it only if:
@@ -1003,7 +1003,7 @@ struct HfFilter { // Main struct for HF triggers
10031003
float massSigmaCPKPi{-999.}, massSigmaCPiKP{-999.}, deltaMassXicResoPKPi{-999.}, deltaMassXicResoPiKP{-999.};
10041004
float ptSigmaCKaon = RecoDecay::pt(pVecSigmaC, pVecFourth);
10051005

1006-
if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get(2u, 8u)) {
1006+
if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get(2u, 10u)) {
10071007
if (TESTBIT(whichSigmaC, 0)) {
10081008
massSigmaCPKPi = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massProton, massKa, massPi, massPi});
10091009
deltaMassXicResoPKPi = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massProton, massKa, massPi, massPi, massKa}) - massSigmaCPKPi;
@@ -1012,8 +1012,8 @@ struct HfFilter { // Main struct for HF triggers
10121012
massSigmaCPiKP = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massPi, massKa, massProton, massPi});
10131013
deltaMassXicResoPiKP = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecFourth}, std::array{massPi, massKa, massProton, massPi, massKa}) - massSigmaCPiKP;
10141014
}
1015-
bool isPKPiOk = (cutsPtDeltaMassCharmReso->get(0u, 8u) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get(1u, 8u));
1016-
bool isPiKPOk = (cutsPtDeltaMassCharmReso->get(0u, 8u) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get(1u, 8u));
1015+
bool isPKPiOk = (cutsPtDeltaMassCharmReso->get(0u, 10u) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get(1u, 10u));
1016+
bool isPiKPOk = (cutsPtDeltaMassCharmReso->get(0u, 10u) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get(1u, 10u));
10171017
if (isPKPiOk || isPiKPOk) {
10181018
/// This is a good SigmaC++K- event
10191019
/// Let's flag it together with SigmaC0K0s
@@ -1196,7 +1196,7 @@ struct HfFilter { // Main struct for HF triggers
11961196
// check the mass of the SigmaC0 candidate
11971197
auto pVecSigmaC = RecoDecay::pVec(pVecFirst, pVecSecond, pVecThird, pVecSoftPi);
11981198
auto ptSigmaC = RecoDecay::pt(pVecSigmaC);
1199-
int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2], hMassVsPtC[kNCharmParticles + 10], activateQA);
1199+
int8_t whichSigmaC = helper.isSelectedSigmaCInDeltaMassRange<0>(pVecFirst, pVecThird, pVecSecond, pVecSoftPi, ptSigmaC, is3Prong[2], hMassVsPtC[kNCharmParticles + 10], activateQA);
12001200
if (whichSigmaC > 0) {
12011201
/// let's build a candidate SigmaC0K0s pair
12021202
/// and keep it only if it is in the correct mass range
@@ -1205,7 +1205,7 @@ struct HfFilter { // Main struct for HF triggers
12051205
std::array<float, 3> pVecPiPosK0s = {posTrack.px(), posTrack.py(), posTrack.pz()};
12061206
std::array<float, 3> pVecPiNegK0s = {negTrack.px(), negTrack.py(), negTrack.pz()};
12071207
float ptSigmaCKaon = RecoDecay::pt(pVecSigmaC, pVecPiPosK0s, pVecPiNegK0s);
1208-
if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get(2u, 8u)) {
1208+
if (ptSigmaCKaon > cutsPtDeltaMassCharmReso->get(2u, 10u)) {
12091209
if (TESTBIT(whichSigmaC, 0)) {
12101210
massSigmaCPKPi = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi}, std::array{massProton, massKa, massPi, massPi});
12111211
deltaMassXicResoPKPi = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecPiPosK0s, pVecPiNegK0s}, std::array{massProton, massKa, massPi, massPi, massPi, massPi}) - massSigmaCPKPi;
@@ -1215,8 +1215,8 @@ struct HfFilter { // Main struct for HF triggers
12151215
deltaMassXicResoPiKP = RecoDecay::m(std::array{pVecFirst, pVecSecond, pVecThird, pVecSoftPi, pVecPiPosK0s, pVecPiNegK0s}, std::array{massPi, massKa, massProton, massPi, massPi, massPi}) - massSigmaCPiKP;
12161216
}
12171217

1218-
bool isPKPiOk = (cutsPtDeltaMassCharmReso->get(0u, 8u) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get(1u, 8u));
1219-
bool isPiKPOk = (cutsPtDeltaMassCharmReso->get(0u, 8u) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get(1u, 8u));
1218+
bool isPKPiOk = (cutsPtDeltaMassCharmReso->get(0u, 10u) < deltaMassXicResoPKPi && deltaMassXicResoPKPi < cutsPtDeltaMassCharmReso->get(1u, 10u));
1219+
bool isPiKPOk = (cutsPtDeltaMassCharmReso->get(0u, 10u) < deltaMassXicResoPiKP && deltaMassXicResoPiKP < cutsPtDeltaMassCharmReso->get(1u, 10u));
12201220
if (isPKPiOk || isPiKPOk) {
12211221
/// This is a good SigmaC0K0s event
12221222
keepEvent[kV0Charm3P] = true;

0 commit comments

Comments
 (0)