4646#include " PWGCF/GenericFramework/Core/FlowContainer.h"
4747#include " PWGCF/GenericFramework/Core/GFWWeights.h"
4848#include " PWGCF/GenericFramework/Core/GFWWeightsList.h"
49+ #include " PWGCF/GenericFramework/Core/GFWConfig.h"
4950
5051#include " ReconstructionDataFormats/Track.h"
5152#include " ReconstructionDataFormats/PID.h"
@@ -61,6 +62,14 @@ using namespace std;
6162
6263#define O2_DEFINE_CONFIGURABLE (NAME, TYPE, DEFAULT, HELP ) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
6364
65+ namespace o2 ::analysis::genericframework
66+ {
67+ GFWRegions regions;
68+ GFWCorrConfigs configs;
69+ } // namespace o2::analysis::genericframework
70+
71+ using namespace o2 ::analysis::genericframework;
72+
6473struct FlowPbpbPikp {
6574 Service<ccdb::BasicCCDBManager> ccdb;
6675 Configurable<int64_t > noLaterThan{" noLaterThan" , std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count (), " latest acceptable timestamp of creation for the object" };
@@ -100,8 +109,10 @@ struct FlowPbpbPikp {
100109 Configurable<std::vector<double >> cfgTrackDensityP1{" cfgTrackDensityP1" , std::vector<double >{-2.169488e-05 , -2.191913e-05 , -2.295484e-05 , -2.556538e-05 , -2.754463e-05 , -2.816832e-05 , -2.846502e-05 , -2.843857e-05 , -2.705974e-05 , -2.477018e-05 , -2.321730e-05 , -2.203315e-05 , -2.109474e-05 }, " parameter 1 for track density efficiency correction" };
101110 Configurable<std::vector<double >> cfgTofNsigmaCut{" cfgTofNsigmaCut" , std::vector<double >{1.5 , 1.5 , 1.5 }, " TOF n-sigma cut for pions, kaons, protons" };
102111 Configurable<std::vector<double >> cfgItsNsigmaCut{" cfgItsNsigmaCut" , std::vector<double >{3 , 2.5 , 2 }, " ITS n-sigma cut for pions, kaons, protons" };
112+ Configurable<std::vector<int >> cfgUseEventCuts{" cfgUseEventCuts" , std::vector<int >{1 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 }, " Switch for various event cuts [kNoTimeFrameBorder, kNoITSROFrameBorder, kNoSameBunchPileup, kIsGoodZvtxFT0vsPV, kNoCollInTimeRangeStandard, kIsGoodITSLayersAll, kNoCollInRofStandard, kNoHighMultCollInPrevRof, Occupancy, Multiplicity correlation, T0AV0A 3 sigma cut, kIsVertexITSTPC, kTVXinTRD]" };
103113
104- Configurable<std::vector<int >> cfgUseEventCuts{" cfgUseEventCuts" , std::vector<int >{1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 }, " Switch for various event cuts [kNoTimeFrameBorder, kNoITSROFrameBorder, kNoSameBunchPileup, kIsGoodZvtxFT0vsPV, kNoCollInTimeRangeStandard, kIsGoodITSLayersAll, kNoCollInRofStandard, kNoHighMultCollInPrevRof, Occupancy, Multiplicity correlation, T0AV0A 3 sigma cut, kIsVertexITSTPC, kTVXinTRD]" };
114+ Configurable<GFWRegions> cfgRegions{" cfgRegions" , {{" refN08" , " refP08" , " full" , " poiN" , " olN" , " poiP" , " olP" , " poi" , " ol" , " poiNpi" , " olNpi" , " poiPpi" , " olPpi" , " poifullpi" , " olfullpi" , " poiNka" , " olNka" , " poiPka" , " olPka" , " poifullka" , " olfullka" , " poiNpr" , " olNpr" , " poiPpr" , " olPpr" , " poifullpr" , " olfullpr" }, {-0.8 , 0.4 , -0.8 , -0.8 , -0.8 , 0.4 , 0.4 , -0.8 , -0.8 , -0.8 , -0.8 , 0.4 , 0.4 , -0.8 , -0.8 , -0.8 , -0.8 , 0.4 , 0.4 , -0.8 , -0.8 , -0.8 , -0.8 , 0.4 , 0.4 , -0.8 , -0.8 }, {-0.4 , 0.8 , 0.8 , -0.4 , -0.4 , 0.8 , 0.8 , 0.8 , 0.8 , -0.4 , -0.4 , 0.8 , 0.8 , 0.8 , 0.8 , -0.4 , -0.4 , 0.8 , 0.8 , 0.8 , 0.8 , -0.4 , -0.4 , 0.8 , 0.8 , 0.8 , 0.8 }, {0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 }, {1 , 1 , 1 , 128 , 256 , 128 , 256 , 128 , 256 , 2 , 16 , 2 , 16 , 2 , 16 , 4 , 32 , 4 , 32 , 4 , 32 , 8 , 64 , 8 , 64 , 8 , 64 }}, " Configurations for GFW regions" };
115+ Configurable<GFWCorrConfigs> cfgCorrConfig{"cfgCorrConfig", {{"full {2 -2}", "full {2 -2}", "full {2 -2}", "full {2 -2}", "refN08 {2} refP08 {-2}", "refN08 {2} refP08 {-2}", "refN08 {2} refP08 {-2}", "refN08 {2} refP08 {-2}", "refP08 {-2} refN08 {2}", "refP08 {-2} refN08 {2}", "refP08 {-2} refN08 {2}", "refP08 {-2} refN08 {2}", "full {2 2 -2 -2}", "full {2 2 -2 -2}", "full {2 2 -2 -2}", "full {2 2 -2 -2}", "poi full | ol {2 -2}", "poifullpi full | olfullpi {2 -2}", "poifullka full | olfullka {2 -2}", "poifullpr full | olfullpr {2 -2}", "poiN refN08 | olN {2} refP08 {-2}", "poiNpi refN08 | olNpi {2} refP08 {-2}", "poiNka refN08 | olNka {2} refP08 {-2}", "poiNpr refN08 | olNpr {2} refP08 {-2}", "poiP refP08 | olP {2} refN08 {-2}", "poiPpi refP08 | olPpi {2} refN08 {-2}", "poiPka refP08 | olPka {2} refN08 {-2}", "poiPpr refP08 | olPpr {2} refN08 {-2}", "poi full | ol {2 2 -2 -2}", "poifullpi full | olfullpi {2 2 -2 -2}", "poifullka full | olfullka {2 2 -2 -2}", "poifullpr full | olfullpr {2 2 -2 -2}", "refN08 {2 2} refP08 {-2 -2}", "refP08 {-2 -2} refN08 {2 2}", "poiNka refN08 | olNka {2 2} refP08 {-2 -2}", "poiPka refP08 | olPka {2 2} refN08 {-2 -2}"}, {"ChFull22", "PiFull22", "KaFull22", "PrFull22", "Ch08FGap22", "Pi08FGap22", "Ka08FGap22", "Pr08FGap22", "Ch08BGap22", "Pi08BGap22", "Ka08BGap22", "Pr08BGap22", "ChFull24", "PiFull24", "KaFull24", "PrFull24", "ChFull22", "PiFull22", "KaFull22", "PrFull22", "Ch08FGap22", "Pi08FGap22", "Ka08FGap22", "Pr08FGap22", "Ch08BGap22", "Pi08BGap22", "Ka08BGap22", "Pr08BGap22", "ChFull24", "PiFull24", "KaFull24", "PrFull24", "Ka08FGap24", "Ka08BGap24", "Ka08FGap24", "Ka08BGap24"}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1}}, "Configurations for each correlation to calculate"};
105116
106117 ConfigurableAxis axisVertex{" axisVertex" , {20 , -10 , 10 }, " vertex axis for histograms" };
107118 ConfigurableAxis axisPhi{" axisPhi" , {60 , 0.0 , constants::math::TwoPI}, " phi axis for histograms" };
@@ -156,7 +167,8 @@ struct FlowPbpbPikp {
156167 useTVXinTRD
157168 };
158169
159- std::vector<int > eventCuts = cfgUseEventCuts;
170+ std::vector<int > fintEvCuts = cfgUseEventCuts;
171+ std::vector<bool > eventCuts;
160172
161173 int lastRunNumer = -1 ;
162174 std::vector<int > runNumbers;
@@ -185,6 +197,22 @@ struct FlowPbpbPikp {
185197 ccdb->setCaching (true );
186198 ccdb->setCreatedNotAfter (noLaterThan.value );
187199
200+ // Transforming event cuts from int to bool
201+ for (int i = 0 ; i < static_cast <int >(fintEvCuts.size ()); i++) {
202+ eventCuts.push_back (static_cast <bool >(fintEvCuts[i]));
203+ }
204+
205+ regions.SetNames (cfgRegions->GetNames ());
206+ regions.SetEtaMin (cfgRegions->GetEtaMin ());
207+ regions.SetEtaMax (cfgRegions->GetEtaMax ());
208+ regions.SetpTDifs (cfgRegions->GetpTDifs ());
209+ regions.SetBitmasks (cfgRegions->GetBitmasks ());
210+ configs.SetCorrs (cfgCorrConfig->GetCorrs ());
211+ configs.SetHeads (cfgCorrConfig->GetHeads ());
212+ configs.SetpTDifs (cfgCorrConfig->GetpTDifs ());
213+ regions.Print ();
214+ configs.Print ();
215+
188216 histos.add (" hVtxZ" , " " , {HistType::kTH1D , {axisVertex}});
189217 histos.add (" hMult" , " " , {HistType::kTH1D , {{3000 , 0.5 , 3000.5 }}});
190218 histos.add (" hCent" , " " , {HistType::kTH1D , {{90 , 0 , 90 }}});
@@ -272,150 +300,28 @@ struct FlowPbpbPikp {
272300 double * ptBins = &(axis.binEdges )[0 ];
273301 fPtAxis = new TAxis (nPtBins, ptBins);
274302
303+ // Defining the regions
304+ for (auto i (0 ); i < regions.GetSize (); ++i) {
305+ fGFW ->AddRegion (regions.GetNames ()[i], regions.GetEtaMin ()[i], regions.GetEtaMax ()[i], (regions.GetpTDifs ()[i]) ? nPtBins + 1 : 1 , regions.GetBitmasks ()[i]);
306+ }
307+
308+ // Defining the correlators
309+ for (auto i = 0 ; i < configs.GetSize (); ++i) {
310+ corrconfigs.push_back (fGFW ->GetCorrelatorConfig (configs.GetCorrs ()[i], configs.GetHeads ()[i], configs.GetpTDifs ()[i]));
311+ }
312+ if (corrconfigs.empty ())
313+ LOGF (error, " Configuration contains vectors of different size - check the GFWCorrConfig configurable" );
314+ fGFW ->CreateRegions ();
315+
316+ // Defining the flow container
275317 TObjArray* oba = new TObjArray ();
276- oba->Add (new TNamed (" ChFull22" , " ChFull22" ));
277- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
278- oba->Add (new TNamed (Form (" ChFull22_pt_%i" , i + 1 ), " ChFull22_pTDiff" ));
279- oba->Add (new TNamed (" PiFull22" , " PiFull22" ));
280- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
281- oba->Add (new TNamed (Form (" PiFull22_pt_%i" , i + 1 ), " PiFull22_pTDiff" ));
282- oba->Add (new TNamed (" KaFull22" , " KaFull22" ));
283- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
284- oba->Add (new TNamed (Form (" KaFull22_pt_%i" , i + 1 ), " KaFull22_pTDiff" ));
285- oba->Add (new TNamed (" PrFull22" , " PrFull22" ));
286- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
287- oba->Add (new TNamed (Form (" PrFull22_pt_%i" , i + 1 ), " PrFull22_pTDiff" ));
288-
289- oba->Add (new TNamed (" Ch08FGap22" , " Ch08FGap22" ));
290- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
291- oba->Add (new TNamed (Form (" Ch08FGap22_pt_%i" , i + 1 ), " Ch08FGap22_pTDiff" ));
292- oba->Add (new TNamed (" Pi08FGap22" , " Pi08FGap22" ));
293- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
294- oba->Add (new TNamed (Form (" Pi08FGap22_pt_%i" , i + 1 ), " Pi08FGap22_pTDiff" ));
295- oba->Add (new TNamed (" Ka08FGap22" , " Ka08FGap22" ));
296- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
297- oba->Add (new TNamed (Form (" Ka08FGap22_pt_%i" , i + 1 ), " Ka08FGap22_pTDiff" ));
298- oba->Add (new TNamed (" Pr08FGap22" , " Pr08FGap22" ));
299- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
300- oba->Add (new TNamed (Form (" Pr08FGap22_pt_%i" , i + 1 ), " Pr08FGap22_pTDiff" ));
301-
302- oba->Add (new TNamed (" ChFull24" , " ChFull24" ));
303- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
304- oba->Add (new TNamed (Form (" ChFull24_pt_%i" , i + 1 ), " ChFull24_pTDiff" ));
305- oba->Add (new TNamed (" PiFull24" , " PiFull24" ));
306- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
307- oba->Add (new TNamed (Form (" PiFull24_pt_%i" , i + 1 ), " PiFull24_pTDiff" ));
308- oba->Add (new TNamed (" KaFull24" , " KaFull24" ));
309- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
310- oba->Add (new TNamed (Form (" KaFull24_pt_%i" , i + 1 ), " KaFull24_pTDiff" ));
311- oba->Add (new TNamed (" PrFull24" , " PrFull24" ));
312- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
313- oba->Add (new TNamed (Form (" PrFull24_pt_%i" , i + 1 ), " PrFull24_pTDiff" ));
314-
315- oba->Add (new TNamed (" Ch08BGap22" , " Ch08BGap22" ));
316- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
317- oba->Add (new TNamed (Form (" Ch08BGap22_pt_%i" , i + 1 ), " Ch08BGap22_pTDiff" ));
318- oba->Add (new TNamed (" Pi08BGap22" , " Pi08BGap22" ));
319- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
320- oba->Add (new TNamed (Form (" Pi08BGap22_pt_%i" , i + 1 ), " Pi08BGap22_pTDiff" ));
321- oba->Add (new TNamed (" Ka08BGap22" , " Ka08BGap22" ));
322- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
323- oba->Add (new TNamed (Form (" Ka08BGap22_pt_%i" , i + 1 ), " Ka08BGap22_pTDiff" ));
324- oba->Add (new TNamed (" Pr08BGap22" , " Pr08BGap22" ));
325- for (int i = 0 ; i < fPtAxis ->GetNbins (); i++)
326- oba->Add (new TNamed (Form (" Pr08BGap22_pt_%i" , i + 1 ), " Pr08BGap22_pTDiff" ));
318+ addConfigObjectsToObjArray (oba, corrconfigs);
327319
328320 fFC ->SetName (" FlowContainer" );
329321 fFC ->SetXAxis (fPtAxis );
330322 fFC ->Initialize (oba, axisMultiplicity, cfgNbootstrap);
331323 delete oba;
332324
333- // reference particles
334- fGFW ->AddRegion (" refN08" , -0.8 , -0.4 , 1 , 1 );
335- fGFW ->AddRegion (" refP08" , 0.4 , 0.8 , 1 , 1 );
336- fGFW ->AddRegion (" full" , -0.8 , 0.8 , 1 , 1 );
337-
338- // pt dependent charged particles
339- fGFW ->AddRegion (" poiN" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 128 ); // Negative poi eta range
340- fGFW ->AddRegion (" olN" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 256 ); // Negative overlap eta range
341-
342- fGFW ->AddRegion (" poiP" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 128 ); // Positive poi eta range
343- fGFW ->AddRegion (" olP" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 256 ); // Positive overlap eta range
344-
345- fGFW ->AddRegion (" poi" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 128 ); // Full poi eta range
346- fGFW ->AddRegion (" ol" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 256 ); // Full overlap eta range
347-
348- // pion
349- fGFW ->AddRegion (" poiNpi" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 2 ); // Negative poi eta range
350- fGFW ->AddRegion (" olNpi" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 16 ); // Negative overlap eta range
351-
352- fGFW ->AddRegion (" poiPpi" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 2 ); // Positive poi eta range
353- fGFW ->AddRegion (" olPpi" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 16 ); // Positive overlap eta range
354-
355- fGFW ->AddRegion (" poifullpi" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 2 ); // Full poi eta range
356- fGFW ->AddRegion (" olfullpi" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 16 ); // Full overlap eta range
357-
358- // kaon
359- fGFW ->AddRegion (" poiNk" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 4 ); // Negative poi eta range
360- fGFW ->AddRegion (" olNk" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 32 ); // Negative overlap eta range
361-
362- fGFW ->AddRegion (" poiPk" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 4 ); // Positive poi eta range
363- fGFW ->AddRegion (" olPk" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 32 ); // Positive overlap eta range
364-
365- fGFW ->AddRegion (" poifullk" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 4 ); // Full poi eta range
366- fGFW ->AddRegion (" olfullk" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 32 ); // Full overlap eta range
367-
368- // proton
369- fGFW ->AddRegion (" poiNpr" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 8 ); // Negative poi eta range
370- fGFW ->AddRegion (" olNpr" , -0.8 , -0.4 , 1 + fPtAxis ->GetNbins (), 64 ); // Negative overlap eta range
371-
372- fGFW ->AddRegion (" poiPpr" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 8 ); // Positive poi eta range
373- fGFW ->AddRegion (" olPpr" , 0.4 , 0.8 , 1 + fPtAxis ->GetNbins (), 64 ); // Positive overlap eta range
374-
375- fGFW ->AddRegion (" poifullpr" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 8 ); // Full poi eta range
376- fGFW ->AddRegion (" olfullpr" , -0.8 , 0.8 , 1 + fPtAxis ->GetNbins (), 64 ); // Full overlap eta range
377-
378- // reference particles
379- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 -2}" , " ChFull22" , kFALSE ));
380- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 -2}" , " PiFull22" , kFALSE ));
381- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 -2}" , " KaFull22" , kFALSE ));
382- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 -2}" , " PrFull22" , kFALSE ));
383- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refN08 {2} refP08 {-2}" , " Ch08FGap22" , kFALSE )); // Forward correlations
384- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refN08 {2} refP08 {-2}" , " Pi08FGap22" , kFALSE )); // Forward correlations
385- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refN08 {2} refP08 {-2}" , " Ka08FGap22" , kFALSE )); // Forward correlations
386- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refN08 {2} refP08 {-2}" , " Pr08FGap22" , kFALSE )); // Forward correlations
387- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refP08 {-2} refN08 {2}" , " Ch08BGap22" , kFALSE )); // Backward correlations
388- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refP08 {-2} refN08 {2}" , " Pi08BGap22" , kFALSE )); // Backward correlations
389- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refP08 {-2} refN08 {2}" , " Ka08BGap22" , kFALSE )); // Backward correlations
390- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" refP08 {-2} refN08 {2}" , " Pr08BGap22" , kFALSE )); // Backward correlations
391- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 2 -2 -2}" , " ChFull24" , kFALSE ));
392- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 2 -2 -2}" , " PiFull24" , kFALSE ));
393- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 2 -2 -2}" , " KaFull24" , kFALSE ));
394- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" full {2 2 -2 -2}" , " PrFull24" , kFALSE ));
395-
396- // pt differential pois
397- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poi full | ol {2 -2}" , " ChFull22" , kTRUE ));
398- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullpi full | olfullpi {2 -2}" , " PiFull22" , kTRUE ));
399- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullk full | olfullk {2 -2}" , " KaFull22" , kTRUE ));
400- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullpr full | olfullpr {2 -2}" , " PrFull22" , kTRUE ));
401-
402- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiN refN08 | olN {2} refP08 {-2}" , " Ch08FGap22" , kTRUE )); // Forward correlations
403- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiNpi refN08 | olNpi {2} refP08 {-2}" , " Pi08FGap22" , kTRUE )); // Forward correlations
404- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiNk refN08 | olNk {2} refP08 {-2}" , " Ka08FGap22" , kTRUE )); // Forward correlations
405- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiNpr refN08 | olNpr {2} refP08 {-2}" , " Pr08FGap22" , kTRUE )); // Forward correlations
406-
407- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiP refP08 | olP {2} refN08 {-2}" , " Ch08BGap22" , kTRUE )); // Backward correlations
408- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiPpi refP08 | olPpi {2} refN08 {-2}" , " Pi08BGap22" , kTRUE )); // Backward correlations
409- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiPk refP08 | olPk {2} refN08 {-2}" , " Ka08BGap22" , kTRUE )); // Backward correlations
410- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poiPpr refP08 | olPpr {2} refN08 {-2}" , " Pr08BGap22" , kTRUE )); // Backward correlations
411-
412- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poi full | ol {2 2 -2 -2}" , " ChFull24" , kTRUE ));
413- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullpi full | olfullpi {2 2 -2 -2}" , " PiFull24" , kTRUE ));
414- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullk full | olfullk {2 2 -2 -2}" , " KaFull24" , kTRUE ));
415- corrconfigs.push_back (fGFW ->GetCorrelatorConfig (" poifullpr full | olfullpr {2 2 -2 -2}" , " PrFull24" , kTRUE ));
416-
417- fGFW ->CreateRegions ();
418-
419325 if (eventCuts[useMultCorrCut]) {
420326 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 );
421327 fMultPVCutLow ->SetParameters (3257.29 , -121.848 , 1.98492 , -0.0172128 , 6.47528e-05 , 154.756 , -1.86072 , -0.0274713 , 0.000633499 , -3.37757e-06 );
@@ -460,6 +366,21 @@ struct FlowPbpbPikp {
460366 PROTONS
461367 };
462368
369+ void addConfigObjectsToObjArray (TObjArray* oba, const std::vector<GFW::CorrConfig>& configs)
370+ {
371+ for (auto it = configs.begin (); it != configs.end (); ++it) {
372+ if (it->pTDif ) {
373+ std::string suffix = " _ptDiff" ;
374+ for (auto i = 0 ; i < fPtAxis ->GetNbins (); ++i) {
375+ std::string index = Form (" _pt_%i" , i + 1 );
376+ oba->Add (new TNamed (it->Head .c_str () + index, it->Head .c_str () + suffix));
377+ }
378+ } else {
379+ oba->Add (new TNamed (it->Head .c_str (), it->Head .c_str ()));
380+ }
381+ }
382+ }
383+
463384 template <typename TTrack>
464385 bool selectionTrack (const TTrack& track)
465386 {
0 commit comments