Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 41 additions & 40 deletions PWGCF/Flow/Tasks/flowZdcEnergy.cxx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.

Check failure on line 1 in PWGCF/Flow/Tasks/flowZdcEnergy.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/workflow-file]

Name of a workflow file must match the name of the main struct in it (without the PWG prefix). (Class implementation files should be in "Core" directories.)
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand All @@ -12,7 +12,7 @@
/// \file flowZdcEnergy.cxx
/// \author Kegang Xiong
/// \since 03/2026
/// \brief Study ZDC energy observables versus centrality for Run 2 / Run 3.
/// \brief Study ZDC energy observables versus multiplicity for Run 2 / Run 3.

#include "Common/DataModel/Centrality.h"
#include "Common/DataModel/EventSelection.h"
Expand Down Expand Up @@ -47,10 +47,7 @@
struct flowZdcEnergy {

struct : ConfigurableGroup{
O2_DEFINE_CONFIGURABLE(cfgUseEvsel, bool, true, "whether to enable event selection")
O2_DEFINE_CONFIGURABLE(cfgCentMin, float, 0.f, "Minimum centrality for selected events")
O2_DEFINE_CONFIGURABLE(cfgCentMax, float, 90.f, "Maximum centrality for selected events")
O2_DEFINE_CONFIGURABLE(cfgVtxZ, float, 10.f, "Accepted z-vertex range")} evsel;
O2_DEFINE_CONFIGURABLE(cfgVtxZ, float, 10.f, "Accepted z-vertex range")} evsel;

O2_DEFINE_CONFIGURABLE(cfgEtaMax, float, 0.8f, "Maximum track #eta")
O2_DEFINE_CONFIGURABLE(cfgPtMin, float, 0.2f, "Minimum track #P_{t}")
Expand All @@ -59,8 +56,8 @@
O2_DEFINE_CONFIGURABLE(cfgDcaZMax, float, 2.0f, "Maximum DCAz")

ConfigurableAxis axisCent{"axisCent", {90, 0, 90}, "Centrality (%)"};
ConfigurableAxis axisMult{"axisMult", {100, 0, 100000}, "Multiplicity"};
ConfigurableAxis axisMultDivided{"axisMultDivided", {30, 0, 15000}, "Multiplicity bins for ZN energy"};
ConfigurableAxis axisMult{"axisMult", {500, 0, 15000}, "Multiplicity"};
ConfigurableAxis axisMultDivided{"axisMultDivided", {500, 0, 10000}, "Multiplicity bins for ZN energy"};
ConfigurableAxis axisPt{"axisPt", {100, 0, 15}, "#P_{t}"};
ConfigurableAxis axisEta{"axisEta", {64, -1.6, 1.6}, "#eta"};
ConfigurableAxis axisEnergy{"axisEnergy", {300, 0, 300}, "Energy"};
Expand All @@ -71,7 +68,6 @@
kAllEvents = 0,
kSeln,
kZvtx,
kCentrality,
kBCHasZDC,
kSelectedZDC,
kNSelections
Expand Down Expand Up @@ -105,13 +101,17 @@
hCount->GetXaxis()->SetBinLabel(kAllEvents + 1, "All events");
hCount->GetXaxis()->SetBinLabel(kSeln + 1, "Sel7/8");
hCount->GetXaxis()->SetBinLabel(kZvtx + 1, "Zvtx");
hCount->GetXaxis()->SetBinLabel(kCentrality + 1, "Centrality");
hCount->GetXaxis()->SetBinLabel(kBCHasZDC + 1, "BC has ZDC");
hCount->GetXaxis()->SetBinLabel(kSelectedZDC + 1, "Selected ZDC");

registry.add("QA/hCentrality", "", {HistType::kTH1D, {axisCent}});
registry.add("QA/hMultiplicity", "", {HistType::kTH1D, {axisMult}});
registry.add("QA/hMultiplicity_TPC", "", {HistType::kTH1D, {axisMult}});
registry.add("QA/hCentrality_beforeCut", "", {HistType::kTH1D, {axisCent}});
registry.add("QA/hMultiplicity_beforeCut", "", {HistType::kTH1D, {axisMult}});
registry.add("QA/hMultiplicity_TPC_beforeCut", "", {HistType::kTH1D, {axisMult}});

registry.add("QA/hCentrality_afterCut", "", {HistType::kTH1D, {axisCent}});
registry.add("QA/hMultiplicity_afterCut", "", {HistType::kTH1D, {axisMult}});
registry.add("QA/hMultiplicity_TPC_afterCut", "", {HistType::kTH1D, {axisMult}});

registry.add("QA/hPt", "", {HistType::kTH1D, {axisPt}});
registry.add("QA/hEta", "", {HistType::kTH1D, {axisEta}});

