Skip to content

Commit f456028

Browse files
committed
add configurables for multiplicity correlations; dihadron roll back to wo PID
1 parent 8ea3701 commit f456028

File tree

2 files changed

+119
-125
lines changed

2 files changed

+119
-125
lines changed

PWGCF/Flow/Tasks/flowTask.cxx

Lines changed: 61 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,23 @@ struct FlowTask {
110110
Configurable<std::vector<std::string>> cfgUserDefineGFWName{"cfgUserDefineGFWName", std::vector<std::string>{"Ch02Gap22", "Ch12Gap22"}, "User defined GFW Name"};
111111
Configurable<GFWCorrConfigs> cfgUserPtVnCorrConfig{"cfgUserPtVnCorrConfig", {{"refP {2} refN {-2}", "refP {3} refN {-3}"}, {"ChGap22", "ChGap32"}, {0, 0}, {3, 3}}, "Configurations for vn-pt correlations"};
112112
Configurable<std::vector<int>> cfgRunRemoveList{"cfgRunRemoveList", std::vector<int>{-1}, "excluded run numbers"};
113-
Configurable<std::vector<double>> cfgTrackDensityP0{"cfgTrackDensityP0", std::vector<double>{0.7217476707, 0.7384792571, 0.7542625668, 0.7640680200, 0.7701951667, 0.7755299053, 0.7805901710, 0.7849446786, 0.7957356586, 0.8113039262, 0.8211968966, 0.8280558878, 0.8329342135}, "parameter 0 for track density efficiency correction"};
114-
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"};
113+
struct : ConfigurableGroup {
114+
Configurable<std::vector<double>> cfgTrackDensityP0{"cfgTrackDensityP0", std::vector<double>{0.7217476707, 0.7384792571, 0.7542625668, 0.7640680200, 0.7701951667, 0.7755299053, 0.7805901710, 0.7849446786, 0.7957356586, 0.8113039262, 0.8211968966, 0.8280558878, 0.8329342135}, "parameter 0 for track density efficiency correction"};
115+
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"};
116+
O2_DEFINE_CONFIGURABLE(cfgMultCentHighCutFunction, std::string, "[0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x + 10.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)", "Functional for multiplicity correlation cut");
117+
O2_DEFINE_CONFIGURABLE(cfgMultCentLowCutFunction, std::string, "[0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x - 3.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)", "Functional for multiplicity correlation cut");
118+
O2_DEFINE_CONFIGURABLE(cfgMultT0CCutEnabled, bool, false, "Enable Global multiplicity vs T0C centrality cut")
119+
Configurable<std::vector<double>> cfgMultT0CCutPars{"cfgMultT0CCutPars", std::vector<double>{143.04, -4.58368, 0.0766055, -0.000727796, 2.86153e-06, 23.3108, -0.36304, 0.00437706, -4.717e-05, 1.98332e-07}, "Global multiplicity vs T0C centrality cut parameter values"};
120+
O2_DEFINE_CONFIGURABLE(cfgMultPVT0CCutEnabled, bool, false, "Enable PV multiplicity vs T0C centrality cut")
121+
Configurable<std::vector<double>> cfgMultPVT0CCutPars{"cfgMultPVT0CCutPars", std::vector<double>{195.357, -6.15194, 0.101313, -0.000955828, 3.74793e-06, 30.0326, -0.43322, 0.00476265, -5.11206e-05, 2.13613e-07}, "PV multiplicity vs T0C centrality cut parameter values"};
122+
O2_DEFINE_CONFIGURABLE(cfgMultMultHighCutFunction, std::string, "[0]+[1]*x + 5.*([2]+[3]*x)", "Functional for multiplicity correlation cut");
123+
O2_DEFINE_CONFIGURABLE(cfgMultMultLowCutFunction, std::string, "[0]+[1]*x - 5.*([2]+[3]*x)", "Functional for multiplicity correlation cut");
124+
O2_DEFINE_CONFIGURABLE(cfgMultGlobalPVCutEnabled, bool, false, "Enable global multiplicity vs PV multiplicity cut")
125+
Configurable<std::vector<double>> cfgMultGlobalPVCutPars{"cfgMultGlobalPVCutPars", std::vector<double>{-0.140809, 0.734344, 2.77495, 0.0165935}, "PV multiplicity vs T0C centrality cut parameter values"};
126+
std::vector<double> multT0CCutPars;
127+
std::vector<double> multPVT0CCutPars;
128+
std::vector<double> multGlobalPVCutPars;
129+
} cfgFuncParas;
115130

116131
ConfigurableAxis axisPtHist{"axisPtHist", {100, 0., 10.}, "pt axis for histograms"};
117132
ConfigurableAxis axisPt{"axisPt", {VARIABLE_WIDTH, 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}, "pt axis for histograms"};
@@ -184,10 +199,12 @@ struct FlowTask {
184199
TF1* funcV4;
185200

186201
// Additional Event selection cuts - Copy from flowGenericFramework.cxx
187-
TF1* fMultPVCutLow = nullptr;
188-
TF1* fMultPVCutHigh = nullptr;
189-
TF1* fMultCutLow = nullptr;
190-
TF1* fMultCutHigh = nullptr;
202+
TF1* fMultPVT0CCutLow = nullptr;
203+
TF1* fMultPVT0CCutHigh = nullptr;
204+
TF1* fMultT0CCutLow = nullptr;
205+
TF1* fMultT0CCutHigh = nullptr;
206+
TF1* fMultGlobalPVCutLow = nullptr;
207+
TF1* fMultGlobalPVCutHigh = nullptr;
191208
TF1* fT0AV0AMean = nullptr;
192209
TF1* fT0AV0ASigma = nullptr;
193210

@@ -448,16 +465,24 @@ struct FlowTask {
448465
}
449466
fGFW->CreateRegions();
450467

451-
if (cfgUseAdditionalEventCut) {
452-
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);
453-
fMultPVCutLow->SetParameters(3257.29, -121.848, 1.98492, -0.0172128, 6.47528e-05, 154.756, -1.86072, -0.0274713, 0.000633499, -3.37757e-06);
454-
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);
455-
fMultPVCutHigh->SetParameters(3257.29, -121.848, 1.98492, -0.0172128, 6.47528e-05, 154.756, -1.86072, -0.0274713, 0.000633499, -3.37757e-06);
456-
457-
fMultCutLow = new TF1("fMultCutLow", "[0]+[1]*x+[2]*x*x+[3]*x*x*x - 2.*([4]+[5]*x+[6]*x*x+[7]*x*x*x+[8]*x*x*x*x)", 0, 100);
458-
fMultCutLow->SetParameters(1654.46, -47.2379, 0.449833, -0.0014125, 150.773, -3.67334, 0.0530503, -0.000614061, 3.15956e-06);
459-
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);
460-
fMultCutHigh->SetParameters(1654.46, -47.2379, 0.449833, -0.0014125, 150.773, -3.67334, 0.0530503, -0.000614061, 3.15956e-06);
468+
if (cfgEvSelMultCorrelation) {
469+
cfgFuncParas.multT0CCutPars = cfgFuncParas.cfgMultT0CCutPars;
470+
cfgFuncParas.multPVT0CCutPars = cfgFuncParas.cfgMultPVT0CCutPars;
471+
cfgFuncParas.multGlobalPVCutPars = cfgFuncParas.cfgMultGlobalPVCutPars;
472+
fMultPVT0CCutLow = new TF1("fMultPVT0CCutLow", cfgFuncParas.cfgMultCentLowCutFunction->c_str(), 0, 100);
473+
fMultPVT0CCutLow->SetParameters(&(cfgFuncParas.multPVT0CCutPars[0]));
474+
fMultPVT0CCutHigh = new TF1("fMultPVT0CCutHigh", cfgFuncParas.cfgMultCentHighCutFunction->c_str(), 0, 100);
475+
fMultPVT0CCutHigh->SetParameters(&(cfgFuncParas.multPVT0CCutPars[0]));
476+
477+
fMultT0CCutLow = new TF1("fMultT0CCutLow", cfgFuncParas.cfgMultCentLowCutFunction->c_str(), 0, 100);
478+
fMultT0CCutLow->SetParameters(&(cfgFuncParas.multT0CCutPars[0]));
479+
fMultT0CCutHigh = new TF1("fMultT0CCutHigh", cfgFuncParas.cfgMultCentHighCutFunction->c_str(), 0, 100);
480+
fMultT0CCutHigh->SetParameters(&(cfgFuncParas.multT0CCutPars[0]));
481+
482+
fMultGlobalPVCutLow = new TF1("fMultGlobalPVCutLow", cfgFuncParas.cfgMultMultLowCutFunction->c_str(), 0, 4000);
483+
fMultGlobalPVCutLow->SetParameters(&(cfgFuncParas.multGlobalPVCutPars[0]));
484+
fMultGlobalPVCutHigh = new TF1("fMultGlobalPVCutHigh", cfgFuncParas.cfgMultMultHighCutFunction->c_str(), 0, 4000);
485+
fMultGlobalPVCutHigh->SetParameters(&(cfgFuncParas.multGlobalPVCutPars[0]));
461486

462487
fT0AV0AMean = new TF1("fT0AV0AMean", "[0]+[1]*x", 0, 200000);
463488
fT0AV0AMean->SetParameters(-1601.0581, 9.417652e-01);
@@ -470,8 +495,8 @@ struct FlowTask {
470495
hFindPtBin = new TH1D("hFindPtBin", "hFindPtBin", pTEffBins.size() - 1, &pTEffBins[0]);
471496
funcEff.resize(pTEffBins.size() - 1);
472497
// LHC24g3 Eff
473-
std::vector<double> f1p0 = cfgTrackDensityP0;
474-
std::vector<double> f1p1 = cfgTrackDensityP1;
498+
std::vector<double> f1p0 = cfgFuncParas.cfgTrackDensityP0;
499+
std::vector<double> f1p1 = cfgFuncParas.cfgTrackDensityP1;
475500
for (uint ifunc = 0; ifunc < pTEffBins.size() - 1; ifunc++) {
476501
funcEff[ifunc] = new TF1(Form("funcEff%i", ifunc), "[0]+[1]*x", 0, 3000);
477502
funcEff[ifunc]->SetParameters(f1p0[ifunc], f1p1[ifunc]);
@@ -656,14 +681,24 @@ struct FlowTask {
656681
registry.fill(HIST("hEventCountSpecific"), 9.5);
657682

658683
if (cfgEvSelMultCorrelation) {
659-
if (multNTracksPV < fMultPVCutLow->Eval(centrality))
660-
return 0;
661-
if (multNTracksPV > fMultPVCutHigh->Eval(centrality))
662-
return 0;
663-
if (multTrk < fMultCutLow->Eval(centrality))
664-
return 0;
665-
if (multTrk > fMultCutHigh->Eval(centrality))
666-
return 0;
684+
if (cfgFuncParas.cfgMultPVT0CCutEnabled) {
685+
if (multNTracksPV < fMultPVT0CCutLow->Eval(centrality))
686+
return 0;
687+
if (multNTracksPV > fMultPVT0CCutHigh->Eval(centrality))
688+
return 0;
689+
}
690+
if (cfgFuncParas.cfgMultT0CCutEnabled) {
691+
if (multTrk < fMultT0CCutLow->Eval(centrality))
692+
return 0;
693+
if (multTrk > fMultT0CCutHigh->Eval(centrality))
694+
return 0;
695+
}
696+
if (cfgFuncParas.cfgMultGlobalPVCutEnabled) {
697+
if (multTrk < fMultGlobalPVCutLow->Eval(multNTracksPV))
698+
return 0;
699+
if (multTrk > fMultGlobalPVCutHigh->Eval(multNTracksPV))
700+
return 0;
701+
}
667702
}
668703
if (cfgEvSelMultCorrelation)
669704
registry.fill(HIST("hEventCountSpecific"), 10.5);

0 commit comments

Comments
 (0)