@@ -73,6 +73,8 @@ struct FlowEventPlane {
7373 Configurable<bool > cPileupReject{" cPileupReject" , true , " Pileup rejection" };
7474 Configurable<bool > cZVtxTimeDiff{" cZVtxTimeDiff" , false , " z-vtx time diff selection" };
7575 Configurable<bool > cIsGoodITSLayers{" cIsGoodITSLayers" , true , " Good ITS Layers All" };
76+ Configurable<float > cMinOccupancy{" cMinOccupancy" , 0 , " Minimum FT0C Occupancy" };
77+ Configurable<float > cMaxOccupancy{" cMaxOccupancy" , 1e6 , " Maximum FT0C Occupancy" };
7678
7779 // Tracks
7880 Configurable<float > cTrackMinPt{" cTrackMinPt" , 0.15 , " p_{T} minimum" };
@@ -114,17 +116,17 @@ struct FlowEventPlane {
114116 std::array<float , 4 > znaYWeigthEnergy = {1 ., 1 ., 1 ., 1 .};
115117 std::array<float , 4 > zncXWeigthEnergy = {1 ., 1 ., 1 ., 1 .};
116118 std::array<float , 4 > zncYWeigthEnergy = {1 ., 1 ., 1 ., 1 .};
117- std::vector<std::vector<string>> vCoarseCorrHistNames = {
119+ std::vector<std::vector<std:: string>> vCoarseCorrHistNames = {
118120 {" hXZNAVsCentVxVyVz" },
119121 {" hYZNAVsCentVxVyVz" },
120122 {" hXZNCVsCentVxVyVz" },
121123 {" hYZNCVsCentVxVyVz" }};
122- std::vector<std::vector<string>> vFineCorrHistNames = {
124+ std::vector<std::vector<std:: string>> vFineCorrHistNames = {
123125 {" hXZNAVsCent" , " hXZNAVsVx" , " hXZNAVsVy" , " hXZNAVsVz" },
124126 {" hYZNAVsCent" , " hYZNAVsVx" , " hYZNAVsVy" , " hYZNAVsVz" },
125127 {" hXZNCVsCent" , " hXZNCVsVx" , " hXZNCVsVy" , " hXZNCVsVz" },
126128 {" hYZNCVsCent" , " hYZNCVsVx" , " hYZNCVsVy" , " hYZNCVsVz" }};
127- std::map<CorrectionType, std::vector<std::vector<string>>> corrTypeHistNameMap = {{kFineCorr , vFineCorrHistNames}, {kCoarseCorr , vCoarseCorrHistNames}};
129+ std::map<CorrectionType, std::vector<std::vector<std:: string>>> corrTypeHistNameMap = {{kFineCorr , vFineCorrHistNames}, {kCoarseCorr , vCoarseCorrHistNames}};
128130
129131 void init (InitContext const &)
130132 {
@@ -135,7 +137,7 @@ struct FlowEventPlane {
135137 // Define axes
136138 const AxisSpec axisZDCEnergy{1000 , 0 , 5000 , " ZD[AC] Signal" };
137139
138- const AxisSpec axisCent{10 , 0 ., 100 , " FT0C%" };
140+ const AxisSpec axisCent{100 , 0 ., 100 , " FT0C%" };
139141 const AxisSpec axisVx{cAxisVxyBins, cAxisVxMin, cAxisVxMax, " V_{X}(cm)" };
140142 const AxisSpec axisVy{cAxisVxyBins, cAxisVyMin, cAxisVyMax, " V_{Y}(cm)" };
141143 const AxisSpec axisVz{cAxisVzBins, cMinZVtx, cMaxZVtx, " V_{Z}(cm)" };
@@ -205,6 +207,8 @@ struct FlowEventPlane {
205207 histos.add (" CorrHist/hYZNCVsVz" , " Y^{ZNC}_{1} Vs V_{z}" , kTProfile , {axisFineVz});
206208 histos.add (" Checks/hPsiSPA" , " #Psi_{SP}^{A} distribution" , kTH2F , {axisCent, axisPsi});
207209 histos.add (" Checks/hPsiSPC" , " #Psi_{SP}^{C} distribution" , kTH2F , {axisCent, axisPsi});
210+ histos.add (" Checks/hCosPsiSPAC" , " Cos(#Psi_{SP}^{A} #minus #Psi_{SP}^{C}) distribution" , kTProfile , {axisCent});
211+ histos.add (" Checks/hSinPsiSPAC" , " Sin(#Psi_{SP}^{A} #minus #Psi_{SP}^{C}) distribution" , kTProfile , {axisCent});
208212 histos.add (" Checks/hXaXc" , " X^{ZNC}_{1} Vs X^{ZNA}_{1}" , kTProfile , {axisCent});
209213 histos.add (" Checks/hYaYc" , " Y^{ZNC}_{1} Vs Y^{ZNA}_{1}" , kTProfile , {axisCent});
210214 histos.add (" TrackQA/hPtDcaXY" , " DCA_{XY} vs p_{T}" , kTH2F , {axisTrackPt, axisTrackDcaXY});
@@ -232,6 +236,10 @@ struct FlowEventPlane {
232236 return false ;
233237 }
234238
239+ if (col.ft0cOccupancyInTimeRange () < cMinOccupancy || col.ft0cOccupancyInTimeRange () > cMaxOccupancy) { // Occupancy cut
240+ return false ;
241+ }
242+
235243 if (cTriggerTvxSel && !col.selection_bit (aod::evsel::kIsTriggerTVX )) { // Time and Vertex trigger
236244 return false ;
237245 }
@@ -318,7 +326,7 @@ struct FlowEventPlane {
318326 std::vector<int > vCorrFlags = static_cast <std::vector<int >>(cCorrFlagVector);
319327 int nitr = vCorrFlags.size ();
320328 CorrectionType corrType = kFineCorr ;
321- string ccdbPath;
329+ std:: string ccdbPath;
322330
323331 for (int i = 0 ; i < nitr; ++i) {
324332 // Don't correct if corrFlag != 1
@@ -475,13 +483,17 @@ struct FlowEventPlane {
475483
476484 // Fill X and Y histograms
477485 fillCorrHist (vCollParam, vSP);
486+ float psiA = std::atan2 (vSP[kYa ], vSP[kXa ]);
487+ float psiC = std::atan2 (vSP[kYa ], vSP[kXa ]);
478488 histos.fill (HIST (" Checks/hXaXc" ), cent, (vSP[kXa ] * vSP[kXc ]));
479489 histos.fill (HIST (" Checks/hYaYc" ), cent, (vSP[kYa ] * vSP[kYc ]));
480- histos.fill (HIST (" Checks/hPsiSPA" ), cent, std::atan2 (vSP[kYa ], vSP[kXa ]));
481- histos.fill (HIST (" Checks/hPsiSPC" ), cent, std::atan2 (vSP[kYc ], vSP[kXc ]));
490+ histos.fill (HIST (" Checks/hPsiSPA" ), cent, psiA);
491+ histos.fill (HIST (" Checks/hPsiSPC" ), cent, psiC);
492+ histos.fill (HIST (" Checks/hCosPsiSPAC" ), cent, std::cos (psiA - psiC));
493+ histos.fill (HIST (" Checks/hSinPsiSPAC" ), cent, std::sin (psiA - psiC));
482494
483495 // Directed flow
484- float qac = vSP[kXa ] * vSP[kXc ] + vSP[kYa ] * vSP[kYc ];
496+ float qac = ( vSP[kXa ] * vSP[kXc ]) + ( vSP[kYa ] * vSP[kYc ]) ;
485497 histos.fill (HIST (" DF/hQaQc" ), cent, qac);
486498
487499 // Loop over tracks
0 commit comments