@@ -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