@@ -91,7 +91,6 @@ struct FlowGenericFramework {
9191 O2_DEFINE_CONFIGURABLE (cfgRunByRun, bool , false , " Fill histograms on a run-by-run basis" )
9292 O2_DEFINE_CONFIGURABLE (cfgFillQA, bool , false , " Fill QA histograms" )
9393 O2_DEFINE_CONFIGURABLE (cfgUseAdditionalEventCut, bool , false , " Use additional event cut on mult correlations" )
94- O2_DEFINE_CONFIGURABLE (cfgUseAdditionalTrackCut, bool , false , " Use additional track cut on phi" )
9594 O2_DEFINE_CONFIGURABLE (cfgUseCentralMoments, bool , true , " Use central moments in vn-pt calculations" )
9695 O2_DEFINE_CONFIGURABLE (cfgUsePID, bool , true , " Enable PID information" )
9796 O2_DEFINE_CONFIGURABLE (cfgUseGapMethod, bool , false , " Use gap method in vn-pt calculations" )
@@ -111,11 +110,11 @@ struct FlowGenericFramework {
111110 O2_DEFINE_CONFIGURABLE (cfgIsGoodITSLayersAll, bool , true , " kIsGoodITSLayersAll" );
112111 O2_DEFINE_CONFIGURABLE (cfgNoCollInTimeRangeStandard, bool , true , " kNoCollInTimeRangeStandard" );
113112 O2_DEFINE_CONFIGURABLE (cfgDoOccupancySel, bool , true , " Bool for event selection on detector occupancy" );
114- O2_DEFINE_CONFIGURABLE (cfgMultCut, bool , true , " Use additional evenr cut on mult correlations" );
113+ O2_DEFINE_CONFIGURABLE (cfgMultCut, bool , true , " Use additional event cut on mult correlations" );
115114 O2_DEFINE_CONFIGURABLE (cfgTVXinTRD, bool , true , " Use kTVXinTRD (reject TRD triggered events)" );
116115 O2_DEFINE_CONFIGURABLE (cfgIsVertexITSTPC, bool , true , " Selects collisions with at least one ITS-TPC track" );
117116 O2_DEFINE_CONFIGURABLE (cfgMagField, float , 99999 , " Configurable magnetic field; default CCDB will be queried" );
118- O2_DEFINE_CONFIGURABLE (cfgTofPtCut, float , 1.0 , " pt cut on TOF for PID" );
117+ O2_DEFINE_CONFIGURABLE (cfgTofPtCut, float , 0.5 , " pt cut on TOF for PID" );
119118
120119 Configurable<GFWBinningCuts> cfgGFWBinning{" cfgGFWBinning" , {40 , 16 , 72 , 300 , 0 , 3000 , 0.2 , 10.0 , 0.2 , 3.0 , {0.2 , 0.25 , 0.3 , 0.35 , 0.4 , 0.45 , 0.5 , 0.55 , 0.6 , 0.65 , 0.7 , 0.75 , 0.8 , 0.85 , 0.9 , 0.95 , 1 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 1.6 , 1.7 , 1.8 , 1.9 , 2 , 2.2 , 2.4 , 2.6 , 2.8 , 3 , 3.5 , 4 , 5 , 6 , 8 , 10 }, {0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 }}, " Configuration for binning" };
121120 Configurable<GFWRegions> cfgRegions{" cfgRegions" , {{" refN" , " refP" , " refFull" }, {-0.8 , 0.4 , -0.8 }, {-0.4 , 0.8 , 0.8 }, {0 , 0 , 0 }, {1 , 1 , 1 }}, " Configurations for GFW regions" };
@@ -207,7 +206,6 @@ struct FlowGenericFramework {
207206 cfgGFWBinning->Print ();
208207
209208 AxisSpec phiAxis = {phibins, philow, phiup, " #phi" };
210- AxisSpec phiModAxis = {100 , 0 , constants::math::PI / 9 , " fmod(#varphi,#pi/9)" };
211209 AxisSpec etaAxis = {etabins, -cfgEta, cfgEta, " #eta" };
212210 AxisSpec vtxAxis = {vtxZbins, -cfgVtxZ, cfgVtxZ, " Vtx_{z} (cm)" };
213211 AxisSpec ptAxis = {ptbinning, " #it{p}_{T} GeV/#it{c}" };
@@ -242,7 +240,6 @@ struct FlowGenericFramework {
242240 if (doprocessMCReco || doprocessData || doprocessRun2) {
243241 registry.add (" trackQA/before/phi_eta_vtxZ" , " " , {HistType::kTH3D , {phiAxis, etaAxis, vtxAxis}});
244242 registry.add (" trackQA/before/pt_dcaXY_dcaZ" , " " , {HistType::kTH3D , {ptAxis, dcaXYAXis, dcaZAXis}});
245- registry.add (" trackQA/before/pt_phi" , " " , {HistType::kTH2D , {ptAxis, phiModAxis}});
246243 registry.addClone (" trackQA/before/" , " trackQA/after/" );
247244 registry.add (" trackQA/after/pt_ref" , " " , {HistType::kTH1D , {{100 , ptreflow, ptrefup}}});
248245 registry.add (" trackQA/after/pt_poi" , " " , {HistType::kTH1D , {{100 , ptpoilow, ptpoiup}}});
@@ -310,20 +307,6 @@ struct FlowGenericFramework {
310307 fFCpt ->initialise (multAxis, cfgMpar, configs, cfgNbootstrap);
311308 // Event selection - Alex
312309 if (cfgUseAdditionalEventCut) {
313- /*
314- //22s cuts
315- fMultPVCutLow = new TF1("fMultPVCutLow", "[0]+[1]*x+[2]*x*x+[3]*x*x*x - 2.5*([4]+[5]*x+[6]*x*x+[7]*x*x*x+[8]*x*x*x*x)", 0, 100);
316- fMultPVCutLow->SetParameters(2834.66, -87.0127, 0.915126, -0.00330136, 332.513, -12.3476, 0.251663, -0.00272819, 1.12242e-05);
317- fMultPVCutHigh = new TF1("fMultPVCutHigh", "[0]+[1]*x+[2]*x*x+[3]*x*x*x + 2.5*([4]+[5]*x+[6]*x*x+[7]*x*x*x+[8]*x*x*x*x)", 0, 100);
318- fMultPVCutHigh->SetParameters(2834.66, -87.0127, 0.915126, -0.00330136, 332.513, -12.3476, 0.251663, -0.00272819, 1.12242e-05);
319-
320- fMultCutLow = new TF1("fMultCutLow", "[0]+[1]*x+[2]*x*x+[3]*x*x*x - 2.5*([4]+[5]*x)", 0, 100);
321- fMultCutLow->SetParameters(1893.94, -53.86, 0.502913, -0.0015122, 109.625, -1.19253);
322- fMultCutHigh = new TF1("fMultCutHigh", "[0]+[1]*x+[2]*x*x+[3]*x*x*x + 3.*([4]+[5]*x)", 0, 100);
323- fMultCutHigh->SetParameters(1893.94, -53.86, 0.502913, -0.0015122, 109.625, -1.19253);
324- fMultMultPVCut = new TF1("fMultMultPVCut", "[0]+[1]*x+[2]*x*x", 0, 5000);
325- fMultMultPVCut->SetParameters(-0.1, 0.785, -4.7e-05);
326- */
327310 fMultPVCutLow = new TF1 (" fMultPVCutLow" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x - 3.5*([5]+[6]*x+[7]*x*x+[8]*x*x*x+[9]*x*x*x*x)" , 0 , 100 );
328311 fMultPVCutLow ->SetParameters (3257.29 , -121.848 , 1.98492 , -0.0172128 , 6.47528e-05 , 154.756 , -1.86072 , -0.0274713 , 0.000633499 , -3.37757e-06 );
329312 fMultPVCutHigh = new TF1 (" fMultPVCutHigh" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x + 3.5*([5]+[6]*x+[7]*x*x+[8]*x*x*x+[9]*x*x*x*x)" , 0 , 100 );
@@ -334,11 +317,6 @@ struct FlowGenericFramework {
334317 fMultCutHigh = new TF1 (" fMultCutHigh" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x + 3.*([4]+[5]*x+[6]*x*x+[7]*x*x*x+[8]*x*x*x*x)" , 0 , 100 );
335318 fMultCutHigh ->SetParameters (1654.46 , -47.2379 , 0.449833 , -0.0014125 , 150.773 , -3.67334 , 0.0530503 , -0.000614061 , 3.15956e-06 );
336319 }
337-
338- if (cfgUseAdditionalTrackCut) {
339- fPhiCutLow = new TF1 (" fPhiCutLow" , " 0.06/x+pi/18.0-0.06" , 0 , 100 );
340- fPhiCutHigh = new TF1 (" fPhiCutHigh" , " 0.1/x+pi/18.0+0.06" , 0 , 100 );
341- }
342320 }
343321
344322 static constexpr std::string_view FillTimeName[] = {" before/" , " after/" };
@@ -543,44 +521,9 @@ struct FlowGenericFramework {
543521 if (cfgRunByRun)
544522 th1sList[run][hEventSel]->Fill (9.5 );
545523 }
546-
547- /* 22s
548- if (multNTracksPV < fMultPVCutLow->Eval(centrality))
549- return 0;
550- if (multNTracksPV > fMultPVCutHigh->Eval(centrality))
551- return 0;
552- if (multTrk < fMultCutLow->Eval(centrality))
553- return 0;
554- if (multTrk > fMultCutHigh->Eval(centrality))
555- return 0;
556- if (multTrk > fMultMultPVCut->Eval(multNTracksPV))
557- return 0;
558- */
559524 return 1 ;
560525 }
561526
562- template <typename TTrack>
563- bool trackSelected (TTrack track, const int & field)
564- {
565- double phimodn = track.phi ();
566- if (field < 0 ) // for negative polarity field
567- phimodn = TwoPI - phimodn;
568- if (track.sign () < 0 ) // for negative charge
569- phimodn = TwoPI - phimodn;
570- if (phimodn < 0 )
571- LOGF (warning, " phi < 0: %g" , phimodn);
572-
573- phimodn += PI / 18.0 ; // to center gap in the middle
574- phimodn = fmod (phimodn, PI / 9.0 );
575- if (cfgFillQA)
576- registry.fill (HIST (" trackQA/before/pt_phi" ), track.pt (), phimodn);
577- if (phimodn < fPhiCutHigh ->Eval (track.pt ()) && phimodn > fPhiCutLow ->Eval (track.pt ()))
578- return false ; // reject track
579- if (cfgFillQA)
580- registry.fill (HIST (" trackQA/after/pt_phi" ), track.pt (), phimodn);
581- return true ;
582- }
583-
584527 enum DataType {
585528 kReco ,
586529 kGen
@@ -700,7 +643,7 @@ struct FlowGenericFramework {
700643 }
701644
702645 template <DataType dt, typename TCollision, typename TTracks>
703- void processCollision (TCollision collision, TTracks tracks, const float & centrality, const int & field, const int & run)
646+ void processCollision (TCollision collision, TTracks tracks, const float & centrality, const int & run)
704647 {
705648 if (tracks.size () < 1 )
706649 return ;
@@ -719,14 +662,14 @@ struct FlowGenericFramework {
719662 fFCpt ->clearVector ();
720663 float lRandom = fRndm ->Rndm ();
721664 for (const auto & track : tracks) {
722- processTrack (track, vtxz, field, run);
665+ processTrack (track, vtxz, run);
723666 }
724667 if (!cfgFillWeights)
725668 fillOutputContainers<dt>((cfgUseNch) ? tracks.size () : centrality, lRandom);
726669 }
727670
728671 template <typename TTrack>
729- inline void processTrack (TTrack const & track, const float & vtxz, const int & field, const int & run)
672+ inline void processTrack (TTrack const & track, const float & vtxz, const int & run)
730673 {
731674 if constexpr (framework::has_type_v<aod::mctracklabel::McParticleId, typename TTrack::all_columns>) {
732675 if (track.mcParticleId () < 0 || !(track.has_mcParticle ()))
@@ -741,9 +684,6 @@ struct FlowGenericFramework {
741684 if (mcParticle.eta () < etalow || mcParticle.eta () > etaup || mcParticle.pt () < ptlow || mcParticle.pt () > ptup || track.tpcNClsFound () < cfgNcls)
742685 return ;
743686
744- if (cfgUseAdditionalTrackCut && !trackSelected (track, field))
745- return ;
746-
747687 int pidIndex = 0 ;
748688 if (cfgUsePID) {
749689 if (std::abs (mcParticle.pdgCode ()) == kPiPlus )
@@ -799,9 +739,6 @@ struct FlowGenericFramework {
799739 if (track.tpcNClsFound () < cfgNcls)
800740 return ;
801741
802- if (cfgUseAdditionalTrackCut && !trackSelected (track, field))
803- return ;
804-
805742 int pidIndex = 0 ;
806743 if (cfgUsePID) {
807744 // pid_index = getBayesPIDIndex(track);
@@ -868,11 +805,20 @@ struct FlowGenericFramework {
868805 if (withinPtNch && withinPtRef)
869806 fGFW ->Fill (track.eta (), fPtAxis ->FindBin (track.pt ()) - 1 , track.phi (), waccPOI, 32 );
870807 } else { // Analysing only integrated flow
808+ bool withinPtRef = (track.pt () > ptreflow && track.pt () < ptrefup);
809+ bool withinPtPOI = (track.pt () > ptpoilow && track.pt () < ptpoiup);
810+ if (!withinPtPOI && !withinPtRef)
811+ return ;
871812 double weff = (dt == kGen ) ? 1 . : getEfficiency (track);
872813 if (weff < 0 )
873814 return ;
874815 double wacc = (dt == kGen ) ? 1 . : getAcceptance (track, vtxz, 0 );
875- fGFW ->Fill (track.eta (), fPtAxis ->FindBin (track.pt ()) - 1 , track.phi (), weff * wacc, 1 );
816+ if (withinPtRef)
817+ fGFW ->Fill (track.eta (), fPtAxis ->FindBin (track.pt ()) - 1 , track.phi (), weff * wacc, 1 );
818+ if (withinPtPOI)
819+ fGFW ->Fill (track.eta (), fPtAxis ->FindBin (track.pt ()) - 1 , track.phi (), weff * wacc, 2 );
820+ if (withinPtRef && withinPtPOI)
821+ fGFW ->Fill (track.eta (), fPtAxis ->FindBin (track.pt ()) - 1 , track.phi (), weff * wacc, 4 );
876822 }
877823 return ;
878824 }
@@ -955,8 +901,7 @@ struct FlowGenericFramework {
955901 return ;
956902 if (cfgFillQA)
957903 fillEventQA<kAfter >(collision, tracks);
958- auto field = (cfgMagField == 99999 ) ? getMagneticField (bc.timestamp ()) : cfgMagField;
959- processCollision<kReco >(collision, tracks, centrality, field, run);
904+ processCollision<kReco >(collision, tracks, centrality, run);
960905 }
961906 PROCESS_SWITCH (FlowGenericFramework, processData, " Process analysis for non-derived data" , true );
962907
@@ -981,8 +926,7 @@ struct FlowGenericFramework {
981926
982927 if (!cfgFillWeights)
983928 loadCorrections (bc);
984- auto field = (cfgMagField == 99999 ) ? getMagneticField (bc.timestamp ()) : cfgMagField;
985- processCollision<kReco >(collision, tracks, centrality, field, run);
929+ processCollision<kReco >(collision, tracks, centrality, run);
986930 }
987931 PROCESS_SWITCH (FlowGenericFramework, processMCReco, " Process analysis for MC reconstructed events" , false );
988932
@@ -995,7 +939,7 @@ struct FlowGenericFramework {
995939 for (const auto & collision : collisions) {
996940 centrality = collision.centFT0C ();
997941 }
998- processCollision<kGen >(mcCollision, particles, centrality, - 999 , 0 );
942+ processCollision<kGen >(mcCollision, particles, centrality, 0 );
999943 }
1000944 PROCESS_SWITCH (FlowGenericFramework, processMCGen, " Process analysis for MC generated events" , false );
1001945
@@ -1013,8 +957,7 @@ struct FlowGenericFramework {
1013957 const auto centrality = collision.centRun2V0M ();
1014958 if (!cfgFillWeights)
1015959 loadCorrections (bc);
1016- auto field = (cfgMagField == 99999 ) ? getMagneticField (bc.timestamp ()) : cfgMagField;
1017- processCollision<kReco >(collision, tracks, centrality, field, run);
960+ processCollision<kReco >(collision, tracks, centrality, run);
1018961 }
1019962 PROCESS_SWITCH (FlowGenericFramework, processRun2, " Process analysis for Run 2 converted data" , false );
1020963};
0 commit comments