@@ -116,8 +116,10 @@ struct FlowGfwOmegaXi {
116116 O2_DEFINE_CONFIGURABLE (cfgv0_dcadaupitopv, float , 0 .01f , " minimum daughter pion DCA to PV" )
117117 O2_DEFINE_CONFIGURABLE (cfgv0_dcadauprtopv, float , 0 .1f , " minimum daughter proton DCA to PV" )
118118 O2_DEFINE_CONFIGURABLE (cfgv0_dcav0dau, float , 0 .5f , " maximum DCA among V0 daughters" )
119- O2_DEFINE_CONFIGURABLE (cfgv0_mk0swindow, float , 0 .1f , " Invariant mass window of K0s" )
120- O2_DEFINE_CONFIGURABLE (cfgv0_mlambdawindow, float , 0 .04f , " Invariant mass window of lambda" )
119+ O2_DEFINE_CONFIGURABLE (cfgv0_mk0slow, float , 0 .4f , " minimun invariant mass cut of K0s" )
120+ O2_DEFINE_CONFIGURABLE (cfgv0_mk0shigh, float , 0 .6f , " maximum invariant mass cut of K0s" )
121+ O2_DEFINE_CONFIGURABLE (cfgv0_mlambdalow, float , 1 .08f , " minimun invariant mass cut of lambda" )
122+ O2_DEFINE_CONFIGURABLE (cfgv0_mlambdahigh, float , 1 .16f , " maximum invariant mass cut of lambda" )
121123 O2_DEFINE_CONFIGURABLE (cfgv0_ArmPodocut, float , 0 .2f , " Armenteros Podolski cut for K0" )
122124 O2_DEFINE_CONFIGURABLE (cfgv0_compmassrejLambda, float , 0 .01f , " competing mass rejection of lambda" )
123125 O2_DEFINE_CONFIGURABLE (cfgv0_compmassrejK0s, float , 0 .005f , " competing mass rejection of K0s" )
@@ -213,6 +215,7 @@ struct FlowGfwOmegaXi {
213215 O2_DEFINE_CONFIGURABLE (cfgOutputLocDenWeights, bool , false , " Fill and output local density weights" )
214216 O2_DEFINE_CONFIGURABLE (cfgOutputQA, bool , false , " do QA" )
215217 O2_DEFINE_CONFIGURABLE (cfgUseT0MCent, bool , false , " Use T0M cent" )
218+ O2_DEFINE_CONFIGURABLE (cfgcheckhole, bool , true , " Check and reject vtxz-eta-phi hole" )
216219
217220 ConfigurableAxis cfgaxisVertex{" cfgaxisVertex" , {20 , -10 , 10 }, " vertex axis for histograms" };
218221 ConfigurableAxis cfgaxisPhi{" cfgaxisPhi" , {60 , 0.0 , constants::math::TwoPI}, " phi axis for histograms" };
@@ -233,7 +236,7 @@ struct FlowGfwOmegaXi {
233236 AxisSpec axisMultiplicity{{0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 }, " Centrality (%)" };
234237
235238 Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
236- Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && (aod::track::pt > trkQualityOpts.cfgCutPtPOIMin.value) && (aod::track::pt < trkQualityOpts.cfgCutPtPOIMax.value) && (( requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t )true )) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < trkQualityOpts.cfgCutDCAz.value) && (nabs(aod::track::dcaXY) < trkQualityOpts.cfgCutDCAxy.value );
239+ Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && (( requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t )true )) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls);
237240
238241 using TracksPID = soa::Join<aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
239242 using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, o2::aod::TrackSelectionExtension, aod::TracksExtra, TracksPID, aod::TracksIU, aod::TracksDCA>>; // tracks filter
@@ -959,10 +962,17 @@ struct FlowGfwOmegaXi {
959962 if (eff <= 0 )
960963 return false ;
961964 weight_nue = 1 . / eff;
962- if (mAcceptance .size () == static_cast <uint64_t >(nspecies))
965+ if (mAcceptance .size () == static_cast <uint64_t >(nspecies)) {
963966 weight_nua = mAcceptance [ispecies]->getNUA (track.phi (), track.eta (), vtxz);
964- else
967+ if (cfgcheckhole) {
968+ float checkleft = mAcceptance [ispecies]->getNUA (1 , track.eta (), vtxz);
969+ float checkright = mAcceptance [ispecies]->getNUA (2 , track.eta (), vtxz);
970+ if (weight_nua == 1 && checkleft == 1 && checkright == 1 )
971+ return false ;
972+ }
973+ } else {
965974 weight_nua = 1 ;
975+ }
966976 return true ;
967977 }
968978
@@ -1132,6 +1142,11 @@ struct FlowGfwOmegaXi {
11321142 }
11331143 if ((track.tpcNClsFound () <= trkQualityOpts.cfgTPCNCls .value ) || (track.tpcNClsCrossedRows () <= trkQualityOpts.cfgTPCCrossedRows .value ) || (track.itsNCls () <= trkQualityOpts.cfgChITSNCls .value ))
11341144 continue ;
1145+ if ((track.pt () < trkQualityOpts.cfgCutPtPOIMin .value ) || (track.pt () > trkQualityOpts.cfgCutPtPOIMax .value ))
1146+ continue ;
1147+ if ((std::fabs (track.dcaZ ()) > trkQualityOpts.cfgCutDCAz .value ) || (std::fabs (track.dcaXY ()) > trkQualityOpts.cfgCutDCAxy .value ))
1148+ continue ;
1149+
11351150 registry.fill (HIST (" hPhi" ), track.phi ());
11361151 registry.fill (HIST (" hPhicorr" ), track.phi (), wacc);
11371152 registry.fill (HIST (" hEta" ), track.eta ());
@@ -1190,7 +1205,7 @@ struct FlowGfwOmegaXi {
11901205 // K0short
11911206 if (v0.pt () > trkQualityOpts.cfgCutPtK0sMin .value && v0.pt () < trkQualityOpts.cfgCutPtK0sMax .value ) {
11921207 if (v0.qtarm () / std::fabs (v0.alpha ()) > v0BuilderOpts.cfgv0_ArmPodocut .value &&
1193- std::fabs ( v0.mK0Short () - o2::constants::physics::MassK0Short ) < v0BuilderOpts.cfgv0_mk0swindow .value &&
1208+ v0.mK0Short () > v0BuilderOpts. cfgv0_mk0slow . value && v0. mK0Short ( ) < v0BuilderOpts.cfgv0_mk0shigh .value &&
11941209 (std::fabs (v0posdau.tpcNSigmaPi ()) < cfgNSigma[0 ] && std::fabs (v0negdau.tpcNSigmaPi ()) < cfgNSigma[0 ]) &&
11951210 ((std::fabs (v0.tofNSigmaK0PiPlus ()) < cfgNSigma[3 ] || v0posdau.pt () < lowpt) && (std::fabs (v0.tofNSigmaK0PiMinus ()) < cfgNSigma[3 ] || v0negdau.pt () < lowpt)) &&
11961211 ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Pion>(v0posdau)) < cfgNSigma[6 ]) || v0posdau.pt () > lowpt) && ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Pion>(v0negdau)) < cfgNSigma[6 ]) || v0negdau.pt () > lowpt)) {
@@ -1203,14 +1218,14 @@ struct FlowGfwOmegaXi {
12031218 }
12041219 // Lambda and antiLambda
12051220 if (v0.pt () > trkQualityOpts.cfgCutPtLambdaMin .value && v0.pt () < trkQualityOpts.cfgCutPtLambdaMax .value ) {
1206- if (std::fabs ( v0.mLambda () - o2::constants::physics::MassLambda ) < v0BuilderOpts.cfgv0_mlambdawindow .value &&
1221+ if (v0.mLambda () > v0BuilderOpts. cfgv0_mlambdalow . value && v0. mLambda ( ) < v0BuilderOpts.cfgv0_mlambdahigh .value &&
12071222 (std::fabs (v0posdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0negdau.tpcNSigmaPi ()) < cfgNSigma[0 ]) &&
12081223 ((std::fabs (v0.tofNSigmaLaPr ()) < cfgNSigma[4 ] || v0posdau.pt () < lowpt) && (std::fabs (v0.tofNSigmaLaPi ()) < cfgNSigma[3 ] || v0negdau.pt () < lowpt)) &&
12091224 ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Proton>(v0posdau)) < cfgNSigma[7 ]) || v0posdau.pt () > lowpt) && ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Pion>(v0negdau)) < cfgNSigma[6 ]) || v0negdau.pt () > lowpt)) {
12101225 registry.fill (HIST (" InvMassLambda_all" ), v0.pt (), v0.mLambda (), v0.eta (), cent);
12111226 isLambda = true ;
12121227 }
1213- if (std::fabs ( v0.mAntiLambda () - o2::constants::physics::MassLambda ) < v0BuilderOpts.cfgv0_mlambdawindow .value &&
1228+ if (v0.mAntiLambda () > v0BuilderOpts. cfgv0_mlambdalow . value && v0. mAntiLambda ( ) < v0BuilderOpts.cfgv0_mlambdahigh .value &&
12141229 (std::fabs (v0negdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0posdau.tpcNSigmaPi ()) < cfgNSigma[0 ]) &&
12151230 ((std::fabs (v0.tofNSigmaALaPr ()) < cfgNSigma[4 ] || v0negdau.pt () < lowpt) && (std::fabs (v0.tofNSigmaALaPi ()) < cfgNSigma[3 ] || v0posdau.pt () < lowpt)) &&
12161231 ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Proton>(v0negdau)) < cfgNSigma[7 ]) || v0posdau.pt () > lowpt) && ((std::fabs (itsResponse.nSigmaITS <o2::track::PID::Pion>(v0posdau)) < cfgNSigma[6 ]) || v0negdau.pt () > lowpt)) {
@@ -1399,9 +1414,9 @@ struct FlowGfwOmegaXi {
13991414 }
14001415 registry.fill (HIST (" correction/hRunNumberPhiEtaVertexLambda" ), matchedPosition, v0.phi (), v0.eta (), vtxz);
14011416 if (isLambda)
1402- registry.fill (HIST (" correction/hPhiEtaInvmassLambda" ), matchedPosition, v0.phi (), v0.eta (), v0.mLambda ());
1417+ registry.fill (HIST (" correction/hPhiEtaInvmassLambda" ), v0.phi (), v0.eta (), v0.mLambda ());
14031418 if (isALambda)
1404- registry.fill (HIST (" correction/hPhiEtaInvmassLambda" ), matchedPosition, v0.phi (), v0.eta (), v0.mAntiLambda ());
1419+ registry.fill (HIST (" correction/hPhiEtaInvmassLambda" ), v0.phi (), v0.eta (), v0.mAntiLambda ());
14051420 }
14061421 }
14071422 }
@@ -2244,7 +2259,6 @@ struct FlowGfwOmegaXi {
22442259 // K0short
22452260 if (std::abs (pdgCode) == kK0Short ) {
22462261 if (v0.qtarm () / std::fabs (v0.alpha ()) > v0BuilderOpts.cfgv0_ArmPodocut .value &&
2247- std::fabs (v0.mK0Short () - o2::constants::physics::MassK0Short) < v0BuilderOpts.cfgv0_mk0swindow .value &&
22482262 (std::fabs (v0posdau.tpcNSigmaPi ()) < cfgNSigma[0 ] && std::fabs (v0negdau.tpcNSigmaPi ()) < cfgNSigma[0 ])) {
22492263 if (cfgDoAccEffCorr)
22502264 setCurrentParticleWeights (weff, wacc, v0, vtxz, 1 );
@@ -2260,8 +2274,7 @@ struct FlowGfwOmegaXi {
22602274 }
22612275 }
22622276 // Lambda and antiLambda
2263- if (std::fabs (v0.mLambda () - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow .value &&
2264- (std::fabs (v0posdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0negdau.tpcNSigmaPi ()) < cfgNSigma[0 ])) {
2277+ if ((std::fabs (v0posdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0negdau.tpcNSigmaPi ()) < cfgNSigma[0 ])) {
22652278 if (std::abs (pdgCode) == kLambda0 ) {
22662279 if (cfgDoAccEffCorr)
22672280 setCurrentParticleWeights (weff, wacc, v0, vtxz, 2 );
@@ -2275,8 +2288,7 @@ struct FlowGfwOmegaXi {
22752288 }
22762289 fGFW ->Fill (v0Eta, fLambdaPtAxis ->FindBin (v0Pt) - 1 , v0Phi, wacc * weff * wloc, 16 );
22772290 }
2278- } else if (std::fabs (v0.mLambda () - o2::constants::physics::MassLambda) < v0BuilderOpts.cfgv0_mlambdawindow .value &&
2279- (std::fabs (v0negdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0posdau.tpcNSigmaPi ()) < cfgNSigma[0 ])) {
2291+ } else if ((std::fabs (v0negdau.tpcNSigmaPr ()) < cfgNSigma[1 ] && std::fabs (v0posdau.tpcNSigmaPi ()) < cfgNSigma[0 ])) {
22802292 if (std::abs (pdgCode) == kLambda0 ) {
22812293 if (cfgDoAccEffCorr)
22822294 setCurrentParticleWeights (weff, wacc, v0, vtxz, 2 );
0 commit comments