Skip to content

Commit 591ffa8

Browse files
authored
[PWGCF] Add EvSel and QA histos in cascDiHadronCorr.cxx- #18580 (#18582)
1 parent 5c9b8d0 commit 591ffa8

1 file changed

Lines changed: 198 additions & 4 deletions

File tree

‎PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx‎

Lines changed: 198 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct CascDiHadronCorr {
8383
O2_DEFINE_CONFIGURABLE(cfgCutCentMin, float, 0.0f, "Minimum centrality for collision")
8484
O2_DEFINE_CONFIGURABLE(cfgCutCentMax, float, 100.0f, "Maximum centrality for collision")
8585
O2_DEFINE_CONFIGURABLE(cfgMixEventNumMin, int, 1, "Minimum number of events to mix")
86-
O2_DEFINE_CONFIGURABLE(cfgRadiusLow, float, 0.8, "Low radius for merging cut")
86+
O2_DEFINE_CONFIGURABLE(cfgRadiusLow, double, 0.8, "Low radius for merging cut")
8787
O2_DEFINE_CONFIGURABLE(cfgRadiusHigh, float, 2.5, "High radius for merging cut")
8888
O2_DEFINE_CONFIGURABLE(cfgSampleSize, double, 10, "Sample size for mixed event")
8989
O2_DEFINE_CONFIGURABLE(cfgCentEstimator, int, 0, "0:FT0C; 1:FT0CVariant1; 2:FT0M; 3:FT0A")
@@ -104,6 +104,7 @@ struct CascDiHadronCorr {
104104
O2_DEFINE_CONFIGURABLE(cfgNSigmapid, std::vector<float>, (std::vector<float>{3, 3, 3}), "tpc NSigma for Pion Proton Kaon")
105105
O2_DEFINE_CONFIGURABLE(cfgOutputXi, bool, true, "Output Xi-charged correlation")
106106
O2_DEFINE_CONFIGURABLE(cfgOutputOmega, bool, false, "Output Omega-charged correlation")
107+
O2_DEFINE_CONFIGURABLE(cfgOutputCascQA, bool, true, "Output QA plots for cascades and daughters")
107108
struct : ConfigurableGroup {
108109
std::string prefix = "cfgEvSel";
109110
O2_DEFINE_CONFIGURABLE(cfgUseAdditionalEventCut, bool, false, "Use additional event cut on mult correlations")
@@ -118,6 +119,8 @@ struct CascDiHadronCorr {
118119
O2_DEFINE_CONFIGURABLE(cfgEvSelMultCorrelation, bool, true, "Multiplicity correlation cut")
119120
O2_DEFINE_CONFIGURABLE(cfgEvSelV0AT0ACut, bool, true, "V0A T0A 5 sigma cut")
120121
O2_DEFINE_CONFIGURABLE(cfgEvSelOccupancy, bool, true, "Occupancy cut")
122+
O2_DEFINE_CONFIGURABLE(cfgEvSelHaveXi, bool, false, "reject the collisions without any Xi reconstracted")
123+
O2_DEFINE_CONFIGURABLE(cfgEvSelHaveOmega, bool, false, "reject the collisions without any Xi reconstracted")
121124
} cfgEvSel;
122125
struct : ConfigurableGroup {
123126
O2_DEFINE_CONFIGURABLE(cfgMultCentHighCutFunction, std::string, "[0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x + 10.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)", "Functional for multiplicity correlation cut");
@@ -174,6 +177,7 @@ struct CascDiHadronCorr {
174177
O2_DEFINE_CONFIGURABLE(cfgMinITSNCls, int, -1, "check minimum number of ITS clusters")
175178
O2_DEFINE_CONFIGURABLE(cfgTPCNCls, int, 0, "check minimum number of TPC hits")
176179
O2_DEFINE_CONFIGURABLE(cfgTPCCrossedRows, int, 0, "check minimum number of TPC crossed rows")
180+
O2_DEFINE_CONFIGURABLE(cfgCutChi2prTPCcls, float, 2.5, "max chi2 per TPC clusters for cascades daughters")
177181
} trkQualityOpts;
178182

179183
SliceCache cache;
@@ -404,6 +408,56 @@ struct CascDiHadronCorr {
404408
registry.add("MCRecPri", "MCRecPri", {HistType::kTH1D, {axisPtEfficiency}});
405409
}
406410

411+
if (cfgOutputCascQA) {
412+
registry.add("QAhisto/hqaTPCNClsbefore", "", {HistType::kTH1D, {{100, 0, 200}}});
413+
registry.add("QAhisto/hqaTPCCrossedRowsbefore", "", {HistType::kTH1D, {{100, 0, 200}}});
414+
registry.add("QAhisto/hqaChi2prTPCclsbefore", "", {HistType::kTH1D, {{100, 0, 10}}});
415+
registry.add("QAhisto/hqaTPCNClsafter", "", {HistType::kTH1D, {{100, 0, 200}}});
416+
registry.add("QAhisto/hqaTPCCrossedRowsafter", "", {HistType::kTH1D, {{100, 0, 200}}});
417+
registry.add("QAhisto/hqaChi2prTPCclsafter", "", {HistType::kTH1D, {{100, 0, 10}}});
418+
419+
registry.add("QAhisto/Xi/hqaCascRadiusbefore", "", {HistType::kTH1D, {{1000, 0, 100}}});
420+
registry.add("QAhisto/Xi/hqaCascRadiusafter", "", {HistType::kTH1D, {{1000, 0, 100}}});
421+
registry.add("QAhisto/Xi/hqaCasccosPAbefore", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
422+
registry.add("QAhisto/Xi/hqaCasccosPAafter", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
423+
registry.add("QAhisto/Xi/hqaCascV0cosPAbefore", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
424+
registry.add("QAhisto/Xi/hqaCascV0cosPAafter", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
425+
registry.add("QAhisto/Xi/hqadcaCascV0toPVbefore", "", {HistType::kTH1D, {{1000, 0, 10}}});
426+
registry.add("QAhisto/Xi/hqadcaCascV0toPVafter", "", {HistType::kTH1D, {{1000, 0, 10}}});
427+
registry.add("QAhisto/Xi/hqadcaCascBachtoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
428+
registry.add("QAhisto/Xi/hqadcaCascBachtoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
429+
registry.add("QAhisto/Xi/hqadcaCascLaprtoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
430+
registry.add("QAhisto/Xi/hqadcaCascLaprtoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
431+
registry.add("QAhisto/Xi/hqadcaCascLapitoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
432+
registry.add("QAhisto/Xi/hqadcaCascLapitoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
433+
registry.add("QAhisto/Xi/hqadcaCascdaubefore", "", {HistType::kTH1D, {{100, 0, 1}}});
434+
registry.add("QAhisto/Xi/hqadcaCascdauafter", "", {HistType::kTH1D, {{100, 0, 1}}});
435+
registry.add("QAhisto/Xi/hqadcaCascV0daubefore", "", {HistType::kTH1D, {{100, 0, 1}}});
436+
registry.add("QAhisto/Xi/hqadcaCascV0dauafter", "", {HistType::kTH1D, {{100, 0, 1}}});
437+
registry.add("QAhisto/Xi/hqaLambdaMassbefore", "", {HistType::kTH1D, {{160, 1.08, 1.16}}});
438+
registry.add("QAhisto/Xi/hqaLambdaMassafter", "", {HistType::kTH1D, {{160, 1.08, 1.16}}});
439+
440+
registry.add("QAhisto/Omega/hqaCascRadiusbefore", "", {HistType::kTH1D, {{1000, 0, 100}}});
441+
registry.add("QAhisto/Omega/hqaCascRadiusafter", "", {HistType::kTH1D, {{1000, 0, 100}}});
442+
registry.add("QAhisto/Omega/hqaCasccosPAbefore", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
443+
registry.add("QAhisto/Omega/hqaCasccosPAafter", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
444+
registry.add("QAhisto/Omega/hqaCascV0cosPAbefore", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
445+
registry.add("QAhisto/Omega/hqaCascV0cosPAafter", "", {HistType::kTH1D, {{1000, 0.95, 1}}});
446+
registry.add("QAhisto/Omega/hqadcaCascV0toPVbefore", "", {HistType::kTH1D, {{1000, 0, 10}}});
447+
registry.add("QAhisto/Omega/hqadcaCascV0toPVafter", "", {HistType::kTH1D, {{1000, 0, 10}}});
448+
registry.add("QAhisto/Omega/hqadcaCascBachtoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
449+
registry.add("QAhisto/Omega/hqadcaCascBachtoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
450+
registry.add("QAhisto/Omega/hqadcaCascLaprtoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
451+
registry.add("QAhisto/Omega/hqadcaCascLaprtoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
452+
registry.add("QAhisto/Omega/hqadcaCascLapitoPVbefore", "", {HistType::kTH1D, {{1000, -10, 10}}});
453+
registry.add("QAhisto/Omega/hqadcaCascLapitoPVafter", "", {HistType::kTH1D, {{1000, -10, 10}}});
454+
registry.add("QAhisto/Omega/hqadcaCascdaubefore", "", {HistType::kTH1D, {{100, 0, 1}}});
455+
registry.add("QAhisto/Omega/hqadcaCascdauafter", "", {HistType::kTH1D, {{100, 0, 1}}});
456+
registry.add("QAhisto/Omega/hqadcaCascV0daubefore", "", {HistType::kTH1D, {{100, 0, 1}}});
457+
registry.add("QAhisto/Omega/hqadcaCascV0dauafter", "", {HistType::kTH1D, {{100, 0, 1}}});
458+
registry.add("QAhisto/Omega/hqaLambdaMassbefore", "", {HistType::kTH1D, {{160, 1.08, 1.16}}});
459+
registry.add("QAhisto/Omega/hqaLambdaMassafter", "", {HistType::kTH1D, {{160, 1.08, 1.16}}});
460+
}
407461
LOGF(info, "Initializing correlation container");
408462
std::vector<AxisSpec> corrAxis = {{axisSample, "Sample"},
409463
{axisVertex, "z-vtx (cm)"},
@@ -512,6 +566,18 @@ struct CascDiHadronCorr {
512566
if (std::fabs(negdau.eta()) > trkQualityOpts.cfgCutEta.value)
513567
return false;
514568

569+
if (cfgOutputCascQA) {
570+
registry.fill(HIST("QAhisto/hqaTPCNClsbefore"), bachelor.tpcNClsFound());
571+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsbefore"), bachelor.tpcNClsCrossedRows());
572+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsbefore"), bachelor.tpcChi2NCl());
573+
registry.fill(HIST("QAhisto/hqaTPCNClsbefore"), posdau.tpcNClsFound());
574+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsbefore"), posdau.tpcNClsCrossedRows());
575+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsbefore"), posdau.tpcChi2NCl());
576+
registry.fill(HIST("QAhisto/hqaTPCNClsbefore"), negdau.tpcNClsFound());
577+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsbefore"), negdau.tpcNClsCrossedRows());
578+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsbefore"), negdau.tpcChi2NCl());
579+
}
580+
515581
// track quality check
516582
if (bachelor.itsNCls() <= trkQualityOpts.cfgMinITSNCls.value)
517583
return false;
@@ -538,8 +604,63 @@ struct CascDiHadronCorr {
538604
return false;
539605
if (negdau.tpcNClsCrossedRows() <= trkQualityOpts.cfgTPCCrossedRows.value)
540606
return false;
607+
if (bachelor.tpcChi2NCl() >= trkQualityOpts.cfgCutChi2prTPCcls.value)
608+
return false;
609+
if (posdau.tpcChi2NCl() >= trkQualityOpts.cfgCutChi2prTPCcls.value)
610+
return false;
611+
if (negdau.tpcChi2NCl() >= trkQualityOpts.cfgCutChi2prTPCcls.value)
612+
return false;
541613

542-
if (cfgOutputXi) {
614+
if (cfgOutputCascQA) {
615+
registry.fill(HIST("QAhisto/hqaTPCNClsafter"), bachelor.tpcNClsFound());
616+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsafter"), bachelor.tpcNClsCrossedRows());
617+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsafter"), bachelor.tpcChi2NCl());
618+
registry.fill(HIST("QAhisto/hqaTPCNClsafter"), posdau.tpcNClsFound());
619+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsafter"), posdau.tpcNClsCrossedRows());
620+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsafter"), posdau.tpcChi2NCl());
621+
registry.fill(HIST("QAhisto/hqaTPCNClsafter"), negdau.tpcNClsFound());
622+
registry.fill(HIST("QAhisto/hqaTPCCrossedRowsafter"), negdau.tpcNClsCrossedRows());
623+
registry.fill(HIST("QAhisto/hqaChi2prTPCclsafter"), negdau.tpcChi2NCl());
624+
}
625+
626+
if (cfgOutputCascQA) {
627+
if (cfgOutputXi) {
628+
registry.fill(HIST("QAhisto/Xi/hqaCascRadiusbefore"), casc.cascradius());
629+
registry.fill(HIST("QAhisto/Xi/hqaCasccosPAbefore"), casc.casccosPA(posX, posY, posZ));
630+
registry.fill(HIST("QAhisto/Xi/hqaCascV0cosPAbefore"), casc.v0cosPA(posX, posY, posZ));
631+
registry.fill(HIST("QAhisto/Xi/hqadcaCascV0toPVbefore"), casc.dcav0topv(posX, posY, posZ));
632+
registry.fill(HIST("QAhisto/Xi/hqadcaCascBachtoPVbefore"), casc.dcabachtopv());
633+
registry.fill(HIST("QAhisto/Xi/hqadcaCascdaubefore"), casc.dcacascdaughters());
634+
registry.fill(HIST("QAhisto/Xi/hqadcaCascV0daubefore"), casc.dcaV0daughters());
635+
registry.fill(HIST("QAhisto/Xi/hqaLambdaMassbefore"), casc.mLambda());
636+
if (casc.sign() > 0) {
637+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLaprtoPVbefore"), casc.dcapostopv());
638+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLapitoPVbefore"), casc.dcanegtopv());
639+
} else {
640+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLaprtoPVbefore"), casc.dcanegtopv());
641+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLapitoPVbefore"), casc.dcapostopv());
642+
}
643+
}
644+
if (cfgOutputOmega) {
645+
registry.fill(HIST("QAhisto/Omega/hqaCascRadiusbefore"), casc.cascradius());
646+
registry.fill(HIST("QAhisto/Omega/hqaCasccosPAbefore"), casc.casccosPA(posX, posY, posZ));
647+
registry.fill(HIST("QAhisto/Omega/hqaCascV0cosPAbefore"), casc.v0cosPA(posX, posY, posZ));
648+
registry.fill(HIST("QAhisto/Omega/hqadcaCascV0toPVbefore"), casc.dcav0topv(posX, posY, posZ));
649+
registry.fill(HIST("QAhisto/Omega/hqadcaCascBachtoPVbefore"), casc.dcabachtopv());
650+
registry.fill(HIST("QAhisto/Omega/hqadcaCascdaubefore"), casc.dcacascdaughters());
651+
registry.fill(HIST("QAhisto/Omega/hqadcaCascV0daubefore"), casc.dcaV0daughters());
652+
registry.fill(HIST("QAhisto/Omega/hqaLambdaMassbefore"), casc.mLambda());
653+
if (casc.sign() > 0) {
654+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLaprtoPVbefore"), casc.dcapostopv());
655+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLapitoPVbefore"), casc.dcanegtopv());
656+
} else {
657+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLaprtoPVbefore"), casc.dcanegtopv());
658+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLapitoPVbefore"), casc.dcapostopv());
659+
}
660+
}
661+
}
662+
663+
if (cfgOutputXi || cfgEvSel.cfgEvSelHaveXi.value) {
543664
if (casc.mXi() > massup || casc.mXi() < masslow)
544665
return false;
545666
if (casc.sign() < 0) {
@@ -582,7 +703,7 @@ struct CascDiHadronCorr {
582703
if (std::fabs(casc.mLambda() - o2::constants::physics::MassLambda0) > cascBuilderOpts.cfgcasc_mlambdawindow.value)
583704
return false;
584705
}
585-
if (cfgOutputOmega) {
706+
if (cfgOutputOmega || cfgEvSel.cfgEvSelHaveOmega.value) {
586707
if (casc.mOmega() > massup || casc.mOmega() < masslow)
587708
return false;
588709
if (casc.sign() < 0) {
@@ -625,6 +746,43 @@ struct CascDiHadronCorr {
625746
if (std::fabs(casc.mLambda() - o2::constants::physics::MassLambda0) > cascBuilderOpts.cfgcasc_mlambdawindow.value)
626747
return false;
627748
}
749+
750+
if (cfgOutputCascQA) {
751+
if (cfgOutputXi) {
752+
registry.fill(HIST("QAhisto/Xi/hqaCascRadiusafter"), casc.cascradius());
753+
registry.fill(HIST("QAhisto/Xi/hqaCasccosPAafter"), casc.casccosPA(posX, posY, posZ));
754+
registry.fill(HIST("QAhisto/Xi/hqaCascV0cosPAafter"), casc.v0cosPA(posX, posY, posZ));
755+
registry.fill(HIST("QAhisto/Xi/hqadcaCascV0toPVafter"), casc.dcav0topv(posX, posY, posZ));
756+
registry.fill(HIST("QAhisto/Xi/hqadcaCascBachtoPVafter"), casc.dcabachtopv());
757+
registry.fill(HIST("QAhisto/Xi/hqadcaCascdauafter"), casc.dcacascdaughters());
758+
registry.fill(HIST("QAhisto/Xi/hqadcaCascV0dauafter"), casc.dcaV0daughters());
759+
registry.fill(HIST("QAhisto/Xi/hqaLambdaMassafter"), casc.mLambda());
760+
if (casc.sign() > 0) {
761+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLaprtoPVafter"), casc.dcapostopv());
762+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLapitoPVafter"), casc.dcanegtopv());
763+
} else {
764+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLaprtoPVafter"), casc.dcanegtopv());
765+
registry.fill(HIST("QAhisto/Xi/hqadcaCascLapitoPVafter"), casc.dcapostopv());
766+
}
767+
}
768+
if (cfgOutputOmega) {
769+
registry.fill(HIST("QAhisto/Omega/hqaCascRadiusafter"), casc.cascradius());
770+
registry.fill(HIST("QAhisto/Omega/hqaCasccosPAafter"), casc.casccosPA(posX, posY, posZ));
771+
registry.fill(HIST("QAhisto/Omega/hqaCascV0cosPAafter"), casc.v0cosPA(posX, posY, posZ));
772+
registry.fill(HIST("QAhisto/Omega/hqadcaCascV0toPVafter"), casc.dcav0topv(posX, posY, posZ));
773+
registry.fill(HIST("QAhisto/Omega/hqadcaCascBachtoPVafter"), casc.dcabachtopv());
774+
registry.fill(HIST("QAhisto/Omega/hqadcaCascdauafter"), casc.dcacascdaughters());
775+
registry.fill(HIST("QAhisto/Omega/hqadcaCascV0dauafter"), casc.dcaV0daughters());
776+
registry.fill(HIST("QAhisto/Omega/hqaLambdaMassafter"), casc.mLambda());
777+
if (casc.sign() > 0) {
778+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLaprtoPVafter"), casc.dcapostopv());
779+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLapitoPVafter"), casc.dcanegtopv());
780+
} else {
781+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLaprtoPVafter"), casc.dcanegtopv());
782+
registry.fill(HIST("QAhisto/Omega/hqadcaCascLapitoPVafter"), casc.dcapostopv());
783+
}
784+
}
785+
}
628786
return true;
629787
}
630788

@@ -1410,6 +1568,18 @@ struct CascDiHadronCorr {
14101568
}
14111569
if (cfgEvSel.cfgUseAdditionalEventCut.value && !eventSelected(collision, tracks.size(), cent, true))
14121570
return;
1571+
1572+
if (cfgEvSel.cfgEvSelHaveXi.value || cfgEvSel.cfgEvSelHaveOmega.value) {
1573+
bool haveCasc = false;
1574+
for (const auto& cascade : cascades) {
1575+
if (cascSelected(cascade, collision.posX(), collision.posY(), collision.posZ())) {
1576+
haveCasc = true;
1577+
break;
1578+
}
1579+
}
1580+
if (!haveCasc)
1581+
return;
1582+
}
14131583
loadCorrection(bc.timestamp());
14141584
if (!cfgCentTableUnavailable) {
14151585
getCentralityWeight(weightCent, cent);
@@ -1563,7 +1733,7 @@ struct CascDiHadronCorr {
15631733
PROCESS_SWITCH(CascDiHadronCorr, processMixedCasc, "Process mixed events", true);
15641734

15651735
// the process for filling the mixed events by buffer
1566-
void processMixedBuffer(FilteredCollisions::iterator const& collision, FilteredTracks const& tracks)
1736+
void processMixedBuffer(FilteredCollisions::iterator const& collision, FilteredTracks const& tracks, aod::CascDatas const& cascades, DaughterTracks const&)
15671737
{
15681738
ValidCollision currentCollision;
15691739
int nBinsMult = 0;
@@ -1597,6 +1767,18 @@ struct CascDiHadronCorr {
15971767
if (!cfgSelCollByNch && !cfgCentTableUnavailable && (cent < cfgCutCentMin || cent >= cfgCutCentMax))
15981768
return;
15991769

1770+
if (cfgEvSel.cfgEvSelHaveXi.value || cfgEvSel.cfgEvSelHaveOmega.value) {
1771+
bool haveCasc = false;
1772+
for (const auto& cascade : cascades) {
1773+
if (cascSelected(cascade, collision.posX(), collision.posY(), collision.posZ())) {
1774+
haveCasc = true;
1775+
break;
1776+
}
1777+
}
1778+
if (!haveCasc)
1779+
return;
1780+
}
1781+
16001782
float weightCent = 1.0f;
16011783
if (!cfgCentTableUnavailable)
16021784
getCentralityWeight(weightCent, cent);
@@ -1650,6 +1832,18 @@ struct CascDiHadronCorr {
16501832
if (!cfgSelCollByNch && !cfgCentTableUnavailable && (cent < cfgCutCentMin || cent >= cfgCutCentMax))
16511833
return;
16521834

1835+
if (cfgEvSel.cfgEvSelHaveXi.value || cfgEvSel.cfgEvSelHaveOmega.value) {
1836+
bool haveCasc = false;
1837+
for (const auto& cascade : cascades) {
1838+
if (cascSelected(cascade, collision.posX(), collision.posY(), collision.posZ())) {
1839+
haveCasc = true;
1840+
break;
1841+
}
1842+
}
1843+
if (!haveCasc)
1844+
return;
1845+
}
1846+
16531847
float weightCent = 1.0f;
16541848
if (!cfgCentTableUnavailable)
16551849
getCentralityWeight(weightCent, cent);

0 commit comments

Comments
 (0)