@@ -121,6 +121,9 @@ struct sigma0builder {
121121 // Histogram registry
122122 HistogramRegistry histos{" Histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
123123
124+ // Species selection
125+ Configurable<bool > doLambdaStar{" doLambdaStar" , false , " Build Lambda(1520) instead of Sigma0" };
126+
124127 Configurable<bool > fFillV03DPositionHistos {" fFillV03DPositionHistos" , false , " Fill XYZ histo for Photons and Lambdas." };
125128 Configurable<bool > fFillNoSelV0Histos {" fFillNoSelV0Histos" , false , " Fill QA histos for input V0s." };
126129 Configurable<bool > fFillSelPhotonHistos {" fFillSelPhotonHistos" , true , " Fill QA histos for sel photons." };
@@ -2293,14 +2296,15 @@ struct sigma0builder {
22932296 auto arrMom = std::array{pVecPhotons, pVecLambda};
22942297 float sigmaMass = RecoDecay::m (arrMom, std::array{o2::constants::physics::MassPhoton, o2::constants::physics::MassLambda0});
22952298 float sigmaY = -999 .f ;
2299+ float TheoreticalMass = doLambdaStar ? o2::constants::physics::MassLambda1520 : o2::constants::physics::MassSigma0;
22962300
22972301 if constexpr (requires { gamma.pxMC (); lambda.pxMC (); }) // If MC
2298- sigmaY = RecoDecay::y (std::array{gamma.pxMC () + lambda.pxMC (), gamma.pyMC () + lambda.pyMC (), gamma.pzMC () + lambda.pzMC ()}, o2::constants::physics::MassSigma0 );
2302+ sigmaY = RecoDecay::y (std::array{gamma.pxMC () + lambda.pxMC (), gamma.pyMC () + lambda.pyMC (), gamma.pzMC () + lambda.pzMC ()}, TheoreticalMass );
22992303 else // If DATA
2300- sigmaY = RecoDecay::y (std::array{gamma.px () + lambda.px (), gamma.py () + lambda.py (), gamma.pz () + lambda.pz ()}, o2::constants::physics::MassSigma0 );
2304+ sigmaY = RecoDecay::y (std::array{gamma.px () + lambda.px (), gamma.py () + lambda.py (), gamma.pz () + lambda.pz ()}, TheoreticalMass );
23012305
23022306 histos.fill (HIST (" SigmaSel/hSelectionStatistics" ), 1 .);
2303- if (TMath::Abs (sigmaMass - o2::constants::physics::MassSigma0 ) > Sigma0Window)
2307+ if (TMath::Abs (sigmaMass - TheoreticalMass ) > Sigma0Window)
23042308 return false ;
23052309
23062310 histos.fill (HIST (" SigmaSel/hSelectionStatistics" ), 2 .);
@@ -2415,14 +2419,15 @@ struct sigma0builder {
24152419
24162420 auto arrMom = std::array{pVecPhotons, pVecLambda};
24172421 float sigmaMass = RecoDecay::m (arrMom, std::array{o2::constants::physics::MassPhoton, o2::constants::physics::MassLambda0});
2422+ float TheoreticalMass = doLambdaStar ? o2::constants::physics::MassLambda1520 : o2::constants::physics::MassSigma0;
24182423
24192424 // N.B. At this stage, we are only using the reconstructed rapidity (ideally with a very loose cut)
24202425 // A proper selection should be done in the sigmaanalysis
2421- float sigmaY = RecoDecay::y (std::array{gammapx + lambda.px (), gammapy + lambda.py (), gammapz + lambda.pz ()}, o2::constants::physics::MassSigma0 );
2426+ float sigmaY = RecoDecay::y (std::array{gammapx + lambda.px (), gammapy + lambda.py (), gammapz + lambda.pz ()}, TheoreticalMass );
24222427
24232428 histos.fill (HIST (" SigmaSel/hSelectionStatistics" ), 1 .);
24242429 histos.fill (HIST (" SigmaSel/hSigmaMassBeforeSel" ), sigmaMass);
2425- if (TMath::Abs (sigmaMass - o2::constants::physics::MassSigma0 ) > Sigma0Window)
2430+ if (TMath::Abs (sigmaMass - TheoreticalMass ) > Sigma0Window)
24262431 return false ;
24272432
24282433 histos.fill (HIST (" SigmaSel/hSelectionStatistics" ), 2 .);
0 commit comments