@@ -176,6 +176,7 @@ struct Chk892Flow {
176176 Configurable<bool > cfgReturnFlag{" cfgReturnFlag" , false , " Return Flag for debugging" };
177177 Configurable<bool > cSecondaryRequire{" cSecondaryRequire" , true , " Secondary cuts on/off" };
178178 Configurable<bool > cSecondaryArmenterosCut{" cSecondaryArmenterosCut" , true , " cut on Armenteros-Podolanski graph" };
179+ Configurable<bool > cSecondaryCrossMassHypothesisCut{" cSecondaryCrossMassHypothesisCut" , false , " Apply cut based on the lambda mass hypothesis" };
179180
180181 Configurable<bool > cfgByPassDauPIDSelection{" cfgByPassDauPIDSelection" , true , " Bypass Daughters PID selection" };
181182 Configurable<float > cSecondaryDauDCAMax{" cSecondaryDauDCAMax" , 0.2 , " Maximum DCA Secondary daughters to PV" };
@@ -190,7 +191,8 @@ struct Chk892Flow {
190191 Configurable<float > cSecondaryDCAtoPVMax{" cSecondaryDCAtoPVMax" , 0.4 , " Maximum DCA Secondary to PV" };
191192 Configurable<float > cSecondaryProperLifetimeMax{" cSecondaryProperLifetimeMax" , 20 ., " Maximum Secondary Lifetime" };
192193 Configurable<float > cSecondaryparamArmenterosCut{" cSecondaryparamArmenterosCut" , 0.2 , " parameter for Armenteros Cut" };
193- Configurable<float > cSecondaryMassWindow{" cSecondaryMassWindow" , 0.03 , " Secondary inv mass selciton window" };
194+ Configurable<float > cSecondaryMassWindow{" cSecondaryMassWindow" , 0.03 , " Secondary inv mass selection window" };
195+ Configurable<float > cSecondaryCrossMassCutWindow{" cSecondaryCrossMassCutWindow" , 0.05 , " Secondary inv mass selection window with (anti)lambda hypothesis" };
194196
195197 // K* selection
196198 Configurable<float > cKstarMaxRap{" cKstarMaxRap" , 0.5 , " Kstar maximum rapidity" };
@@ -263,7 +265,7 @@ struct Chk892Flow {
263265 AxisSpec mcLabelAxis = {5 , -0.5 , 4.5 , " MC Label" };
264266
265267 if (cfgReturnFlag) {
266- histos.add (" QA/K0sCutCheck" , " Check K0s cut" , HistType::kTH1D , {AxisSpec{12 , -0.5 , 11 .5 , " Check" }});
268+ histos.add (" QA/K0sCutCheck" , " Check K0s cut" , HistType::kTH1D , {AxisSpec{13 , -0.5 , 12 .5 , " Check" }});
267269 }
268270 histos.add (" QA/before/CentDist" , " Centrality distribution" , {HistType::kTH1D , {centAxis}});
269271 histos.add (" QA/before/VtxZ" , " Centrality distribution" , {HistType::kTH1D , {vtxzAxis}});
@@ -556,6 +558,8 @@ struct Chk892Flow {
556558 auto lCPA = candidate.v0cosPA ();
557559 auto lPropTauK0s = candidate.distovertotmom (collision.posX (), collision.posY (), collision.posZ ()) * MassK0Short;
558560 auto lMk0s = candidate.mK0Short ();
561+ auto lMLambda = candidate.mLambda ();
562+ auto lMALambda = candidate.mAntiLambda ();
559563
560564 auto checkCommonCuts = [&]() {
561565 if (lDauDCA > cSecondaryDauDCAMax)
@@ -580,6 +584,9 @@ struct Chk892Flow {
580584 return false ;
581585 if (std::fabs (lMk0s - MassK0Short) > cSecondaryMassWindow)
582586 return false ;
587+ if (cSecondaryCrossMassHypothesisCut &&
588+ ((std::fabs (lMLambda - MassLambda0) < cSecondaryCrossMassCutWindow) || (std::fabs (lMALambda - MassLambda0Bar) < cSecondaryCrossMassCutWindow)))
589+ return false ;
583590 return true ;
584591 };
585592
@@ -630,6 +637,11 @@ struct Chk892Flow {
630637 histos.fill (HIST (" QA/K0sCutCheck" ), 11 );
631638 returnFlag = false ;
632639 }
640+ if (cSecondaryCrossMassHypothesisCut &&
641+ ((std::fabs (lMLambda - MassLambda0) < cSecondaryCrossMassCutWindow) || (std::fabs (lMALambda - MassLambda0Bar) < cSecondaryCrossMassCutWindow))) {
642+ histos.fill (HIST (" QA/K0sCutCheck" ), 12 );
643+ returnFlag = false ;
644+ }
633645 return returnFlag;
634646 } else { // normal usage
635647 if (cSecondaryRequire) {
0 commit comments