@@ -147,8 +147,10 @@ struct FlowGfwOmegaXi {
147147 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDbachMin, float , 0 .15f , " Minimal pT for daughter PID" )
148148 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDdauLaPrMin, float , 0 .15f , " Minimal pT for daughter PID" )
149149 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDdauLaPiMin, float , 0 .15f , " Minimal pT for daughter PID" )
150+ O2_DEFINE_CONFIGURABLE (cfgCutDCAz, float , 2 .0f , " Minimal pT for daughter PID" )
150151 // track quality selections for daughter track
151- O2_DEFINE_CONFIGURABLE (cfgITSNCls, int , 5 , " check minimum number of ITS clusters" )
152+ O2_DEFINE_CONFIGURABLE (cfgITSNCls, int , 3 , " check minimum number of ITS clusters" )
153+ O2_DEFINE_CONFIGURABLE (cfgChITSNCls, int , 5 , " check minimum number of ITS clusters" )
152154 O2_DEFINE_CONFIGURABLE (cfgTPCNCls, int , 50 , " check minimum number of TPC hits" )
153155 O2_DEFINE_CONFIGURABLE (cfgTPCCrossedRows, int , 70 , " check minimum number of TPC crossed rows" )
154156 O2_DEFINE_CONFIGURABLE (cfgCheckGlobalTrack, bool , false , " check global track" )
@@ -164,6 +166,7 @@ struct FlowGfwOmegaXi {
164166 O2_DEFINE_CONFIGURABLE (cfgDoNoCollInTimeRangeStandard, bool , true , " check kNoCollInTimeRangeStandard" )
165167 O2_DEFINE_CONFIGURABLE (cfgDoIsGoodITSLayersAll, bool , true , " check kIsGoodITSLayersAll" )
166168 O2_DEFINE_CONFIGURABLE (cfgCutOccupancyHigh, int , 500 , " High cut on TPC occupancy" )
169+ O2_DEFINE_CONFIGURABLE (cfgDoZResAndNumContribCut, bool , true , " check kNoTimeFrameBorder" )
167170 O2_DEFINE_CONFIGURABLE (cfgDoMultPVCut, bool , true , " do multNTracksPV vs cent cut" )
168171 O2_DEFINE_CONFIGURABLE (cfgMultPVCut, std::vector<float >, (std::vector<float >{3074.43 , -106.192 , 1.46176 , -0.00968364 , 2.61923e-05 , 182.128 , -7.43492 , 0.193901 , -0.00256715 , 1.22594e-05 }), " Used MultPVCut function parameter" )
169172 O2_DEFINE_CONFIGURABLE (cfgDoV0AT0Acut, bool , true , " do V0A-T0A cut" )
@@ -211,11 +214,11 @@ struct FlowGfwOmegaXi {
211214 AxisSpec axisMultiplicity{{0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 }, " Centrality (%)" };
212215
213216 Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
214- 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);
217+ 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) ;
215218
216219 using TracksPID = soa::Join<aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
217- using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, o2::aod::TrackSelectionExtension, aod::TracksExtra, TracksPID, aod::TracksIU>>; // tracks filter
218- using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0Ms, aod::MultsRun3>>; // collisions filter
220+ using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, o2::aod::TrackSelectionExtension, aod::TracksExtra, TracksPID, aod::TracksIU, aod::TracksDCA >>; // tracks filter
221+ using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0Ms, aod::MultsRun3>>; // collisions filter
219222 using DaughterTracks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, TracksPID, aod::TrackSelection, o2::aod::TrackSelectionExtension>;
220223
221224 // Connect to ccdb
@@ -363,15 +366,12 @@ struct FlowGfwOmegaXi {
363366 registry.add (" hMult" , " " , {HistType::kTH1D , {cfgaxisNch}});
364367 registry.add (" hMultTPC" , " " , {HistType::kTH1D , {cfgaxisNch}});
365368 registry.add (" hCent" , " " , {HistType::kTH1D , {{90 , 0 , 90 }}});
366- registry.add (" hCentvsNch" , " " , {HistType::kTH2D , {{18 , 0 , 90 }, cfgaxisNch}});
367- registry.add (" MC/hCentvsNchMC" , " " , {HistType::kTH2D , {{18 , 0 , 90 }, cfgaxisNch}});
368- registry.add (" hCentvsMultTPC" , " " , {HistType::kTH2D , {{18 , 0 , 90 }, cfgaxisNch}});
369- registry.add (" MC/hCentvsMultTPCMC" , " " , {HistType::kTH2D , {{18 , 0 , 90 }, cfgaxisNch}});
370- registry.add (" hNTracksPVvsCentrality" , " " , {HistType::kTH2D , {{5000 , 0 , 5000 }, axisMultiplicity}});
369+ registry.add (" hNTracksPVvsCentrality" , " " , {HistType::kTH2D , {{5000 , 0 , 5000 }, {100 , 0 , 100 }}});
370+ registry.add (" hmultFV0AvsmultFT0A" , " " , {HistType::kTH2D , {{5000 , 0 , 5000 }, {5000 , 0 , 5000 }}});
371371 registry.add (" hPt" , " " , {HistType::kTH1D , {cfgaxisPt}});
372372
373+ runNumbers = cfgRunNumbers;
373374 if (cfgOutputrunbyrun) {
374- runNumbers = cfgRunNumbers;
375375 for (const auto & runNumber : runNumbers) {
376376 if (cfgOutputQA) {
377377 std::vector<std::shared_ptr<TH1>> histosPhi (kCount_TH1Names );
@@ -957,21 +957,23 @@ struct FlowGfwOmegaXi {
957957 return 0 ;
958958 }
959959 registry.fill (HIST (" hEventCount" ), 8.5 );
960- float vtxz = -999 ;
961- if (collision.numContrib () > 1 ) {
962- vtxz = collision.posZ ();
963- float zRes = std::sqrt (collision.covZZ ());
964- double zResMin = 0.25 ;
965- int numContMax = 20 ;
966- if (zRes > zResMin && collision.numContrib () < numContMax)
967- vtxz = -999 ;
968- }
969- auto multNTracksPV = collision.multNTracksPV ();
970- auto occupancy = collision.trackOccupancyInTimeRange ();
971960
961+ float vtxz = collision.posZ ();
962+ if (evtSeleOpts.cfgDoZResAndNumContribCut .value ) {
963+ if (collision.numContrib () > 1 ) {
964+ float zRes = std::sqrt (collision.covZZ ());
965+ double zResMin = 0.25 ;
966+ int numContMax = 20 ;
967+ if (zRes > zResMin && collision.numContrib () < numContMax)
968+ vtxz = -999 ;
969+ }
970+ }
972971 if (std::fabs (vtxz) > cfgCutVertex)
973972 return false ;
974973
974+ auto multNTracksPV = collision.multNTracksPV ();
975+ auto occupancy = collision.trackOccupancyInTimeRange ();
976+
975977 registry.fill (HIST (" hNTracksPVvsCentrality" ), multNTracksPV, centrality);
976978 if (evtSeleOpts.cfgDoMultPVCut .value ) {
977979 if (multNTracksPV < fMultPVCutLow ->Eval (centrality))
@@ -987,6 +989,7 @@ struct FlowGfwOmegaXi {
987989 registry.fill (HIST (" hEventCount" ), 10.5 );
988990
989991 // V0A T0A 5 sigma cut
992+ registry.fill (HIST (" hmultFV0AvsmultFT0A" ), collision.multFV0A (), collision.multFT0A ());
990993 if (evtSeleOpts.cfgDoV0AT0Acut .value ) {
991994 int nsigma = 5 ;
992995 if (std::fabs (collision.multFV0A () - fT0AV0AMean ->Eval (collision.multFT0A ())) > nsigma * fT0AV0ASigma ->Eval (collision.multFT0A ()))
@@ -1028,14 +1031,16 @@ struct FlowGfwOmegaXi {
10281031 if (!eventSelected (collision, cent, interactionRate))
10291032 return ;
10301033 int matchedPosition = -1 ;
1031- for (uint64_t idxPosition = 0 ; idxPosition < this ->runNumbers .size (); idxPosition++) {
1032- if (this ->runNumbers [idxPosition] == runNumber) {
1033- matchedPosition = idxPosition;
1034- break ;
1034+ if (cfgOutputrunbyrun) {
1035+ for (uint64_t idxPosition = 0 ; idxPosition < this ->runNumbers .size (); idxPosition++) {
1036+ if (this ->runNumbers [idxPosition] == runNumber) {
1037+ matchedPosition = idxPosition;
1038+ break ;
1039+ }
1040+ }
1041+ if (matchedPosition == -1 ) {
1042+ return ;
10351043 }
1036- }
1037- if (matchedPosition == -1 ) {
1038- return ;
10391044 }
10401045
10411046 TH1D* hLocalDensity = new TH1D (" hphi" , " hphi" , 400 , -constants::math::TwoPI, constants::math::TwoPI);
@@ -1056,7 +1061,7 @@ struct FlowGfwOmegaXi {
10561061 if (!setCurrentParticleWeights (weff, wacc, track, vtxz, 0 ))
10571062 continue ;
10581063 }
1059- if ((track.tpcNClsFound () <= trkQualityOpts.cfgTPCNCls .value ) || (track.tpcNClsCrossedRows () <= trkQualityOpts.cfgTPCCrossedRows .value ) || (track.itsNCls () <= trkQualityOpts.cfgITSNCls .value ))
1064+ if ((track.tpcNClsFound () <= trkQualityOpts.cfgTPCNCls .value ) || (track.tpcNClsCrossedRows () <= trkQualityOpts.cfgTPCCrossedRows .value ) || (track.itsNCls () <= trkQualityOpts.cfgChITSNCls .value ))
10601065 continue ;
10611066 registry.fill (HIST (" hPhi" ), track.phi ());
10621067 registry.fill (HIST (" hPhicorr" ), track.phi (), wacc);
@@ -1085,10 +1090,6 @@ struct FlowGfwOmegaXi {
10851090 registry.fill (HIST (" correction/hRunNumberPhiEtaVertex" ), matchedPosition, track.phi (), track.eta (), vtxz);
10861091 }
10871092 }
1088- if (cfgDoLocDenCorr) {
1089- registry.fill (HIST (" hCentvsNch" ), cent, nch);
1090- registry.fill (HIST (" hCentvsMultTPC" ), cent, nMultTPC);
1091- }
10921093 // fill GFW of V0 flow
10931094 double lowpt = trkQualityOpts.cfgCutPtPIDDauMin .value ;
10941095 double bachPtcut = trkQualityOpts.cfgCutPtPIDbachMin .value ;
@@ -1580,7 +1581,6 @@ struct FlowGfwOmegaXi {
15801581 return ;
15811582 cent = collision.centFT0C ();
15821583 nMultTPC = collision.multTPC ();
1583- registry.fill (HIST (" MC/hCentvsMultTPCMC" ), cent, nMultTPC);
15841584 }
15851585 if (cent < 0 )
15861586 return ;
@@ -1613,7 +1613,6 @@ struct FlowGfwOmegaXi {
16131613 }
16141614 }
16151615 }
1616- registry.fill (HIST (" MC/hCentvsNchMC" ), cent, nch);
16171616
16181617 for (const auto & straGen : tracksGen) {
16191618 if (!straGen.isPhysicalPrimary ())
@@ -1738,10 +1737,6 @@ struct FlowGfwOmegaXi {
17381737 }
17391738 }
17401739
1741- if (cfgDoLocDenCorr) {
1742- registry.fill (HIST (" hCentvsNch" ), cent, nch);
1743- }
1744-
17451740 for (const auto & casc : Cascades) {
17461741 if (!casc.has_mcParticle ())
17471742 continue ;
0 commit comments