99// granted to it by virtue of its status as an Intergovernmental Organization
1010// or submit itself to any jurisdiction.
1111
12+ #include " Common/CCDB/EventSelectionParams.h"
1213#include " Common/DataModel/Centrality.h"
1314#include " Common/DataModel/EventSelection.h"
1415#include " Common/DataModel/Multiplicity.h"
@@ -117,10 +118,15 @@ struct MultiharmonicCorrelations { // this name is used in lower-case format to
117118 Configurable<bool > cfUseWeights{" cfUseWeights" , true , " use weights" };
118119 Configurable<bool > cfToyModel{" cfToyModel" , true , " phi-distribution from toy model" };
119120 Configurable<bool > cfNest{" cfNest" , true , " nested loops" };
121+ Configurable<bool > cfTechcuts{" cfTechcuts" , true , " technical cuts" };
120122
121123 Configurable<std::vector<float >> cfVertexZ{" cfVertexZ" , {-10 , 10 .}, " vertex z position range: {min, max}[cm], with convention: min <= Vz < max" };
122124 Configurable<std::vector<float >> cfPt{" cfPt" , {0.2 , 5.0 }, " transverse momentum range" };
123125 Configurable<std::vector<float >> cfEta{" cfEta" , {-0.8 , 0.8 }, " eta range" };
126+ Configurable<std::vector<float >> cfDCAxy{" cfDCAxy" , {-0.5 , 0.5 }, " dca xy range" };
127+ Configurable<std::vector<float >> cfDCAz{" cfDCAz" , {-0.2 , 0.2 }, " dca z range" };
128+ Configurable<float > cftpcNClsFoundmin{" cftpcNClsFoundmin" , 70 ., " tpcNClsFoundmin" };
129+ Configurable<float > cftpcChi2NClmax{" cftpcChi2NClmax" , 4 ., " tpcChi2NClmax" };
124130
125131 Configurable<std::vector<int >> cfRuns{" cfRuns" , {544091 , 544095 , 544098 , 544116 , 544121 , 544122 , 544123 , 544124 }, " List of run numbers to analyze" };
126132 Configurable<std::string> cfFileWithWeights{" cfFileWithWeights" , " /alice-ccdb.cern.ch/Users/p/pengchon/weightsfile06" , " path to external ROOT file which holds all particle weights" };
@@ -367,6 +373,10 @@ struct MultiharmonicCorrelations { // this name is used in lower-case format to
367373 float NContrcut = 2 .;
368374 if (posZ < vertexZmin || posZ > vertexZmax || (!collision.sel8 ()) || collision.numContrib () < NContrcut)
369375 return false ;
376+ if (cfTechcuts) {
377+ if (!collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard ) || !collision.selection_bit (o2::aod::evsel::kNoCollInRofStandard ) || !collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ) || !collision.selection_bit (o2::aod::evsel::kIsVertexITSTPC ) || !collision.selection_bit (o2::aod::evsel::kIsGoodITSLayersAll ) || !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ) || !collision.selection_bit (o2::aod::evsel::kNoHighMultCollInPrevRof ))
378+ return false ;
379+ }
370380 return true ;
371381 }
372382
@@ -381,7 +391,15 @@ struct MultiharmonicCorrelations { // this name is used in lower-case format to
381391 float etacutmin = static_cast <float >(Eta[0 ]);
382392 float etacutmax = static_cast <float >(Eta[1 ]);
383393 float eta = track.eta ();
384- if (pt < ptcutmin || pt > ptcutmax || eta < etacutmin || eta > etacutmax)
394+ vector<float > dcaXY = cfDCAxy.value ;
395+ float dcaxycutmin = static_cast <float >(dcaXY[0 ]);
396+ float dcaxycutmax = static_cast <float >(dcaXY[1 ]);
397+ float dcaxy = track.dcaXY ();
398+ vector<float > dcaZ = cfDCAz.value ;
399+ float dcazcutmin = static_cast <float >(dcaZ[0 ]);
400+ float dcazcutmax = static_cast <float >(dcaZ[1 ]);
401+ float dcaz = track.dcaZ ();
402+ if (pt < ptcutmin || pt > ptcutmax || eta < etacutmin || eta > etacutmax || dcaxy < dcaxycutmin || dcaxy > dcaxycutmax || dcaz < dcazcutmin || dcaz > dcazcutmax || (!track.isPrimaryTrack ()) || (!track.isPVContributor ()) || track.tpcNClsFound () < cftpcNClsFoundmin.value || track.tpcChi2NCl () > cftpcChi2NClmax)
385403 return false ;
386404 return true ;
387405 }
0 commit comments