Skip to content

Commit 0201b5f

Browse files
Merge branch 'AliceO2Group:master' into helicity_MCTruth_new
2 parents 04d537f + 686c3db commit 0201b5f

File tree

14 files changed

+649
-791
lines changed

14 files changed

+649
-791
lines changed

Common/Tools/Multiplicity/MultModule.h

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ class MultModule
440440
internalOpts.mEnabledTables.resize(nTablesConst, 0);
441441

442442
LOGF(info, "Configuring tables to generate");
443+
LOGF(info, "Metadata information: isMC? %i", metadataInfo.isMC());
443444
const auto& workflows = context.services().template get<o2::framework::RunningWorkflowInfo const>();
444445

445446
TString listOfRequestors[nTablesConst];
@@ -505,16 +506,6 @@ class MultModule
505506
listOfRequestors[kPVMults].Append(Form("%s ", "dependency check"));
506507
}
507508

508-
// capture the need for PYTHIA calibration in Pb-Pb runs
509-
if (metadataInfo.isMC() && mRunNumber >= 544013 && mRunNumber <= 545367) {
510-
internalOpts.generatorName.value = "PYTHIA";
511-
}
512-
513-
// capture the need for PYTHIA calibration in light ion runs automatically
514-
if (metadataInfo.isMC() && mRunNumber >= 564250 && mRunNumber <= 564472) {
515-
internalOpts.generatorName.value = "PYTHIA";
516-
}
517-
518509
// list enabled tables
519510
for (int i = 0; i < nTablesConst; i++) {
520511
// printout to be improved in the future
@@ -1145,6 +1136,20 @@ class MultModule
11451136
{
11461137
if (bc.runNumber() != mRunNumberCentrality) {
11471138
mRunNumberCentrality = bc.runNumber(); // mark that this run has been attempted already regardless of outcome
1139+
LOGF(info, "centrality loading procedure for timestamp=%llu, run number=%d", bc.timestamp(), bc.runNumber());
1140+
1141+
// capture the need for PYTHIA calibration in Pb-Pb runs
1142+
if (metadataInfo.isMC() && mRunNumber >= 544013 && mRunNumber <= 545367) {
1143+
LOGF(info, "This is MC for Pb-Pb. Setting generatorName automatically to PYTHIA");
1144+
internalOpts.generatorName.value = "PYTHIA";
1145+
}
1146+
1147+
// capture the need for PYTHIA calibration in light ion runs automatically
1148+
if (metadataInfo.isMC() && mRunNumber >= 564250 && mRunNumber <= 564472) {
1149+
LOGF(info, "This is MC for light ion runs. Setting generatorName automatically to PYTHIA");
1150+
internalOpts.generatorName.value = "PYTHIA";
1151+
}
1152+
11481153
LOGF(info, "centrality loading procedure for timestamp=%llu, run number=%d", bc.timestamp(), bc.runNumber());
11491154
TList* callst = nullptr;
11501155
// Check if the ccdb path is a root file
@@ -1258,6 +1263,10 @@ class MultModule
12581263
auto populateTable = [&](auto& table, struct CalibrationInfo& estimator, float multiplicity, bool isInelGt0) {
12591264
const bool assignOutOfRange = internalOpts.embedINELgtZEROselection && !isInelGt0;
12601265
auto scaleMC = [](float x, const float pars[6]) {
1266+
float core = ((pars[0] + pars[1] * std::pow(x, pars[2])) - pars[3]) / pars[4];
1267+
if (core < 0.0f) {
1268+
return 0.0f; // this should be marked as low multiplicity and not mapped, core^pars[5] would be NaN
1269+
}
12611270
return std::pow(((pars[0] + pars[1] * std::pow(x, pars[2])) - pars[3]) / pars[4], 1.0f / pars[5]);
12621271
};
12631272

@@ -1343,6 +1352,10 @@ class MultModule
13431352
ConfigureCentralityRun2(ccdb, metadataInfo, firstbc);
13441353

13451354
auto scaleMC = [](float x, const float pars[6]) {
1355+
float core = ((pars[0] + pars[1] * std::pow(x, pars[2])) - pars[3]) / pars[4];
1356+
if (core < 0.0f) {
1357+
return 0.0f; // this should be marked as low multiplicity and not mapped, core^pars[5] would be NaN
1358+
}
13461359
return std::pow(((pars[0] + pars[1] * std::pow(x, pars[2])) - pars[3]) / pars[4], 1.0f / pars[5]);
13471360
};
13481361

PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx

Lines changed: 142 additions & 177 deletions
Large diffs are not rendered by default.

PWGCF/Flow/Tasks/flowTask.cxx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ struct FlowTask {
147147
O2_DEFINE_CONFIGURABLE(cfgRejectionTPCsectorOverlap, bool, false, "rejection for TPC sector overlap")
148148
O2_DEFINE_CONFIGURABLE(cfgMagnetField, std::string, "GLO/Config/GRPMagField", "CCDB path to Magnet field object")
149149
ConfigurableAxis axisPhiMod{"axisPhiMod", {100, 0, constants::math::PI / 9}, "fmod(#varphi,#pi/9)"};
150+
O2_DEFINE_CONFIGURABLE(cfgTPCPhiCutLowCutFunction, std::string, "0.1/x-0.005", "Function for TPC mod phi-pt cut");
151+
O2_DEFINE_CONFIGURABLE(cfgTPCPhiCutHighCutFunction, std::string, "0.1/x+0.01", "Function for TPC mod phi-pt cut");
152+
O2_DEFINE_CONFIGURABLE(cfgTPCPhiCutPtMin, float, 2.0f, "start point of phi-pt cut")
150153
TF1* fPhiCutLow = nullptr;
151154
TF1* fPhiCutHigh = nullptr;
152155
} cfgFuncParas;
@@ -512,8 +515,8 @@ struct FlowTask {
512515
}
513516

514517
if (cfgFuncParas.cfgShowTPCsectorOverlap) {
515-
cfgFuncParas.fPhiCutLow = new TF1("fPhiCutLow", "0.06/x+pi/18.0-0.06", 0, 100);
516-
cfgFuncParas.fPhiCutHigh = new TF1("fPhiCutHigh", "0.1/x+pi/18.0+0.06", 0, 100);
518+
cfgFuncParas.fPhiCutLow = new TF1("fPhiCutLow", cfgFuncParas.cfgTPCPhiCutLowCutFunction->c_str(), 0, 100);
519+
cfgFuncParas.fPhiCutHigh = new TF1("fPhiCutHigh", cfgFuncParas.cfgTPCPhiCutHighCutFunction->c_str(), 0, 100);
517520
}
518521

519522
if (cfgTrackDensityCorrUse) {
@@ -781,7 +784,7 @@ struct FlowTask {
781784
phimodn = fmod(phimodn, o2::constants::math::TwoPI / 9.0);
782785
registry.fill(HIST("pt_phi_bef"), track.pt(), phimodn);
783786
if (cfgFuncParas.cfgRejectionTPCsectorOverlap) {
784-
if (phimodn < cfgFuncParas.fPhiCutHigh->Eval(track.pt()) && phimodn > cfgFuncParas.fPhiCutLow->Eval(track.pt()))
787+
if (track.pt() >= cfgFuncParas.cfgTPCPhiCutPtMin && phimodn < cfgFuncParas.fPhiCutHigh->Eval(track.pt()) && phimodn > cfgFuncParas.fPhiCutLow->Eval(track.pt()))
785788
return false; // reject track
786789
}
787790
registry.fill(HIST("pt_phi_aft"), track.pt(), phimodn);

PWGEM/Dilepton/Core/DimuonCut.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ class DimuonCut : public TNamed
194194
return track.nClusters() >= mMinNClustersMCHMID;
195195

196196
case DimuonCuts::kChi2:
197-
return (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) ? track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) : track.chi2()) < mMaxChi2;
197+
return track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) ? track.chi2() / (2.f * (track.nClusters() + track.nClustersMFT()) - 5.f) < mMaxChi2 : track.chi2() < mMaxChi2;
198198

199199
case DimuonCuts::kMatchingChi2MCHMFT:
200200
return track.chi2MatchMCHMFT() < mMaxMatchingChi2MCHMFT;

PWGHF/D2H/Tasks/taskDplus.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ struct HfTaskDplus {
317317
} else if (!storeCentrality && storeOccupancy) {
318318
registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy, ptbhad, flagBHad);
319319
} else if (!storeCentrality && !storeOccupancy && storePvContributors) {
320-
registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors);
320+
registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], numPvContributors, ptbhad, flagBHad);
321321
} else {
322322
registry.fill(HIST("hSparseMassFD"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], ptbhad, flagBHad);
323323
}

