1616#include < iostream>
1717#include < array>
1818#include < TH1F.h>
19+ #include " TRandom.h"
1920// O2 includes
2021#include " Framework/AnalysisDataModel.h"
2122#include " Framework/AnalysisTask.h"
@@ -33,11 +34,11 @@ using namespace o2;
3334using namespace o2 ::framework;
3435using namespace o2 ::framework::expressions;
3536struct FactorialMoments {
36- Configurable<Float_t> confEta{" centralEta" , 0.8 , " eta limit for tracks" };
37+ Configurable<Float_t> confEta{" centralEta" , 0.9 , " eta limit for tracks" };
3738 Configurable<Int_t> confNumPt{" numPt" , 1 , " number of pT bins" };
3839 Configurable<Float_t> confPtMin{" ptMin" , 0 .2f , " lower pT cut" };
3940 Configurable<Float_t> confDCAxy{" dcaXY" , 2 .4f , " DCA xy cut" };
40- Configurable<Float_t> confDCAz{" dcaZ" , 3 . 2f , " DCA z cut" };
41+ Configurable<Float_t> confDCAz{" dcaZ" , 2 . 0f , " DCA z cut" };
4142 Configurable<Float_t> confMinTPCCls{" minTPCCls" , 70 .0f , " minimum number of TPC clusters" };
4243 Configurable<std::vector<Int_t>> confCentCut{" centLimits" , {0 , 5 }, " centrality min and max" };
4344 Configurable<std::vector<Float_t>> confVertex{" vertexXYZ" , {0 .3f , 0 .4f , 10 .0f }, " vertex cuts" };
@@ -77,9 +78,11 @@ struct FactorialMoments {
7778 {" mChi2TPC" , " chi2 TPC" , {HistType::kTH1F , {{100 , 0 , 10 }}}},
7879 {" mChi2ITS" , " chi2 ITS" , {HistType::kTH1F , {{100 , 0 , 10 }}}},
7980 {" mChi2TRD" , " chi2 TRD" , {HistType::kTH1F , {{100 , 0 , 100 }}}},
80- {" mDCAxy" , " DCA xy" , {HistType::kTH1F , {{100 , -0.8 , 0.8 }}}},
81- {" mDCAx" , " DCA z" , {HistType::kTH1F , {{100 , -2.0 , 2.0 }}}},
82- {" mDCAxyPt" , " DCA xy vs #pt;#pt;DCAxy" , {HistType::kTH2F , {{100 , 0 , 20 }, {100 , -0.5 , 0.5 }}}},
81+ {" mDCAxy" , " DCA xy" , {HistType::kTH1F , {{500 , -0.8 , 0.8 }}}},
82+ {" mDCAx" , " DCA z" , {HistType::kTH1F , {{500 , -2.0 , 2.0 }}}},
83+ {" mDCAxyPt" , " DCA xy vs #pt;#pt;DCAxy" , {HistType::kTH2F , {{100 , 0 , 20 }, {500 , -0.5 , 0.5 }}}},
84+ {" mDCAxyPtbcut" , " DCA xy vs #pt;#pt;DCAxycut" , {HistType::kTH2F , {{100 , 0 , 20 }, {500 , -0.5 , 0.5 }}}},
85+ {" mDCAzPtbcut" , " DCA z vs #pt;#pt;DCAzcut" , {HistType::kTH2F , {{100 , 0 , 20 }, {100 , -2.0 , 2.0 }}}},
8386 {" mDCAzPt" , " DCA z vs #pt;#pt;DCAz" , {HistType::kTH2F , {{100 , 0 , 20 }, {100 , -2.0 , 2.0 }}}},
8487 {" mNSharedClsTPC" , " shared clusters in TPC" , {HistType::kTH1F , {{100 , 0 , 10 }}}},
8588 {" mCrossedRowsTPC" , " crossedrows in TPC" , {HistType::kTH1F , {{100 , 0 , 200 }}}},
@@ -137,9 +140,16 @@ struct FactorialMoments {
137140 {
138141 for (auto iPt = 0 ; iPt < confNumPt; ++iPt) {
139142 if (track.pt () > confPtBins.value [2 * iPt] && track.pt () < confPtBins.value [2 * iPt + 1 ]) {
143+ float iphi = track.phi ();
144+ iphi = gRandom ->Gaus (iphi, TMath::TwoPi ());
145+ if (iphi < 0 ) {
146+ iphi += TMath::TwoPi ();
147+ } else if (iphi > TMath::TwoPi ()) {
148+ iphi -= TMath::TwoPi ();
149+ }
140150 mHistArrQA [iPt * 4 ]->Fill (track.eta ());
141151 mHistArrQA [iPt * 4 + 1 ]->Fill (track.pt ());
142- mHistArrQA [iPt * 4 + 2 ]->Fill (track. phi () );
152+ mHistArrQA [iPt * 4 + 2 ]->Fill (iphi );
143153 countTracks[iPt]++;
144154 for (auto iM = 0 ; iM < nBins; ++iM) {
145155 mHistArrReset [iPt * nBins + iM]->Fill (track.eta (), track.phi ());
@@ -182,8 +192,9 @@ struct FactorialMoments {
182192 mBinConFinal [iPt * 6 + iOrder]->Fill (iM, binConEvent[iPt][iM]);
183193 }
184194 } // end of loop over M bins
185- } // end of loop over pT bins
195+ } // end of loop over pT bins
186196 }
197+
187198 using TracksFMs = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA>>;
188199 void processRun3 (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>>::iterator const & coll, TracksFMs const & tracks)
189200 {
@@ -226,9 +237,14 @@ struct FactorialMoments {
226237 if (includeITSTracks && (!track.hasITS ())) {
227238 continue ;
228239 }
240+ histos.fill (HIST (" mDCAxyPtbcut" ), track.pt (), track.dcaXY ());
241+ histos.fill (HIST (" mDCAzPtbcut" ), track.pt (), track.dcaZ ());
229242 if ((track.pt () < confPtMin) || (track.tpcNClsFindable () < confMinTPCCls)) {
230243 continue ;
231244 }
245+ if (TMath::Abs (track.dcaXY ()) > (0.0105 + 0.0350 / TMath::Power (track.pt (), 1.1 ))) {
246+ continue ;
247+ }
232248 histos.fill (HIST (" mCollID" ), track.collisionId ());
233249 histos.fill (HIST (" mEta" ), track.eta ());
234250 histos.fill (HIST (" mPt" ), track.pt ());
@@ -252,6 +268,7 @@ struct FactorialMoments {
252268 checkpT (track);
253269 }
254270 for (auto iPt = 0 ; iPt < confNumPt; ++iPt) {
271+ // if (countTracks[iPt] > 0)
255272 if (countTracks[iPt] > 0 ) {
256273 mHistArrQA [iPt * 4 + 3 ]->Fill (countTracks[iPt]);
257274 }
0 commit comments