@@ -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