PWGJE/Tasks/recoilJets.cxx

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,13 @@ struct RecoilJets {
116116
Configurable<uint16_t> histMultBins{"histMultBins", 1000, "Number of bins for scaled FT0M multiplicity"};
117117

118118
// Axes specification
119-
AxisSpec pT{histJetPt, 0.0, histJetPt * 1., "#it{p}_{T} (GeV/#it{c})"};
120-
AxisSpec jetPTcorr{histJetPt + 20, -20., histJetPt * 1.0, "#it{p}_{T, jet}^{ch, corr} (GeV/#it{c})"};
121119
AxisSpec phiAngle{40, 0.0, constants::math::TwoPI, "#it{#varphi} (rad)"};
122120
AxisSpec deltaPhiAngle{52, 0.0, constants::math::PI, "#Delta#it{#varphi} (rad)"};
123121
AxisSpec pseudorap{40, -1., 1., "#it{#eta}"};
124122
AxisSpec pseudorapJets{20, -0.5, 0.5, "#it{#eta}_{jet}"};
125123
AxisSpec jetArea{50, 0.0, 5., "Area_{jet}"};
126124
AxisSpec rhoArea{60, 0.0, 60., "#it{#rho} #times Area_{jet}"};
127125
AxisSpec rho{50, 0.0, 50., "#it{#rho}"};
128-
AxisSpec scaledFT0C{histMultBins, 0.0, 20., "FT0C / #LT FT0C #GT"};
129-
AxisSpec scaledFT0M{histMultBins, 0.0, 20., "FT0M^{*}"};
130126
ConfigurableAxis multFT0CThresh{"multFT0CThresh", {VARIABLE_WIDTH, 0, 0.2, 0.3, 0.4, 0.6, 0.8, 1., 1.4, 1.8, 2.4, 3.6, 5., 20.}, "Percentiles of scaled FT0C: 100-90%, 90-80%, 80-70%, 70-60%, 60-50%, 50-40%, 40-30%, 30-20%, 20-10%, 10-1%, 1-0.1%"}; // to adjust the boarders
131127
ConfigurableAxis multFT0MThresh{"multFT0MThresh", {VARIABLE_WIDTH, 0, 0.2, 0.3, 0.4, 0.6, 0.8, 1., 1.4, 1.8, 2.4, 3.6, 5., 20.}, "Percentiles of scaled FT0M: 100-90%, 90-80%, 80-70%, 70-60%, 60-50%, 50-40%, 40-30%, 30-20%, 20-10%, 10-1%, 1-0.1%"};
132128

@@ -155,6 +151,14 @@ struct RecoilJets {
155151

156152
void init(InitContext const&)
157153
{
154+
// Initialize histogram axes
155+
AxisSpec pT{histJetPt, 0.0, histJetPt * 1., "#it{p}_{T} (GeV/#it{c})"};
156+
AxisSpec jetPTcorr{histJetPt + 20, -20., histJetPt * 1.0, "#it{p}_{T, jet}^{ch, corr} (GeV/#it{c})"};
157+
AxisSpec scaledFT0A{histMultBins, 0.0, 20., "FT0A / #LT FT0A #GT"};
158+
AxisSpec scaledFT0C{histMultBins, 0.0, 20., "FT0C / #LT FT0C #GT"};
159+
AxisSpec scaledFT0M{histMultBins, 0.0, 20., "FT0M^{*}"};
160+
161+
// Convert configurable strings to std::string
158162
std::string evSelToString = static_cast<std::string>(evSel);
159163
std::string trkSelToString = static_cast<std::string>(trkSel);
160164

@@ -303,27 +307,27 @@ struct RecoilJets {
303307
}
304308

305309
if (doprocessMultiplicity) {
306-
spectra.add("hMultFT0A", "Mult. signal from FTOA", kTH1F, {{2000, 0.0, 40000.}});
307-
spectra.add("hMultFT0C", "Mult. signal from FTOC", kTH1F, {{2000, 0.0, 40000.}});
308-
spectra.add("hMultFT0M", "Total mult. signal from FT0A & FTOC", kTH1F, {{3000, 0.0, 60000.}});
310+
spectra.add("hMultFT0A", "Mult. signal from FTOA", kTH1F, {{2000, 0.0, 40000., "FT0A"}});
311+
spectra.add("hMultFT0C", "Mult. signal from FTOC", kTH1F, {{2000, 0.0, 40000., "FT0C"}});
312+
spectra.add("hMultFT0M", "Total mult. signal from FT0A & FTOC", kTH1F, {{3000, 0.0, 60000., "FT0M"}});
309313

310-
spectra.add("hScaleMultFT0A", "Scaled mult. signal from FTOA", kTH1F, {{200, 0.0, 20., "FT0A / #LT FT0A #GT"}});
314+
spectra.add("hScaleMultFT0A", "Scaled mult. signal from FTOA", kTH1F, {scaledFT0A});
311315
spectra.add("hScaleMultFT0C", "Scaled mult. signal from FTOC", kTH1F, {scaledFT0C});
312316
spectra.add("hScaleMultFT0M", "Scaled total mult. signal from FT0A & FTOC", kTH1F, {scaledFT0M});
313317

314-
spectra.add("hMultZNA", "Mult. signal from ZDC A-side", kTH1F, {{1000, 0.0, 5000.}});
315-
spectra.add("hMultZNC", "Mult. signal from ZDC C-side", kTH1F, {{1000, 0.0, 5000.}});
316-
spectra.add("hMultZNM", "Total mult. signal from ZDCs", kTH1F, {{4000, 0.0, 8000.}});
318+
spectra.add("hMultZNA", "Mult. signal from ZDC A-side", kTH1F, {{1000, 0.0, 5000., "ZNA"}});
319+
spectra.add("hMultZNC", "Mult. signal from ZDC C-side", kTH1F, {{1000, 0.0, 5000., "ZNC"}});
320+
spectra.add("hMultZNM", "Total mult. signal from ZDCs", kTH1F, {{4000, 0.0, 8000., "ZNM"}});
317321

318322
// Correlations
319-
spectra.add("hMultFT0A_vs_ZNA", "Correlation of signals FTOA vs ZNA", kTH2F, {{2000, 0.0, 40000.}, {1000, 0.0, 5000.}});
320-
spectra.add("hMultFT0C_vs_ZNC", "Correlation of signals FTOC vs ZNC", kTH2F, {{2000, 0.0, 40000.}, {1000, 0.0, 5000.}});
321-
spectra.add("hMultFT0M_vs_ZNM", "Correlation of signals FTOM vs ZNM", kTH2F, {{3000, 0.0, 60000.}, {4000, 0.0, 8000.}});
322-
323-
spectra.add("hScaleMultFT0A_vs_ZNA", "Correlation of signals FT0A/meanFT0A vs ZNA", kTH2F, {{200, 0.0, 20., "FT0A / #LT FT0A #GT"}, {1000, 0.0, 5000.}});
324-
spectra.add("hScaleMultFT0C_vs_ZNC", "Correlation of signals FT0C/meanFT0C vs ZNC", kTH2F, {{scaledFT0C}, {1000, 0.0, 5000.}});
325-
spectra.add("hScaleMultFT0M_vs_ZNM", "Correlation of signals FT0M^{*} vs ZNM", kTH2F, {{scaledFT0M}, {4000, 0.0, 8000.}});
326-
spectra.add("hScaleMultFT0M_vs_ZNA_vs_ZNC", "Correlation of signals FT0M^{*} vs ZNA vs ZNC", kTH3F, {{scaledFT0M}, {1000, 0.0, 5000.}, {1000, 0.0, 5000.}});
323+
spectra.add("hMultFT0A_vs_ZNA", "Correlation of signals FTOA vs ZNA", kTH2F, {{2000, 0.0, 40000., "FT0A"}, {1000, 0.0, 5000., "ZNA"}});
324+
spectra.add("hMultFT0C_vs_ZNC", "Correlation of signals FTOC vs ZNC", kTH2F, {{2000, 0.0, 40000., "FT0C"}, {1000, 0.0, 5000., "ZNC"}});
325+
spectra.add("hMultFT0M_vs_ZNM", "Correlation of signals FTOM vs ZNM", kTH2F, {{3000, 0.0, 60000., "FT0M"}, {4000, 0.0, 8000., "ZNM"}});
326+
327+
spectra.add("hScaleMultFT0A_vs_ZNA", "Correlation of signals FT0A/meanFT0A vs ZNA", kTH2F, {{scaledFT0A}, {1000, 0.0, 5000., "ZNA"}});
328+
spectra.add("hScaleMultFT0C_vs_ZNC", "Correlation of signals FT0C/meanFT0C vs ZNC", kTH2F, {{scaledFT0C}, {1000, 0.0, 5000., "ZNC"}});
329+
spectra.add("hScaleMultFT0M_vs_ZNM", "Correlation of signals FT0M^{*} vs ZNM", kTH2F, {{scaledFT0M}, {4000, 0.0, 8000., "ZNM"}});
330+
spectra.add("hScaleMultFT0M_vs_ZNA_vs_ZNC", "Correlation of signals FT0M^{*} vs ZNA vs ZNC", kTH3F, {{scaledFT0M}, {600, 0.0, 3000., "ZNA"}, {600, 0.0, 3000., "ZNC"}});
327331
}
328332
}
329333

PWGLF/DataModel/mcCentrality.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
#define PWGLF_DATAMODEL_MCCENTRALITY_H_
2222

2323
// O2 includes
24+
#include "Common/DataModel/Centrality.h"
25+
2426
#include "Framework/ASoA.h"
2527
#include "Framework/AnalysisDataModel.h"
26-
#include "Common/DataModel/Centrality.h"
2728
#include "Framework/Logger.h"
2829

2930
namespace o2::aod

0 commit comments

Comments
 (0)