Skip to content

Commit 47423dc

Browse files
authored
Add files via upload
1 parent 762c8ca commit 47423dc

1 file changed

Lines changed: 98 additions & 51 deletions

File tree

PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx

Lines changed: 98 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,10 @@ struct FlowGfwOmegaXi {
110110
std::string prefix = "v0BuilderOpts";
111111
// topological cut for V0
112112
O2_DEFINE_CONFIGURABLE(cfgv0_radius, float, 5.0f, "minimum decay radius")
113+
O2_DEFINE_CONFIGURABLE(cfgv0_radiusmax, float, 100.0f, "maximum decay radius")
113114
O2_DEFINE_CONFIGURABLE(cfgv0_v0cospa, float, 0.995f, "minimum cosine of pointing angle")
114-
O2_DEFINE_CONFIGURABLE(cfgv0_dcadautopv, float, 0.1f, "minimum daughter DCA to PV")
115+
O2_DEFINE_CONFIGURABLE(cfgv0_dcadaupitopv, float, 0.01f, "minimum daughter pion DCA to PV")
116+
O2_DEFINE_CONFIGURABLE(cfgv0_dcadauprtopv, float, 0.1f, "minimum daughter proton DCA to PV")
115117
O2_DEFINE_CONFIGURABLE(cfgv0_dcav0dau, float, 0.5f, "maximum DCA among V0 daughters")
116118
O2_DEFINE_CONFIGURABLE(cfgv0_mk0swindow, float, 0.1f, "Invariant mass window of K0s")
117119
O2_DEFINE_CONFIGURABLE(cfgv0_mlambdawindow, float, 0.04f, "Invariant mass window of lambda")
@@ -198,6 +200,7 @@ struct FlowGfwOmegaXi {
198200
O2_DEFINE_CONFIGURABLE(cfgLocDenParaLambda, std::vector<double>, (std::vector<double>{-0.000510948, -4.4846, -0.000460629, -4.14465, -0.000433729, -3.94173, -0.000412751, -3.81839, -0.000411211, -3.72502, -0.000401511, -3.68426, -0.000407461, -3.67005, -0.000379371, -3.71153, -0.000392828, -3.73214, -0.000403996, -3.80717, -0.000403376, -3.90917, -0.000354624, -4.34629, -0.000477606, -4.66307, -0.000541139, -4.61364}), "Local density efficiency function parameter for Lambda, exp(Ax + B)")
199201
O2_DEFINE_CONFIGURABLE(cfgRunNumbers, std::vector<int>, (std::vector<int>{544095, 544098, 544116, 544121, 544122, 544123, 544124}), "Preconfigured run numbers")
200202
O2_DEFINE_CONFIGURABLE(cfgEtagapEdge, std::vector<double>, (std::vector<double>{-0.8, -0.4, 0.4, 0.8}), "sub-event eta range A: ([0], [1]) and C: ([2], [3])")
203+
O2_DEFINE_CONFIGURABLE(cfgEtagapEdgeREF, std::vector<double>, (std::vector<double>{-0.8, -0.4, 0.4, 0.8}), "sub-event eta range for REF. A: ([0], [1]) and C: ([2], [3])")
201204
// switch
202205
O2_DEFINE_CONFIGURABLE(cfgDoAccEffCorr, bool, false, "do acc and eff corr")
203206
O2_DEFINE_CONFIGURABLE(cfgDoLocDenCorr, bool, false, "do local density corr")
@@ -259,7 +262,8 @@ struct FlowGfwOmegaXi {
259262
std::vector<float> cfgMultPVCutPara;
260263
std::vector<int> cfgmassbins;
261264
std::vector<int> runNumbers;
262-
std::vector<double> EtagapEdge;
265+
std::vector<double> etagapEdge;
266+
std::vector<double> etagapEdgeREF;
263267
std::map<int, std::vector<std::shared_ptr<TH1>>> th1sList;
264268
std::map<int, std::vector<std::shared_ptr<TH3>>> th3sList;
265269
enum OutputTH1Names {
@@ -332,7 +336,8 @@ struct FlowGfwOmegaXi {
332336
cfgNSigma = cfgNSigmapid;
333337
cfgmassbins = cfgMassBins;
334338
cfgMultPVCutPara = evtSeleOpts.cfgMultPVCut;
335-
EtagapEdge = cfgEtagapEdge;
339+
etagapEdge = cfgEtagapEdge;
340+
etagapEdgeREF = cfgEtagapEdgeREF;
336341

337342
// Set the pt, mult and phi Axis;
338343
o2::framework::AxisSpec axisPt = cfgaxisPt;
@@ -367,6 +372,11 @@ struct FlowGfwOmegaXi {
367372

368373
fLambdaMass = new TAxis(cfgmassbins[1], 1.08, 1.16);
369374

375+
AxisSpec axisOmegaMass = {80, 1.63f, 1.71f, "Inv. Mass (GeV)"};
376+
AxisSpec axisXiMass = {80, 1.29f, 1.37f, "Inv. Mass (GeV)"};
377+
AxisSpec axisK0sMass = {400, 0.4f, 0.6f, "Inv. Mass (GeV)"};
378+
AxisSpec axisLambdaMass = {160, 1.08f, 1.16f, "Inv. Mass (GeV)"};
379+
370380
// Add some output objects to the histogram registry
371381
registry.add("hPhi", "", {HistType::kTH1D, {cfgaxisPhi}});
372382
registry.add("hPhicorr", "", {HistType::kTH1D, {cfgaxisPhi}});
@@ -418,6 +428,10 @@ struct FlowGfwOmegaXi {
418428
registry.get<THnSparse>(HIST("correction/hRunNumberPhiEtaVertexXi"))->GetAxis(0)->SetBinLabel(idx, std::to_string(runNumbers[idx - 1]).c_str());
419429
registry.get<THnSparse>(HIST("correction/hRunNumberPhiEtaVertexOmega"))->GetAxis(0)->SetBinLabel(idx, std::to_string(runNumbers[idx - 1]).c_str());
420430
}
431+
registry.add("correction/hPhiEtaInvmassK0s", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisK0sMass}});
432+
registry.add("correction/hPhiEtaInvmassLambda", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisLambdaMass}});
433+
registry.add("correction/hPhiEtaInvmassXi", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisXiMass}});
434+
registry.add("correction/hPhiEtaInvmassOmega", "", {HistType::kTH3D, {cfgaxisPhi, cfgaxisEta, axisOmegaMass}});
421435
}
422436

