Skip to content

Commit 72505a4

Browse files
authored
[PWGCF] Optimize histogram axis configuration in partNumFluc.cxx (#14761)
1 parent 2dcc449 commit 72505a4

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

PWGCF/EbyEFluctuations/Tasks/partNumFluc.cxx

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,7 @@ struct PartNumFluc {
709709
Configurable<bool> cfgFlagMcParticlePhysicalPrimary{"cfgFlagMcParticlePhysicalPrimary", false, "Flag of requiring physical primary MC particle"};
710710
Configurable<bool> cfgFlagMcParticleMomentum{"cfgFlagMcParticleMomentum", false, "Flag of using momentum of MC particle"};
711711

712-
Configurable<std::int32_t> cfgNCentralityBins{"cfgNCentralityBins", 20, "Number of centrality bins in fluctuation calculation"};
712+
ConfigurableAxis cfgAxisCentrality{"cfgAxisCentrality", {VARIABLE_WIDTH, 0., 5., 10., 15., 20., 25., 30., 35., 40., 45., 50., 55., 60., 65., 70., 75., 80., 85., 90.}, "Centrality axis in fluctuation calculation"};
713713
Configurable<std::int32_t> cfgNSubgroups{"cfgNSubgroups", 20, "Number of subgroups in fluctuation calculation"};
714714

715715
Service<ccdb::BasicCCDBManager> ccdb;
@@ -1064,13 +1064,14 @@ struct PartNumFluc {
10641064
LOG(info) << "Enabling DCA QA.";
10651065

10661066
AxisSpec asPt(200, 0., 2., "#it{p}_{T} (GeV/#it{c})");
1067+
AxisSpec asDca(400, -1., 1.);
10671068

1068-
hrQaDca.add("QaDca/hPtDcaXy_p", "", {HistType::kTH2D, {asPt, {400, -2., 2., "DCA_{#it{xy}} (cm)"}}});
1069-
hrQaDca.add("QaDca/hPtDcaXy_m", "", {HistType::kTH2D, {asPt, {400, -2., 2., "DCA_{#it{xy}} (cm)"}}});
1069+
hrQaDca.add("QaDca/hPtDcaXy_p", ";;DCA_{#it{xy}} (cm)", {HistType::kTH2D, {asPt, asDca}});
1070+
hrQaDca.add("QaDca/hPtDcaXy_m", ";;DCA_{#it{xy}} (cm)", {HistType::kTH2D, {asPt, asDca}});
10701071
hrQaDca.add("QaDca/pPtDcaXy_p", ";;#LTDCA_{#it{xy}}#GT (cm)", {HistType::kTProfile, {asPt}});
10711072
hrQaDca.add("QaDca/pPtDcaXy_m", ";;#LTDCA_{#it{xy}}#GT (cm)", {HistType::kTProfile, {asPt}});
1072-
hrQaDca.add("QaDca/hPtDcaZ_p", "", {HistType::kTH2D, {asPt, {400, -2., 2., "DCA_{#it{z}} (cm)"}}});
1073-
hrQaDca.add("QaDca/hPtDcaZ_m", "", {HistType::kTH2D, {asPt, {400, -2., 2., "DCA_{#it{z}} (cm)"}}});
1073+
hrQaDca.add("QaDca/hPtDcaZ_p", ";;DCA_{#it{z}} (cm)", {HistType::kTH2D, {asPt, asDca}});
1074+
hrQaDca.add("QaDca/hPtDcaZ_m", ";;DCA_{#it{z}} (cm)", {HistType::kTH2D, {asPt, asDca}});
10741075
hrQaDca.add("QaDca/pPtDcaZ_p", ";;#LTDCA_{#it{z}}#GT (cm)", {HistType::kTProfile, {asPt}});
10751076
hrQaDca.add("QaDca/pPtDcaZ_m", ";;#LTDCA_{#it{z}}#GT (cm)", {HistType::kTProfile, {asPt}});
10761077
}
@@ -1122,16 +1123,18 @@ struct PartNumFluc {
11221123
}
11231124

11241125
if (cfgFlagQaPid.value || cfgFlagQaPidPi.value || cfgFlagQaPidKa.value || cfgFlagQaPidPr.value) {
1125-
AxisSpec asQaCentrality(20, 0., 100., "Centrality (%)");
1126-
AxisSpec asPOverQ(350, -3.5, 3.5, "#it{p}/#it{q} (GeV/#it{c})");
1126+
AxisSpec asQaCentrality({0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90.}, "Centrality (%)");
11271127
AxisSpec asPtOverQ(80, -2., 2., "#it{p}_{T}/#it{q} (GeV/#it{c})");
1128-
AxisSpec asEta(48, -1.2, 1.2, "#it{#eta}");
1128+
AxisSpec asEta(32, -0.8, 0.8, "#it{#eta}");
11291129

11301130
if (cfgFlagQaPid.value) {
11311131
LOG(info) << "Enabling PID QA.";
11321132

1133-
hrQaPid.add("QaPid/hCentralityPOverQEtaTpcLnDeDx", "", {HistType::kTHnSparseF, {asQaCentrality, asPOverQ, asEta, {240, 3., 9., "TPC ln(d#it{E}/d#it{x} (a.u.))"}}});
1134-
hrQaPid.add("QaPid/hCentralityPOverQEtaTofInverseBeta", "", {HistType::kTHnSparseF, {asQaCentrality, asPOverQ, asEta, {120, 0.5, 3.5, "TOF 1/#it{#beta}"}}});
1133+
AxisSpec asPOverQ(350, -3.5, 3.5, "#it{p}/#it{q} (GeV/#it{c})");
1134+
AxisSpec asEtaExtended(48, -1.2, 1.2, "#it{#eta}");
1135+
1136+
hrQaPid.add("QaPid/hCentralityPOverQEtaTpcLnDeDx", "", {HistType::kTHnSparseF, {asQaCentrality, asPOverQ, asEtaExtended, {240, 3., 9., "TPC ln(d#it{E}/d#it{x} (a.u.))"}}});
1137+
hrQaPid.add("QaPid/hCentralityPOverQEtaTofInverseBeta", "", {HistType::kTHnSparseF, {asQaCentrality, asPOverQ, asEtaExtended, {120, 0.5, 3.5, "TOF 1/#it{#beta}"}}});
11351138
}
11361139

11371140
if (cfgFlagQaPidPi.value || cfgFlagQaPidKa.value || cfgFlagQaPidPr.value) {
@@ -1183,7 +1186,7 @@ struct PartNumFluc {
11831186

11841187
if (doprocessMc.value) {
11851188
if (cfgFlagCalculationPurityPi.value || cfgFlagCalculationPurityKa.value || cfgFlagCalculationPurityPr.value) {
1186-
HistogramConfigSpec hcsCalculationPurity(HistType::kTProfile3D, {{20, 0., 100., "Centrality (%)"}, {40, 0., 2., "#it{p}_{T} (GeV/#it{c})"}, {48, -1.2, 1.2, "#it{#eta}"}});
1189+
HistogramConfigSpec hcsCalculationPurity(HistType::kTProfile3D, {{{0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90.}, "Centrality (%)"}, {40, 0., 2., "#it{p}_{T} (GeV/#it{c})"}, {32, -0.8, 0.8, "#it{#eta}"}});
11871190

11881191
if (cfgFlagCalculationPurityPi.value) {
11891192
LOG(info) << "Enabling pion purity calculation.";
@@ -1216,7 +1219,7 @@ struct PartNumFluc {
12161219

12171220
if (cfgFlagCalculationYieldPi.value || cfgFlagCalculationYieldKa.value || cfgFlagCalculationYieldPr.value) {
12181221
AxisSpec asPt(40, 0., 2., "#it{p}_{T} (GeV/#it{c})");
1219-
HistogramConfigSpec hcsCalculationYield(HistType::kTHnSparseF, {{static_cast<std::int32_t>(std::llrint(std::ceil(cfgCutMaxAbsVertexZ.value))) * 2, std::floor(-cfgCutMaxAbsVertexZ.value), std::ceil(cfgCutMaxAbsVertexZ.value), "#it{V}_{#it{z}} (cm)"}, {20, 0., 100., "Centrality (%)"}, asPt, {48, -1.2, 1.2, "#it{#eta}"}, {180, 0., constants::math::TwoPI, "#it{#varphi} (rad)"}});
1222+
HistogramConfigSpec hcsCalculationYield(HistType::kTHnSparseF, {{static_cast<std::int32_t>(std::llrint(std::ceil(cfgCutMaxAbsVertexZ.value))) * 2, std::floor(-cfgCutMaxAbsVertexZ.value), std::ceil(cfgCutMaxAbsVertexZ.value), "#it{V}_{#it{z}} (cm)"}, {{0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90.}, "Centrality (%)"}, asPt, {32, -0.8, 0.8, "#it{#eta}"}, {180, 0., constants::math::TwoPI, "#it{#varphi} (rad)"}});
12201223

12211224
if (cfgFlagCalculationYieldPi.value) {
12221225
LOG(info) << "Enabling pion yield calculation.";
@@ -1286,8 +1289,9 @@ struct PartNumFluc {
12861289
}
12871290

12881291
if (cfgFlagCalculationFluctuationCh.value || cfgFlagCalculationFluctuationKa.value || cfgFlagCalculationFluctuationPr.value) {
1289-
HistogramConfigSpec hcsCalculationFluctuation(HistType::kTH3D, {{cfgNCentralityBins.value, 0., 100., "Centrality (%)"}, {40, -0.5, 39.5}, {40, -0.5, 39.5}});
1290-
HistogramConfigSpec hcsFluctuationCalculator(HistType::kTH3D, {{cfgNCentralityBins.value, 0., 100., "Centrality (%)"}, {cfgNSubgroups.value, -0.5, cfgNSubgroups.value - 0.5, "Subgroup Index"}, {fluctuation_calculator_base::NOrderVectors, -0.5, fluctuation_calculator_base::NOrderVectors - 0.5, "Order Vector Index"}});
1292+
AxisSpec asCentrality(cfgAxisCentrality, "Centrality (%)");
1293+
HistogramConfigSpec hcsCalculationFluctuation(HistType::kTH3D, {asCentrality, {40, -0.5, 39.5}, {40, -0.5, 39.5}});
1294+
HistogramConfigSpec hcsFluctuationCalculator(HistType::kTH3D, {asCentrality, {cfgNSubgroups.value, -0.5, cfgNSubgroups.value - 0.5, "Subgroup Index"}, {fluctuation_calculator_base::NOrderVectors, -0.5, fluctuation_calculator_base::NOrderVectors - 0.5, "Order Vector Index"}});
12911295

12921296
if (cfgFlagCalculationFluctuationCh.value) {
12931297
holderCcdb.hVzCentralityPtEtaEfficiencyTpcPiP.resize(nRunGroups);
@@ -1612,16 +1616,16 @@ struct PartNumFluc {
16121616
return true;
16131617
}
16141618

1615-
template <typename MP>
1619+
template <bool doProcessingMc, typename MP>
16161620
bool isGoodMcParticle(const MP& mcParticle)
16171621
{
1618-
if (cfgFlagMcParticlePhysicalPrimary.value && !mcParticle.isPhysicalPrimary()) {
1622+
if ((doProcessingMc || cfgFlagMcParticlePhysicalPrimary.value) && !mcParticle.isPhysicalPrimary()) {
16191623
return false;
16201624
}
16211625
return true;
16221626
}
16231627

1624-
template <typename MP>
1628+
template <bool doProcessingMc, typename MP>
16251629
bool initMcParticle(const MP& mcParticle)
16261630
{
16271631
holderMcParticle.clear();
@@ -1630,7 +1634,7 @@ struct PartNumFluc {
16301634
holderMcParticle.eta = mcParticle.eta();
16311635
holderMcParticle.phi = mcParticle.phi();
16321636

1633-
if (!isGoodMcParticle(mcParticle)) {
1637+
if (!isGoodMcParticle<doProcessingMc>(mcParticle)) {
16341638
return false;
16351639
}
16361640

@@ -2411,7 +2415,7 @@ struct PartNumFluc {
24112415

24122416
if ((cfgFlagCalculationYieldPi.value || cfgFlagCalculationYieldKa.value || cfgFlagCalculationYieldPr.value) || (cfgFlagCalculationFluctuationCh.value || cfgFlagCalculationFluctuationKa.value || cfgFlagCalculationFluctuationPr.value)) {
24132417
for (const auto& mcParticle : mcParticles) {
2414-
if (!initMcParticle(mcParticle)) {
2418+
if (!initMcParticle<true>(mcParticle)) {
24152419
continue;
24162420
}
24172421

@@ -2519,7 +2523,7 @@ struct PartNumFluc {
25192523
}
25202524

25212525
const auto& mcParticle = track.template mcParticle_as<aod::McParticles>();
2522-
if (!mcParticle.has_mcCollision() || !initTrack<true, false>(track) || !initMcParticle(mcParticle)) {
2526+
if (!mcParticle.has_mcCollision() || !initTrack<true, false>(track) || !initMcParticle<false>(mcParticle)) {
25232527
continue;
25242528
}
25252529

0 commit comments

Comments
 (0)