Expand Down Expand Up @@ -148,28 +148,21 @@

// Helper: event selection
template <typename TCollision>
bool acceptEvent(TCollision const& collision, bool UseEvsel, float centrality, const int runmode)
bool acceptEvent(TCollision const& collision, const int runmode)
{
if (!UseEvsel) {
registry.fill(HIST("QA/hEventCount"), kAllEvents);
} else {
registry.fill(HIST("QA/hEventCount"), kAllEvents);
if (runmode == 2 && !collision.sel7()) {
return false;
}
if (runmode == 3 && !collision.sel8()) {
return false;
}
registry.fill(HIST("QA/hEventCount"), kSeln);
if (std::abs(collision.posZ()) > evsel.cfgVtxZ) {
return false;
}
registry.fill(HIST("QA/hEventCount"), kZvtx);
if (centrality < evsel.cfgCentMin || centrality > evsel.cfgCentMax) {
return false;
}
registry.fill(HIST("QA/hEventCount"), kCentrality);
registry.fill(HIST("QA/hEventCount"), kAllEvents);
if (runmode == 2 && !collision.sel7()) {

Check failure on line 154 in PWGCF/Flow/Tasks/flowZdcEnergy.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
return false;
}
if (runmode == 3 && !collision.sel8()) {

Check failure on line 157 in PWGCF/Flow/Tasks/flowZdcEnergy.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
return false;
}
registry.fill(HIST("QA/hEventCount"), kSeln);
if (std::abs(collision.posZ()) > evsel.cfgVtxZ) {
return false;
}
registry.fill(HIST("QA/hEventCount"), kZvtx);

return true;
}

Expand Down Expand Up @@ -232,11 +225,11 @@
registry.fill(HIST("hEnergyWithMult_ZNA_SumSectors"), sumEnergyZNA, multiTPC);
registry.fill(HIST("hEnergyWithMult_ZNC_SumSectors"), sumEnergyZNC, multiTPC);

if (commonDen > 1.e-6f) {

Check failure on line 228 in PWGCF/Flow/Tasks/flowZdcEnergy.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
registry.fill(HIST("hEnergyWithCent_RescaledDiff"), (energyCommonZNA - energyCommonZNC) / commonDen, centrality);
registry.fill(HIST("hEnergyWithMult_RescaledDiff"), (energyCommonZNA - energyCommonZNC) / commonDen, multiTPC);
}
if (sumDen > 1.e-6f) {

Check failure on line 232 in PWGCF/Flow/Tasks/flowZdcEnergy.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
registry.fill(HIST("hEnergyWithCent_RescaledSumDiff"), (sumEnergyZNA - sumEnergyZNC) / sumDen, centrality);
registry.fill(HIST("hEnergyWithMult_RescaledSumDiff"), (sumEnergyZNA - sumEnergyZNC) / sumDen, multiTPC);
}
Expand All @@ -252,12 +245,16 @@
const float multi = collision.multFT0C();
const float multiTPC = collision.multTPC();

if (!acceptEvent(collision, evsel.cfgUseEvsel, centrality, 3)) {
registry.fill(HIST("QA/hCentrality_beforeCut"), centrality);
registry.fill(HIST("QA/hMultiplicity_beforeCut"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC_beforeCut"), multiTPC);

if (!acceptEvent(collision, 3)) {
return;
}
registry.fill(HIST("QA/hCentrality"), centrality);
registry.fill(HIST("QA/hMultiplicity"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC"), multiTPC);
registry.fill(HIST("QA/hCentrality_afterCut"), centrality);
registry.fill(HIST("QA/hMultiplicity_afterCut"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC_afterCut"), multiTPC);
fillZDCObservables<CollisionsRun3::iterator, BCsRun3>(collision, centrality, multiTPC);

for (const auto& track : tracks) {
Expand All @@ -276,12 +273,16 @@
const float multi = collision.multFV0M();
const float multiTPC = collision.multTPC();

if (!acceptEvent(collision, evsel.cfgUseEvsel, centrality, 2)) {
registry.fill(HIST("QA/hCentrality_beforeCut"), centrality);
registry.fill(HIST("QA/hMultiplicity_beforeCut"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC_beforeCut"), multiTPC);

if (!acceptEvent(collision, 2)) {
return;
}
registry.fill(HIST("QA/hCentrality"), centrality);
registry.fill(HIST("QA/hMultiplicity"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC"), multiTPC);
registry.fill(HIST("QA/hCentrality_afterCut"), centrality);
registry.fill(HIST("QA/hMultiplicity_afterCut"), multi);
registry.fill(HIST("QA/hMultiplicity_TPC_afterCut"), multiTPC);
fillZDCObservables<CollisionsRun2::iterator, BCsRun2>(collision, centrality, multiTPC);

for (const auto& track : tracks) {
Expand Down
Loading