423437
registry.add("hEventCount", "", {HistType::kTH1D, {{14, 0, 14}}});
@@ -591,10 +605,6 @@ struct FlowGfwOmegaXi {
591605
registry.add("MC/Lambdac22dptMC", ";pt ; C_{2}{2} ", {HistType::kTProfile2D, {cfgaxisPtLambda, axisMultiplicity}});
592606
}
593607
// InvMass(GeV) of casc and v0
594-
AxisSpec axisOmegaMass = {80, 1.63f, 1.71f, "Inv. Mass (GeV)"};
595-
AxisSpec axisXiMass = {80, 1.29f, 1.37f, "Inv. Mass (GeV)"};
596-
AxisSpec axisK0sMass = {400, 0.4f, 0.6f, "Inv. Mass (GeV)"};
597-
AxisSpec axisLambdaMass = {160, 1.08f, 1.16f, "Inv. Mass (GeV)"};
598608
if (cfgOutputCasc) {
599609
registry.add("InvMassXi_all", "", {HistType::kTHnSparseF, {cfgaxisPtXi, axisXiMass, cfgaxisEta, axisMultiplicity}});
600610
registry.add("InvMassOmega_all", "", {HistType::kTHnSparseF, {cfgaxisPtOmega, axisOmegaMass, cfgaxisEta, axisMultiplicity}});
@@ -631,46 +641,46 @@ struct FlowGfwOmegaXi {
631641
}
632642

633643
// Data
634-
fGFW->AddRegion("reffull", EtagapEdge[0], EtagapEdge[3], 1, 1); // ("name", etamin, etamax, ptbinnum, bitmask)eta region -0.8 to 0.8
644+
fGFW->AddRegion("reffull", etagapEdgeREF[0], etagapEdgeREF[3], 1, 1); // ("name", etamin, etamax, ptbinnum, bitmask)eta region -0.8 to 0.8
635645
int nK0sptMassBins = nK0sPtBins * cfgmassbins[0];
636646
int nLambdaptMassBins = nLambdaPtBins * cfgmassbins[1];
637647
int nXiptMassBins = nXiPtBins * cfgmassbins[2];
638648
int nOmegaptMassBins = nXiPtBins * cfgmassbins[3];
639649

640-
fGFW->AddRegion("refN10", EtagapEdge[0], EtagapEdge[1], 1, 1);
641-
fGFW->AddRegion("refP10", EtagapEdge[2], EtagapEdge[3], 1, 1);
650+
fGFW->AddRegion("refN10", etagapEdgeREF[0], etagapEdgeREF[1], 1, 1);
651+
fGFW->AddRegion("refP10", etagapEdgeREF[2], etagapEdgeREF[3], 1, 1);
642652

643-
fGFW->AddRegion("poiN10dpt", EtagapEdge[0], EtagapEdge[1], nPtBins, 32);
644-
fGFW->AddRegion("poiP10dpt", EtagapEdge[2], EtagapEdge[3], nPtBins, 32);
645-
fGFW->AddRegion("poifulldpt", EtagapEdge[0], EtagapEdge[3], nPtBins, 32);
646-
fGFW->AddRegion("poioldpt", EtagapEdge[0], EtagapEdge[3], nPtBins, 1);
653+
fGFW->AddRegion("poiN10dpt", etagapEdge[0], etagapEdge[1], nPtBins + 1, 32);
654+
fGFW->AddRegion("poiP10dpt", etagapEdge[2], etagapEdge[3], nPtBins + 1, 32);
655+
fGFW->AddRegion("poifulldpt", etagapEdge[0], etagapEdge[3], nPtBins + 1, 32);
656+
fGFW->AddRegion("poioldpt", etagapEdge[0], etagapEdge[3], nPtBins + 1, 1);
647657

648-
fGFW->AddRegion("poiXiPdpt", EtagapEdge[2], EtagapEdge[3], nXiptMassBins, 2);
649-
fGFW->AddRegion("poiXiNdpt", EtagapEdge[0], EtagapEdge[1], nXiptMassBins, 2);
650-
fGFW->AddRegion("poiXifulldpt", EtagapEdge[0], EtagapEdge[3], nXiptMassBins, 2);
658+
fGFW->AddRegion("poiXiPdpt", etagapEdge[2], etagapEdge[3], nXiptMassBins + 1, 2);
659+
fGFW->AddRegion("poiXiNdpt", etagapEdge[0], etagapEdge[1], nXiptMassBins + 1, 2);
660+
fGFW->AddRegion("poiXifulldpt", etagapEdge[0], etagapEdge[3], nXiptMassBins + 1, 2);
651661

652-
fGFW->AddRegion("poiOmegaPdpt", EtagapEdge[2], EtagapEdge[3], nOmegaptMassBins, 4);
653-
fGFW->AddRegion("poiOmegaNdpt", EtagapEdge[0], EtagapEdge[1], nOmegaptMassBins, 4);
654-
fGFW->AddRegion("poiOmegafulldpt", EtagapEdge[0], EtagapEdge[3], nOmegaptMassBins, 4);
662+
fGFW->AddRegion("poiOmegaPdpt", etagapEdge[2], etagapEdge[3], nOmegaptMassBins + 1, 4);
663+
fGFW->AddRegion("poiOmegaNdpt", etagapEdge[0], etagapEdge[1], nOmegaptMassBins + 1, 4);
664+
fGFW->AddRegion("poiOmegafulldpt", etagapEdge[0], etagapEdge[3], nOmegaptMassBins + 1, 4);
655665

656-
fGFW->AddRegion("poiK0sPdpt", EtagapEdge[2], EtagapEdge[3], nK0sptMassBins, 8);
657-
fGFW->AddRegion("poiK0sNdpt", EtagapEdge[0], EtagapEdge[1], nK0sptMassBins, 8);
658-
fGFW->AddRegion("poiK0sfulldpt", EtagapEdge[0], EtagapEdge[3], nK0sptMassBins, 8);
666+
fGFW->AddRegion("poiK0sPdpt", etagapEdge[2], etagapEdge[3], nK0sptMassBins + 1, 8);
667+
fGFW->AddRegion("poiK0sNdpt", etagapEdge[0], etagapEdge[1], nK0sptMassBins + 1, 8);
668+
fGFW->AddRegion("poiK0sfulldpt", etagapEdge[0], etagapEdge[3], nK0sptMassBins + 1, 8);
659669

660-
fGFW->AddRegion("poiLambdaPdpt", EtagapEdge[2], EtagapEdge[3], nLambdaptMassBins, 16);
661-
fGFW->AddRegion("poiLambdaNdpt", EtagapEdge[0], EtagapEdge[1], nLambdaptMassBins, 16);
662-
fGFW->AddRegion("poiLambdafulldpt", EtagapEdge[0], EtagapEdge[3], nLambdaptMassBins, 16);
670+
fGFW->AddRegion("poiLambdaPdpt", etagapEdge[2], etagapEdge[3], nLambdaptMassBins + 1, 16);
671+
fGFW->AddRegion("poiLambdaNdpt", etagapEdge[0], etagapEdge[1], nLambdaptMassBins + 1, 16);
672+
fGFW->AddRegion("poiLambdafulldpt", etagapEdge[0], etagapEdge[3], nLambdaptMassBins + 1, 16);
663673
// MC
664-
fGFW->AddRegion("refN10MC", EtagapEdge[0], EtagapEdge[1], 1, 64);
665-
fGFW->AddRegion("refP10MC", EtagapEdge[2], EtagapEdge[3], 1, 64);
666-
fGFW->AddRegion("poiXiPdptMC", EtagapEdge[2], EtagapEdge[3], nXiptMassBins, 128);
667-
fGFW->AddRegion("poiXiNdptMC", EtagapEdge[0], EtagapEdge[1], nXiptMassBins, 128);
668-
fGFW->AddRegion("poiOmegaPdptMC", EtagapEdge[2], EtagapEdge[3], nOmegaptMassBins, 256);
669-
fGFW->AddRegion("poiOmegaNdptMC", EtagapEdge[0], EtagapEdge[1], nOmegaptMassBins, 256);
670-
fGFW->AddRegion("poiK0sPdptMC", EtagapEdge[2], EtagapEdge[3], nK0sptMassBins, 512);
671-
fGFW->AddRegion("poiK0sNdptMC", EtagapEdge[0], EtagapEdge[1], nK0sptMassBins, 512);
672-
fGFW->AddRegion("poiLambdaPdptMC", EtagapEdge[2], EtagapEdge[3], nLambdaptMassBins, 1024);
673-
fGFW->AddRegion("poiLambdaNdptMC", EtagapEdge[0], EtagapEdge[1], nLambdaptMassBins, 1024);
674+
fGFW->AddRegion("refN10MC", etagapEdgeREF[0], etagapEdgeREF[1], 1, 64);
675+
fGFW->AddRegion("refP10MC", etagapEdgeREF[2], etagapEdgeREF[3], 1, 64);
676+
fGFW->AddRegion("poiXiPdptMC", etagapEdge[2], etagapEdge[3], nXiptMassBins, 128);
677+
fGFW->AddRegion("poiXiNdptMC", etagapEdge[0], etagapEdge[1], nXiptMassBins, 128);
678+
fGFW->AddRegion("poiOmegaPdptMC", etagapEdge[2], etagapEdge[3], nOmegaptMassBins, 256);
679+
fGFW->AddRegion("poiOmegaNdptMC", etagapEdge[0], etagapEdge[1], nOmegaptMassBins, 256);
680+
fGFW->AddRegion("poiK0sPdptMC", etagapEdge[2], etagapEdge[3], nK0sptMassBins, 512);
681+
fGFW->AddRegion("poiK0sNdptMC", etagapEdge[0], etagapEdge[1], nK0sptMassBins, 512);
682+
fGFW->AddRegion("poiLambdaPdptMC", etagapEdge[2], etagapEdge[3], nLambdaptMassBins, 1024);
683+
fGFW->AddRegion("poiLambdaNdptMC", etagapEdge[0], etagapEdge[1], nLambdaptMassBins, 1024);
674684
// pushback
675685
// Data
676686
// v2
@@ -820,9 +830,9 @@ struct FlowGfwOmegaXi {
820830
if (dnx == 0)
821831
return;
822832
val = fGFW->Calculate(corrconf, ptbin - 1, kFALSE).real() / dnx;
823-
if (std::fabs(val) < 1) {
833+
// if (std::fabs(val) < 1) {
824834
registry.fill(tarName, fpt->GetBinCenter(ptbin), cent, val, dnx);
825-
}
835+
// }
826836
return;
827837
}
828838

@@ -865,9 +875,9 @@ struct FlowGfwOmegaXi {
865875
if (dnx == 0)
866876
continue;
867877
val = fGFW->Calculate(corrconf, (ptbin - 1) + ((massbin - 1) * nptbins), kFALSE).real() / dnx;
868-
if (std::fabs(val) < 1) {
878+
// if (std::fabs(val) < 1) {
869879
registry.fill(tarName, fpt->GetBinCenter(ptbin), fMass->GetBinCenter(massbin), cent, val, dnx);
870-
}
880+
// }
871881
}
872882
return;
873883
}
@@ -1085,6 +1095,7 @@ struct FlowGfwOmegaXi {
10851095
if (!collision.sel8())
10861096
return;
10871097
registry.fill(HIST("hEventCount"), 1.5);
1098+
cent = 1;
10881099

10891100
if (!eventSelected(collision, cent, interactionRate))
10901101
return;
@@ -1113,6 +1124,7 @@ struct FlowGfwOmegaXi {
11131124
float wacc = 1;
11141125
float wloc = 1;
11151126
double nch = 0;
1127+
11161128
// fill GFW ref flow
11171129
for (const auto& track : tracks) {
11181130
if (cfgDoAccEffCorr) {
@@ -1127,7 +1139,7 @@ struct FlowGfwOmegaXi {
11271139
registry.fill(HIST("hPt"), track.pt());
11281140
int ptbin = fPtAxis->FindBin(track.pt()) - 1;
11291141
if ((track.pt() > trkQualityOpts.cfgCutPtMin.value) && (track.pt() < trkQualityOpts.cfgCutPtMax.value)) {
1130-
fGFW->Fill(track.eta(), ptbin, track.phi(), wacc * weff, 1); //(eta, ptbin, phi, wacc*weff, bitmask)
1142+
fGFW->Fill(track.eta(), ptbin, track.phi(), wacc * weff, 1); //(eta, ptbin, phi, wacc*weff, bitmask)
11311143
}
11321144
if ((track.pt() > trkQualityOpts.cfgCutPtPOIMin.value) && (track.pt() < trkQualityOpts.cfgCutPtPOIMax.value)) {
11331145
fGFW->Fill(track.eta(), ptbin, track.phi(), wacc * weff, 32);
@@ -1255,27 +1267,40 @@ struct FlowGfwOmegaXi {
12551267
float ctau = 0;
12561268
if (isK0s) {
12571269
ctau = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassK0Short;
1258-
if (ctau < v0BuilderOpts.cfgv0_ctauK0s.value)
1270+
if (ctau > v0BuilderOpts.cfgv0_ctauK0s.value)
12591271
isK0s = false;
1272+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
1273+
continue;
1274+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
1275+
continue;
12601276
}
12611277
if (isLambda || isALambda) {
12621278
ctau = v0.distovertotmom(collision.posX(), collision.posY(), collision.posZ()) * o2::constants::physics::MassLambda0;
1263-
if (ctau < v0BuilderOpts.cfgv0_ctauLambda.value) {
1279+
if (ctau > v0BuilderOpts.cfgv0_ctauLambda.value) {
12641280
isLambda = false;
12651281
isALambda = false;
12661282
}
1283+
if (isLambda) {
1284+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadauprtopv.value)
1285+
continue;
1286+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
1287+
continue;
1288+
} else {
1289+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
1290+
continue;
1291+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadauprtopv.value)
1292+
continue;
1293+
}
12671294
}
12681295
// // topological cut
12691296
if (v0.v0radius() < v0BuilderOpts.cfgv0_radius.value)
12701297
continue;
1298+
if (v0.v0radius() > v0BuilderOpts.cfgv0_radiusmax.value)
1299+
continue;
12711300
if (v0.v0cosPA() < v0BuilderOpts.cfgv0_v0cospa.value)
12721301
continue;
12731302
if (v0.dcaV0daughters() > v0BuilderOpts.cfgv0_dcav0dau.value)
12741303
continue;
1275-
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadautopv.value)
1276-
continue;
1277-
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadautopv.value)
1278-
continue;
12791304
if (isK0s && std::fabs(v0.mLambda() - o2::constants::physics::MassLambda0) < v0BuilderOpts.cfgv0_compmassrejLambda.value)
12801305
isK0s = false;
12811306
if (isK0s && std::fabs(v0.mAntiLambda() - o2::constants::physics::MassLambda0) < v0BuilderOpts.cfgv0_compmassrejLambda.value)
@@ -1340,6 +1365,7 @@ struct FlowGfwOmegaXi {
13401365
th1sList[runNumber][hPhiK0scorr]->Fill(v0.phi(), wacc);
13411366
}
13421367
registry.fill(HIST("correction/hRunNumberPhiEtaVertexK0s"), matchedPosition, v0.phi(), v0.eta(), vtxz);
1368+
registry.fill(HIST("correction/hPhiEtaInvmassK0s"), v0.phi(), v0.eta(), v0.mK0Short());
13431369
}
13441370
}
13451371
if (isLambda || isALambda) {
@@ -1373,6 +1399,10 @@ struct FlowGfwOmegaXi {
13731399
th1sList[runNumber][hPhiLambdacorr]->Fill(v0.phi(), wacc);
13741400
}
13751401
registry.fill(HIST("correction/hRunNumberPhiEtaVertexLambda"), matchedPosition, v0.phi(), v0.eta(), vtxz);
1402+
if (isLambda)
1403+
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), matchedPosition, v0.phi(), v0.eta(), v0.mLambda());
1404+
if (isALambda)
1405+
registry.fill(HIST("correction/hPhiEtaInvmassLambda"), matchedPosition, v0.phi(), v0.eta(), v0.mAntiLambda());
13761406
}
13771407
}
13781408
}
@@ -1607,6 +1637,7 @@ struct FlowGfwOmegaXi {
16071637
th1sList[runNumber][hPhiOmegacorr]->Fill(casc.phi(), wacc);
16081638
}
16091639
registry.fill(HIST("correction/hRunNumberPhiEtaVertexOmega"), matchedPosition, casc.phi(), casc.eta(), vtxz);
1640+
registry.fill(HIST("correction/hPhiEtaInvmassOmega"), casc.phi(), casc.eta(), casc.mOmega());
16101641
}
16111642
}
16121643
if (isXi) {
@@ -1636,6 +1667,7 @@ struct FlowGfwOmegaXi {
16361667
th1sList[runNumber][hPhiXicorr]->Fill(casc.phi(), wacc);
16371668
}
16381669
registry.fill(HIST("correction/hRunNumberPhiEtaVertexXi"), matchedPosition, casc.phi(), casc.eta(), vtxz);
1670+
registry.fill(HIST("correction/hPhiEtaInvmassXi"), casc.phi(), casc.eta(), casc.mXi());
16391671
}
16401672
}
16411673
}
@@ -2163,10 +2195,25 @@ struct FlowGfwOmegaXi {
21632195
continue;
21642196
if (v0.dcaV0daughters() > v0BuilderOpts.cfgv0_dcav0dau.value)
21652197
continue;
2166-
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadautopv.value)
2167-
continue;
2168-
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadautopv.value)
2169-
continue;
2198+
if (pdgCode == kK0Short) {
2199+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
2200+
continue;
2201+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
2202+
continue;
2203+
}
2204+
if (pdgCode == kLambda0 || pdgCode == kLambda0Bar) {
2205+
if (pdgCode == kLambda0) {
2206+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadauprtopv.value)
2207+
continue;
2208+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
2209+
continue;
2210+
} else {
2211+
if (std::fabs(v0.dcapostopv()) < v0BuilderOpts.cfgv0_dcadaupitopv.value)
2212+
continue;
2213+
if (std::fabs(v0.dcanegtopv()) < v0BuilderOpts.cfgv0_dcadauprtopv.value)
2214+
continue;
2215+
}
2216+
}
21702217
// fill QA after cut
21712218
if (cfgOutputQA) {
21722219
if (pdgCode == kK0Short) {

0 commit comments

Comments
 (0)