Skip to content

Commit 1baf73c

Browse files
kegang02kegangxiongalibuild
authored
[PWGCF] Fix the magic number (#15895)
Co-authored-by: kegangxiong <kxiong@kegangxiongdeMacBook-Air.local> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 38f328f commit 1baf73c

1 file changed

Lines changed: 61 additions & 48 deletions

File tree

PWGCF/Flow/Tasks/flowZdcEnergy.cxx

Lines changed: 61 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
/// \file flowZdcEnergy.cxx
1313
/// \author Kegang Xiong
1414
/// \since 03/2026
15-
/// \brief Study ZDC energy observables versus centrality for Run 2 / Run 3.
15+
/// \brief Study ZDC energy observables versus multiplicity for Run 2 / Run 3.
1616

1717
#include "Common/DataModel/Centrality.h"
1818
#include "Common/DataModel/EventSelection.h"
@@ -44,23 +44,18 @@ using namespace o2::framework::expressions;
4444

4545
#define O2_DEFINE_CONFIGURABLE(NAME, TYPE, DEFAULT, HELP) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
4646

47-
struct flowZdcEnergy {
48-
49-
struct : ConfigurableGroup{
50-
O2_DEFINE_CONFIGURABLE(cfgUseEvsel, bool, true, "whether to enable event selection")
51-
O2_DEFINE_CONFIGURABLE(cfgCentMin, float, 0.f, "Minimum centrality for selected events")
52-
O2_DEFINE_CONFIGURABLE(cfgCentMax, float, 90.f, "Maximum centrality for selected events")
53-
O2_DEFINE_CONFIGURABLE(cfgVtxZ, float, 10.f, "Accepted z-vertex range")} evsel;
47+
struct FlowZdcEnergy {
5448

49+
O2_DEFINE_CONFIGURABLE(cfgVtxZ, float, 10.f, "Event cut: accepted z-vertex range")
5550
O2_DEFINE_CONFIGURABLE(cfgEtaMax, float, 0.8f, "Maximum track #eta")
5651
O2_DEFINE_CONFIGURABLE(cfgPtMin, float, 0.2f, "Minimum track #P_{t}")
5752
O2_DEFINE_CONFIGURABLE(cfgPtMax, float, 10.0f, "Maximum track #P_{t}")
5853
O2_DEFINE_CONFIGURABLE(cfgDcaXYMax, float, 0.2f, "Maximum DCAxy")
5954
O2_DEFINE_CONFIGURABLE(cfgDcaZMax, float, 2.0f, "Maximum DCAz")
6055

6156
ConfigurableAxis axisCent{"axisCent", {90, 0, 90}, "Centrality (%)"};
62-
ConfigurableAxis axisMult{"axisMult", {100, 0, 100000}, "Multiplicity"};
63-
ConfigurableAxis axisMultDivided{"axisMultDivided", {30, 0, 15000}, "Multiplicity bins for ZN energy"};
57+
ConfigurableAxis axisMult{"axisMult", {500, 0, 15000}, "Multiplicity"};
58+
ConfigurableAxis axisMultDivided{"axisMultDivided", {500, 0, 10000}, "Multiplicity bins for ZN energy"};
6459
ConfigurableAxis axisPt{"axisPt", {100, 0, 15}, "#P_{t}"};
6560
ConfigurableAxis axisEta{"axisEta", {64, -1.6, 1.6}, "#eta"};
6661
ConfigurableAxis axisEnergy{"axisEnergy", {300, 0, 300}, "Energy"};
@@ -71,7 +66,6 @@ struct flowZdcEnergy {
7166
kAllEvents = 0,
7267
kSeln,
7368
kZvtx,
74-
kCentrality,
7569
kBCHasZDC,
7670
kSelectedZDC,
7771
kNSelections
@@ -105,13 +99,17 @@ struct flowZdcEnergy {
10599
hCount->GetXaxis()->SetBinLabel(kAllEvents + 1, "All events");
106100
hCount->GetXaxis()->SetBinLabel(kSeln + 1, "Sel7/8");
107101
hCount->GetXaxis()->SetBinLabel(kZvtx + 1, "Zvtx");
108-
hCount->GetXaxis()->SetBinLabel(kCentrality + 1, "Centrality");
109102
hCount->GetXaxis()->SetBinLabel(kBCHasZDC + 1, "BC has ZDC");
110103
hCount->GetXaxis()->SetBinLabel(kSelectedZDC + 1, "Selected ZDC");
111104

112-
registry.add("QA/hCentrality", "", {HistType::kTH1D, {axisCent}});
113-
registry.add("QA/hMultiplicity", "", {HistType::kTH1D, {axisMult}});
114-
registry.add("QA/hMultiplicity_TPC", "", {HistType::kTH1D, {axisMult}});
105+
registry.add("QA/hCentrality_beforeCut", "", {HistType::kTH1D, {axisCent}});
106+
registry.add("QA/hMultiplicity_beforeCut", "", {HistType::kTH1D, {axisMult}});
107+
registry.add("QA/hMultiplicity_TPC_beforeCut", "", {HistType::kTH1D, {axisMult}});
108+
109+
registry.add("QA/hCentrality_afterCut", "", {HistType::kTH1D, {axisCent}});
110+
registry.add("QA/hMultiplicity_afterCut", "", {HistType::kTH1D, {axisMult}});
111+
registry.add("QA/hMultiplicity_TPC_afterCut", "", {HistType::kTH1D, {axisMult}});
112+
115113
registry.add("QA/hPt", "", {HistType::kTH1D, {axisPt}});
116114
registry.add("QA/hEta", "", {HistType::kTH1D, {axisEta}});
117115

@@ -148,28 +146,34 @@ struct flowZdcEnergy {
148146

149147
// Helper: event selection
150148
template <typename TCollision>
151-
bool acceptEvent(TCollision const& collision, bool UseEvsel, float centrality, const int runmode)
149+
bool acceptEventRun2(TCollision const& collision)
152150
{
153-
if (!UseEvsel) {
154-
registry.fill(HIST("QA/hEventCount"), kAllEvents);
155-
} else {
156-
registry.fill(HIST("QA/hEventCount"), kAllEvents);
157-
if (runmode == 2 && !collision.sel7()) {
158-
return false;
159-
}
160-
if (runmode == 3 && !collision.sel8()) {
161-
return false;
162-
}
163-
registry.fill(HIST("QA/hEventCount"), kSeln);
164-
if (std::abs(collision.posZ()) > evsel.cfgVtxZ) {
165-
return false;
166-
}
167-
registry.fill(HIST("QA/hEventCount"), kZvtx);
168-
if (centrality < evsel.cfgCentMin || centrality > evsel.cfgCentMax) {
169-
return false;
170-
}
171-
registry.fill(HIST("QA/hEventCount"), kCentrality);
151+
registry.fill(HIST("QA/hEventCount"), kAllEvents);
152+
if (!collision.sel7()) {
153+
return false;
154+
}
155+
registry.fill(HIST("QA/hEventCount"), kSeln);
156+
if (std::abs(collision.posZ()) > cfgVtxZ) {
157+
return false;
172158
}
159+
registry.fill(HIST("QA/hEventCount"), kZvtx);
160+
161+
return true;
162+
}
163+
164+
template <typename TCollision>
165+
bool acceptEventRun3(TCollision const& collision)
166+
{
167+
registry.fill(HIST("QA/hEventCount"), kAllEvents);
168+
if (!collision.sel8()) {
169+
return false;
170+
}
171+
registry.fill(HIST("QA/hEventCount"), kSeln);
172+
if (std::abs(collision.posZ()) > cfgVtxZ) {
173+
return false;
174+
}
175+
registry.fill(HIST("QA/hEventCount"), kZvtx);
176+
173177
return true;
174178
}
175179

@@ -232,11 +236,12 @@ struct flowZdcEnergy {
232236
registry.fill(HIST("hEnergyWithMult_ZNA_SumSectors"), sumEnergyZNA, multiTPC);
233237
registry.fill(HIST("hEnergyWithMult_ZNC_SumSectors"), sumEnergyZNC, multiTPC);
234238

235-
if (commonDen > 1.e-6f) {
239+
const float nonZero = 1.e-6f;
240+
if (commonDen > nonZero) {
236241
registry.fill(HIST("hEnergyWithCent_RescaledDiff"), (energyCommonZNA - energyCommonZNC) / commonDen, centrality);
237242
registry.fill(HIST("hEnergyWithMult_RescaledDiff"), (energyCommonZNA - energyCommonZNC) / commonDen, multiTPC);
238243
}
239-
if (sumDen > 1.e-6f) {
244+
if (sumDen > nonZero) {
240245
registry.fill(HIST("hEnergyWithCent_RescaledSumDiff"), (sumEnergyZNA - sumEnergyZNC) / sumDen, centrality);
241246
registry.fill(HIST("hEnergyWithMult_RescaledSumDiff"), (sumEnergyZNA - sumEnergyZNC) / sumDen, multiTPC);
242247
}
@@ -252,12 +257,16 @@ struct flowZdcEnergy {
252257
const float multi = collision.multFT0C();
253258
const float multiTPC = collision.multTPC();
254259

255-
if (!acceptEvent(collision, evsel.cfgUseEvsel, centrality, 3)) {
260+
registry.fill(HIST("QA/hCentrality_beforeCut"), centrality);
261+
registry.fill(HIST("QA/hMultiplicity_beforeCut"), multi);
262+
registry.fill(HIST("QA/hMultiplicity_TPC_beforeCut"), multiTPC);
263+
264+
if (!acceptEventRun3(collision)) {
256265
return;
257266
}
258-
registry.fill(HIST("QA/hCentrality"), centrality);
259-
registry.fill(HIST("QA/hMultiplicity"), multi);
260-
registry.fill(HIST("QA/hMultiplicity_TPC"), multiTPC);
267+
registry.fill(HIST("QA/hCentrality_afterCut"), centrality);
268+
registry.fill(HIST("QA/hMultiplicity_afterCut"), multi);
269+
registry.fill(HIST("QA/hMultiplicity_TPC_afterCut"), multiTPC);
261270
fillZDCObservables<CollisionsRun3::iterator, BCsRun3>(collision, centrality, multiTPC);
262271

263272
for (const auto& track : tracks) {
@@ -276,12 +285,16 @@ struct flowZdcEnergy {
276285
const float multi = collision.multFV0M();
277286
const float multiTPC = collision.multTPC();
278287

279-
if (!acceptEvent(collision, evsel.cfgUseEvsel, centrality, 2)) {
288+
registry.fill(HIST("QA/hCentrality_beforeCut"), centrality);
289+
registry.fill(HIST("QA/hMultiplicity_beforeCut"), multi);
290+
registry.fill(HIST("QA/hMultiplicity_TPC_beforeCut"), multiTPC);
291+
292+
if (!acceptEventRun2(collision)) {
280293
return;
281294
}
282-
registry.fill(HIST("QA/hCentrality"), centrality);
283-
registry.fill(HIST("QA/hMultiplicity"), multi);
284-
registry.fill(HIST("QA/hMultiplicity_TPC"), multiTPC);
295+
registry.fill(HIST("QA/hCentrality_afterCut"), centrality);
296+
registry.fill(HIST("QA/hMultiplicity_afterCut"), multi);
297+
registry.fill(HIST("QA/hMultiplicity_TPC_afterCut"), multiTPC);
285298
fillZDCObservables<CollisionsRun2::iterator, BCsRun2>(collision, centrality, multiTPC);
286299

287300
for (const auto& track : tracks) {
@@ -291,12 +304,12 @@ struct flowZdcEnergy {
291304
}
292305

293306
// Process switches
294-
PROCESS_SWITCH(flowZdcEnergy, processRun3, "Process Run 3 data", true);
295-
PROCESS_SWITCH(flowZdcEnergy, processRun2, "Process Run 2 data", false);
307+
PROCESS_SWITCH(FlowZdcEnergy, processRun3, "Process Run 3 data", true);
308+
PROCESS_SWITCH(FlowZdcEnergy, processRun2, "Process Run 2 data", false);
296309
};
297310

298311
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
299312
{
300313
return WorkflowSpec{
301-
adaptAnalysisTask<flowZdcEnergy>(cfgc)};
314+
adaptAnalysisTask<FlowZdcEnergy>(cfgc)};
302315
}

0 commit comments

Comments
 (0)