Skip to content

Commit baf2e8b

Browse files
Preet-BhanjanPreet Pati
andauthored
[PWGCF] Modified method for flow container and correlator (#11267)
Co-authored-by: Preet Pati <preet@preet-2.local>
1 parent 95c7add commit baf2e8b

File tree

1 file changed

+60
-139
lines changed

1 file changed

+60
-139
lines changed

PWGCF/Flow/Tasks/flowPbpbPikp.cxx

Lines changed: 60 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
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+
6473
struct 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

Comments
 (0)