Skip to content

Commit 2cfa1a2

Browse files
authored
Merge branch 'AliceO2Group:master' into pjpsi_femto
2 parents e405f8d + 917d279 commit 2cfa1a2

File tree

15 files changed

+581
-332
lines changed

15 files changed

+581
-332
lines changed

PWGCF/Flow/Tasks/flowAnalysisGF.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,8 @@ struct flowAnalysisGF {
214214
fPtAxis = new TAxis(ptbins, &ptbinning[0]);
215215

216216
if (cfgFillWeights) {
217-
fWeights->SetPtBins(ptbins, &ptbinning[0]);
218-
fWeights->Init(true, false);
217+
fWeights->setPtBins(ptbins, &ptbinning[0]);
218+
fWeights->init(true, false);
219219
}
220220

221221
if (doprocessMCGen) {
@@ -388,7 +388,7 @@ struct flowAnalysisGF {
388388
return false;
389389
weight_nue = 1. / eff;
390390
if (cfg.mAcceptance)
391-
weight_nua = cfg.mAcceptance->GetNUA(phi, eta, vtxz);
391+
weight_nua = cfg.mAcceptance->getNUA(phi, eta, vtxz);
392392
else
393393
weight_nua = 1;
394394
return true;
@@ -582,7 +582,7 @@ struct flowAnalysisGF {
582582
return false;
583583

584584
if (cfgFillWeights)
585-
fWeights->Fill(particle.phi(), particle.eta(), vtxz, particle.pt(), centrality, 0);
585+
fWeights->fill(particle.phi(), particle.eta(), vtxz, particle.pt(), centrality, 0);
586586

587587
if (!setCurrentParticleWeights(weff, wacc, particle.phi(), particle.eta(), particle.pt(), vtxz))
588588
return false;

PWGCF/Flow/Tasks/flowGFWOmegaXi.cxx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -376,16 +376,16 @@ struct FlowGFWOmegaXi {
376376

377377
// fWeight output
378378
if (cfgOutputNUAWeights) {
379-
fWeightsREF->SetPtBins(nPtBins, &(axisPt.binEdges)[0]);
380-
fWeightsREF->Init(true, false);
381-
fWeightsK0s->SetPtBins(nPtBins, &(axisPt.binEdges)[0]);
382-
fWeightsK0s->Init(true, false);
383-
fWeightsLambda->SetPtBins(nPtBins, &(axisPt.binEdges)[0]);
384-
fWeightsLambda->Init(true, false);
385-
fWeightsXi->SetPtBins(nPtBins, &(axisPt.binEdges)[0]);
386-
fWeightsXi->Init(true, false);
387-
fWeightsOmega->SetPtBins(nPtBins, &(axisPt.binEdges)[0]);
388-
fWeightsOmega->Init(true, false);
379+
fWeightsREF->setPtBins(nPtBins, &(axisPt.binEdges)[0]);
380+
fWeightsREF->init(true, false);
381+
fWeightsK0s->setPtBins(nPtBins, &(axisPt.binEdges)[0]);
382+
fWeightsK0s->init(true, false);
383+
fWeightsLambda->setPtBins(nPtBins, &(axisPt.binEdges)[0]);
384+
fWeightsLambda->init(true, false);
385+
fWeightsXi->setPtBins(nPtBins, &(axisPt.binEdges)[0]);
386+
fWeightsXi->init(true, false);
387+
fWeightsOmega->setPtBins(nPtBins, &(axisPt.binEdges)[0]);
388+
fWeightsOmega->init(true, false);
389389
}
390390
}
391391

@@ -565,7 +565,7 @@ struct FlowGFWOmegaXi {
565565
return false;
566566
weight_nue = 1. / eff;
567567
if (mAcceptance.size() == 5)
568-
weight_nua = mAcceptance[ispecies]->GetNUA(track.phi(), track.eta(), vtxz);
568+
weight_nua = mAcceptance[ispecies]->getNUA(track.phi(), track.eta(), vtxz);
569569
else
570570
weight_nua = 1;
571571
return true;
@@ -681,7 +681,7 @@ struct FlowGFWOmegaXi {
681681
fGFW->Fill(track.eta(), ptbin, track.phi(), wacc * weff, 32);
682682
}
683683
if (cfgOutputNUAWeights)
684-
fWeightsREF->Fill(track.phi(), track.eta(), vtxz, track.pt(), cent, 0);
684+
fWeightsREF->fill(track.phi(), track.eta(), vtxz, track.pt(), cent, 0);
685685
}
686686
// fill GFW of V0 flow
687687
for (const auto& v0 : V0s) {
@@ -767,15 +767,15 @@ struct FlowGFWOmegaXi {
767767
registry.fill(HIST("hEtaPhiVtxzPOIK0s"), v0.phi(), v0.eta(), vtxz, wacc);
768768
fGFW->Fill(v0.eta(), fV0PtAxis->FindBin(v0.pt()) - 1 + ((fK0sMass->FindBin(v0.mK0Short()) - 1) * nV0PtBins), v0.phi(), wacc * weff, 8);
769769
if (cfgOutputNUAWeights)
770-
fWeightsK0s->Fill(v0.phi(), v0.eta(), vtxz, v0.pt(), cent, 0);
770+
fWeightsK0s->fill(v0.phi(), v0.eta(), vtxz, v0.pt(), cent, 0);
771771
}
772772
if (isLambda) {
773773
candNum[1] = candNum[1] + 1;
774774
registry.fill(HIST("InvMassLambda"), v0.pt(), v0.mLambda(), v0.eta(), cent);
775775
registry.fill(HIST("hEtaPhiVtxzPOILambda"), v0.phi(), v0.eta(), vtxz, wacc);
776776
fGFW->Fill(v0.eta(), fV0PtAxis->FindBin(v0.pt()) - 1 + ((fLambdaMass->FindBin(v0.mLambda()) - 1) * nV0PtBins), v0.phi(), wacc * weff, 16);
777777
if (cfgOutputNUAWeights)
778-
fWeightsLambda->Fill(v0.phi(), v0.eta(), vtxz, v0.pt(), cent, 0);
778+
fWeightsLambda->fill(v0.phi(), v0.eta(), vtxz, v0.pt(), cent, 0);
779779
}
780780
}
781781
// fill GFW of casc flow
@@ -861,15 +861,15 @@ struct FlowGFWOmegaXi {
861861
registry.fill(HIST("InvMassOmega"), casc.pt(), casc.mOmega(), casc.eta(), cent);
862862
fGFW->Fill(casc.eta(), fXiPtAxis->FindBin(casc.pt()) - 1 + ((fOmegaMass->FindBin(casc.mOmega()) - 1) * nXiPtBins), casc.phi(), wacc * weff, 4);
863863
if (cfgOutputNUAWeights)
864-
fWeightsOmega->Fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0);
864+
fWeightsOmega->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0);
865865
}
866866
if (isXi) {
867867
candNum[2] = candNum[2] + 1;
868868
registry.fill(HIST("hEtaPhiVtxzPOIXi"), casc.phi(), casc.eta(), vtxz, wacc);
869869
registry.fill(HIST("InvMassXi"), casc.pt(), casc.mXi(), casc.eta(), cent);
870870
fGFW->Fill(casc.eta(), fXiPtAxis->FindBin(casc.pt()) - 1 + ((fXiMass->FindBin(casc.mXi()) - 1) * nXiPtBins), casc.phi(), wacc * weff, 2);
871871
if (cfgOutputNUAWeights)
872-
fWeightsXi->Fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0);
872+
fWeightsXi->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0);
873873
}
874874
}
875875
for (int i = 0; i < 4; i++) {

PWGCF/Flow/Tasks/flowGfwTask.cxx

Lines changed: 107 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ struct FlowGfwTask {
7979
O2_DEFINE_CONFIGURABLE(cfgNoSameBunchPileup, bool, false, "kNoSameBunchPileup");
8080
O2_DEFINE_CONFIGURABLE(cfgIsGoodZvtxFT0vsPV, bool, false, "kIsGoodZvtxFT0vsPV");
8181
O2_DEFINE_CONFIGURABLE(cfgNoCollInTimeRangeStandard, bool, false, "kNoCollInTimeRangeStandard");
82+
O2_DEFINE_CONFIGURABLE(cfgEvSelkIsGoodITSLayersAll, bool, false, "kIsGoodITSLayersAll")
8283
O2_DEFINE_CONFIGURABLE(cfgOccupancy, bool, false, "Bool for event selection on detector occupancy");
8384
O2_DEFINE_CONFIGURABLE(cfgMultCut, bool, false, "Use additional event cut on mult correlations");
8485
O2_DEFINE_CONFIGURABLE(FineBinning, bool, false, "Manually change to fine binning")
@@ -96,13 +97,22 @@ struct FlowGfwTask {
9697
ConfigurableAxis axisCentForQA{"axisCentForQA", {100, 0, 100}, "centrality for QA"};
9798
ConfigurableAxis axisT0C{"axisT0C", {70, 0, 70000}, "N_{ch} (T0C)"};
9899
ConfigurableAxis axisT0A{"axisT0A", {200, 0, 200000}, "N_{ch} (T0A)"};
100+
ConfigurableAxis axisT0M{"axisT0M", {70, 0, 70000}, "N_{ch} (T0M)"};
99101
ConfigurableAxis axisFT0CAmp{"axisFT0CAmp", {5000, 0, 5000}, "axisFT0CAmp"};
100102
ConfigurableAxis axisFT0AAmp{"axisFT0AAmp", {5000, 0, 5000}, "axisFT0AAmp"};
101103
ConfigurableAxis axisFT0MAmp{"axisFT0MAmp", {10000, 0, 10000}, "axisFT0MAmp"};
102104
ConfigurableAxis axisNchPV{"axisNchPV", {4000, 0, 4000}, "N_{ch} (PV)"};
103105
ConfigurableAxis axisDCAz{"axisDCAz", {200, -2, 2}, "DCA_{z} (cm)"};
104106
ConfigurableAxis axisDCAxy{"axisDCAxy", {200, -1, 1}, "DCA_{xy} (cm)"};
105107

108+
// Configurables for ZDC
109+
Configurable<int> nBinsAmp{"nBinsAmp", 1025, "nbinsAmp"};
110+
Configurable<float> maxZN{"maxZN", 4099.5, "Max ZN signal"};
111+
Configurable<float> maxZP{"maxZP", 3099.5, "Max ZP signal"};
112+
Configurable<float> maxZEM{"maxZEM", 3099.5, "Max ZEM signal"};
113+
Configurable<int> nBinsFit{"nBinsFit", 1000, "nbinsFit"};
114+
Configurable<float> maxMultFT0{"maxMultFT0", 3000, "Max FT0 signal"};
115+
106116
// Corrections
107117
TH1D* mEfficiency = nullptr;
108118
GFWWeights* mAcceptance = nullptr;
@@ -167,6 +177,7 @@ struct FlowGfwTask {
167177
kNOPSAMEBUNCHPILEUP,
168178
kISGOODZVTXFT0VSPV,
169179
kNOCOLLINTIMERANGESTANDART,
180+
kISGOODITSLAYERSALL,
170181
kAFTERMULTCUTS,
171182
kCENTRALITY,
172183
kNOOFEVENTSTEPS
@@ -201,6 +212,7 @@ struct FlowGfwTask {
201212
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kNOPSAMEBUNCHPILEUP + 1, "kNoSameBunchPileup");
202213
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kISGOODZVTXFT0VSPV + 1, "kIsGoodZvtxFT0vsPV");
203214
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kNOCOLLINTIMERANGESTANDART + 1, "kNoCollInTimeRangeStandard");
215+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kISGOODITSLAYERSALL + 1, "kIsGoodITSLayersAll");
204216
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kAFTERMULTCUTS + 1, "After Mult cuts");
205217
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(kCENTRALITY + 1, "Centrality");
206218
registry.add("hPhi", "#phi distribution", {HistType::kTH1D, {axisPhi}});
@@ -219,6 +231,8 @@ struct FlowGfwTask {
219231
registry.add("BeforeCut_globalTracks_multV0A", "before cut;mulplicity V0A;mulplicity global tracks", {HistType::kTH2D, {axisT0A, axisNch}});
220232
registry.add("BeforeCut_multV0A_multT0A", "before cut;mulplicity T0A;mulplicity V0A", {HistType::kTH2D, {axisT0A, axisT0A}});
221233
registry.add("BeforeCut_multT0C_centT0C", "before cut;Centrality T0C;mulplicity T0C", {HistType::kTH2D, {axisCentForQA, axisT0C}});
234+
registry.add("BeforeCut_multT0A_centT0A", "before cut;Centrality T0C;mulplicity T0A", {HistType::kTH2D, {axisCentForQA, axisT0A}});
235+
registry.add("BeforeCut_multFT0M_centFT0M", "before cut;Centrality FT0M;mulplicity FT0M", {HistType::kTH2D, {axisCentForQA, axisT0M}});
222236

223237
// After cuts
224238
registry.add("globalTracks_centT0C_Aft", "after cut;Centrality T0C;mulplicity global tracks", {HistType::kTH2D, {axisCentForQA, axisNch}});
@@ -228,12 +242,30 @@ struct FlowGfwTask {
228242
registry.add("globalTracks_multV0A_Aft", "after cut;mulplicity V0A;mulplicity global tracks", {HistType::kTH2D, {axisT0A, axisNch}});
229243
registry.add("multV0A_multT0A_Aft", "after cut;mulplicity T0A;mulplicity V0A", {HistType::kTH2D, {axisT0A, axisT0A}});
230244
registry.add("multT0C_centT0C_Aft", "after cut;Centrality T0C;mulplicity T0C", {HistType::kTH2D, {axisCentForQA, axisT0C}});
245+
registry.add("multT0A_centT0A_Aft", "after cut;Centrality T0A;mulplicity T0A", {HistType::kTH2D, {axisCentForQA, axisT0A}});
246+
registry.add("multFT0M_centFT0M_Aft", "after cut;Centrality FT0M;mulplicity FT0M", {HistType::kTH2D, {axisCentForQA, axisT0M}});
231247

232248
// FT0 plots
233249
registry.add("FT0CAmp", ";FT0C amplitude;Events", kTH1F, {axisFT0CAmp});
234250
registry.add("FT0AAmp", ";FT0A amplitude;Events", kTH1F, {axisFT0AAmp});
235251
registry.add("FT0MAmp", ";FT0M amplitude;Events", kTH1F, {axisFT0MAmp});
236252

253+
// ZDC plots
254+
const AxisSpec axisEvent{3, 0., +3.0, ""};
255+
registry.add("hEventCounterForZDC", "Event counter", kTH1F, {axisEvent});
256+
registry.add("ZNAcoll", "ZNAcoll; ZNA amplitude; Entries", {HistType::kTH1F, {{nBinsAmp, -0.5, maxZN}}});
257+
registry.add("ZPAcoll", "ZPAcoll; ZPA amplitude; Entries", {HistType::kTH1F, {{nBinsAmp, -0.5, maxZP}}});
258+
registry.add("ZNCcoll", "ZNCcoll; ZNC amplitude; Entries", {HistType::kTH1F, {{nBinsAmp, -0.5, maxZN}}});
259+
registry.add("ZPCcoll", "ZPCcoll; ZPC amplitude; Entries", {HistType::kTH1F, {{nBinsAmp, -0.5, maxZP}}});
260+
registry.add("ZNvsFT0correl", "ZNvsFT0correl", {HistType::kTH2F, {{{nBinsFit, 0., maxMultFT0}, {nBinsAmp, -0.5, 2. * maxZN}}}});
261+
registry.add("ZDCAmp", "ZDC Amplitude; ZDC Amplitude; Events", {HistType::kTH1F, {{nBinsAmp, -0.5, maxZP}}});
262+
registry.add("ZNvsZEMcoll", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
263+
registry.add("ZNvsZEMcoll05", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
264+
registry.add("ZNvsZEMcoll510", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
265+
registry.add("ZNvsZEMcoll1020", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
266+
registry.add("ZNvsZEMcoll2030", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
267+
registry.add("ZNvsZEMcollrest", "ZNvsZEMcoll; ZEM; ZNA+ZNC", {HistType::kTH2F, {{{nBinsAmp, -0.5, maxZEM}, {nBinsAmp, -0.5, 2. * maxZN}}}});
268+
237269
// Track plots
238270
registry.add("Events_per_Centrality_Bin", "Events_per_Centrality_Bin;Centrality FT0C;No. of Events", kTH1F, {axisCentrality});
239271
registry.add("Global_Tracks_Nch_vs_Cent", "Global Tracks;Centrality (%); M (|#eta| < 0.8);", {HistType::kTH2D, {axisCentrality, axisNch}});
@@ -332,8 +364,8 @@ struct FlowGfwTask {
332364
fPtAxis = new TAxis(nPtBins, ptBins);
333365

334366
if (cfgOutputNUAWeights) {
335-
fWeights->SetPtBins(nPtBins, ptBins);
336-
fWeights->Init(true, false);
367+
fWeights->setPtBins(nPtBins, ptBins);
368+
fWeights->init(true, false);
337369
}
338370

339371
// add in FlowContainer to Get boostrap sample automatically
@@ -477,7 +509,7 @@ struct FlowGfwTask {
477509
return false;
478510
weight_nue = 1. / eff;
479511
if (mAcceptance)
480-
weight_nua = mAcceptance->GetNUA(phi, eta, vtxz);
512+
weight_nua = mAcceptance->getNUA(phi, eta, vtxz);
481513
else
482514
weight_nua = 1;
483515
return true;
@@ -532,6 +564,13 @@ struct FlowGfwTask {
532564
}
533565
registry.fill(HIST("hEventCount"), kNOCOLLINTIMERANGESTANDART);
534566
}
567+
if (cfgEvSelkIsGoodITSLayersAll) {
568+
if (cfgEvSelkIsGoodITSLayersAll && !collision.selection_bit(o2::aod::evsel::kIsGoodITSLayersAll)) {
569+
// no other collisions in this Readout Frame with per-collision multiplicity above threshold
570+
return false;
571+
}
572+
registry.fill(HIST("hEventCount"), kISGOODITSLAYERSALL);
573+
}
535574

536575
float vtxz = -999;
537576
if (collision.numContrib() > 1) {
@@ -614,10 +653,12 @@ struct FlowGfwTask {
614653
Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
615654
Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPtMin) && (aod::track::pt < cfgCutPtMax) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true)) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < cfgCutDCAz) && (nabs(aod::track::dcaXY) < cfgCutDCAxy);
616655

617-
using Colls = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs>>; // collisions filter
656+
using Colls = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>>; // collisions filter
618657
using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksDCA, aod::TracksExtra>>; // tracks filter
619658

620-
void processData(Colls::iterator const& collision, aod::BCsWithTimestamps const&, AodTracks const& tracks, aod::FT0s const&)
659+
using BCsRun3 = soa::Join<aod::BCs, aod::Timestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
660+
661+
void processData(Colls::iterator const& collision, aod::BCsWithTimestamps const&, AodTracks const& tracks, aod::FT0s const&, aod::Zdcs const&, BCsRun3 const&)
621662
{
622663
registry.fill(HIST("hEventCount"), kFILTERED);
623664
if (!collision.sel8())
@@ -635,6 +676,8 @@ struct FlowGfwTask {
635676
registry.fill(HIST("BeforeCut_globalTracks_multV0A"), collision.multFV0A(), tracks.size());
636677
registry.fill(HIST("BeforeCut_multV0A_multT0A"), collision.multFT0A(), collision.multFV0A());
637678
registry.fill(HIST("BeforeCut_multT0C_centT0C"), collision.centFT0C(), collision.multFT0C());
679+
registry.fill(HIST("BeforeCut_multT0A_centT0A"), collision.centFT0A(), collision.multFT0A());
680+
registry.fill(HIST("BeforeCut_multFT0M_centFT0M"), collision.centFT0M(), collision.multFT0M());
638681
registry.fill(HIST("hEventCount"), kSEL8);
639682

640683
const auto centrality = collision.centFT0C();
@@ -662,7 +705,7 @@ struct FlowGfwTask {
662705

663706
fGFW->Clear();
664707

665-
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
708+
auto bc = collision.bc_as<BCsRun3>();
666709
loadCorrections(bc.timestamp());
667710
registry.fill(HIST("hEventCount"), kCENTRALITY);
668711

@@ -674,26 +717,67 @@ struct FlowGfwTask {
674717
registry.fill(HIST("globalTracks_multV0A_Aft"), collision.multFV0A(), tracks.size());
675718
registry.fill(HIST("multV0A_multT0A_Aft"), collision.multFT0A(), collision.multFV0A());
676719
registry.fill(HIST("multT0C_centT0C_Aft"), collision.centFT0C(), collision.multFT0C());
720+
registry.fill(HIST("multT0A_centT0A_Aft"), collision.centFT0A(), collision.multFT0A());
721+
registry.fill(HIST("multFT0M_centFT0M_Aft"), collision.centFT0M(), collision.multFT0M());
677722

678-
// FT0 amplitude to use in fine binning
679-
double ft0aAmp = 0;
680-
double ft0cAmp = 0;
723+
const auto& foundBC = collision.foundBC_as<BCsRun3>();
724+
if (foundBC.has_zdc()) {
725+
registry.fill(HIST("hEventCounterForZDC"), 1);
681726

682-
if (collision.has_foundFT0()) {
683-
auto ft0 = collision.foundFT0();
684-
for (const auto& amplitude : ft0.amplitudeA()) {
685-
ft0aAmp += amplitude;
686-
}
687-
for (const auto& amplitude : ft0.amplitudeC()) {
688-
ft0cAmp += amplitude;
689-
}
690-
}
727+
// FT0 amplitude to use in fine binning
728+
double ft0aAmp = 0;
729+
double ft0cAmp = 0;
691730

692-
registry.fill(HIST("FT0AAmp"), ft0aAmp);
693-
registry.fill(HIST("FT0CAmp"), ft0cAmp);
731+
if (collision.has_foundFT0()) {
732+
auto ft0 = collision.foundFT0();
733+
for (const auto& amplitude : ft0.amplitudeA()) {
734+
ft0aAmp += amplitude;
735+
}
736+
for (const auto& amplitude : ft0.amplitudeC()) {
737+
ft0cAmp += amplitude;
738+
}
739+
} else {
740+
ft0aAmp = ft0cAmp = -999;
741+
}
694742

695-
double ft0mAmp = ft0aAmp + ft0cAmp;
696-
registry.fill(HIST("FT0MAmp"), ft0mAmp);
743+
registry.fill(HIST("FT0AAmp"), ft0aAmp);
744+
registry.fill(HIST("FT0CAmp"), ft0cAmp);
745+
746+
double ft0mAmp = ft0aAmp + ft0cAmp;
747+
registry.fill(HIST("FT0MAmp"), ft0mAmp);
748+
749+
// ZDC amplitude to use in fine binning
750+
const auto& zdcread = foundBC.zdc();
751+
auto aZNA = zdcread.amplitudeZNA();
752+
auto aZNC = zdcread.amplitudeZNC();
753+
auto aZPA = zdcread.amplitudeZPA();
754+
auto aZPC = zdcread.amplitudeZPC();
755+
auto aZEM1 = zdcread.amplitudeZEM1();
756+
auto aZEM2 = zdcread.amplitudeZEM2();
757+
758+
registry.fill(HIST("ZNAcoll"), aZNA);
759+
registry.fill(HIST("ZNCcoll"), aZNC);
760+
registry.fill(HIST("ZPAcoll"), aZPA);
761+
registry.fill(HIST("ZPCcoll"), aZPC);
762+
763+
double aZDC = aZNC + aZNA + aZPA + aZPC;
764+
registry.fill(HIST("ZNvsFT0correl"), (ft0aAmp + ft0aAmp) / 100., aZNC + aZNA);
765+
registry.fill(HIST("ZDCAmp"), aZDC);
766+
767+
registry.fill(HIST("ZNvsZEMcoll"), aZEM1 + aZEM2, aZNA + aZNC);
768+
769+
if (centrality >= 0 && centrality <= 5) {
770+
registry.fill(HIST("ZNvsZEMcoll05"), aZEM1 + aZEM2, aZNA + aZNC);
771+
} else if (centrality > 5 && centrality <= 10) {
772+
registry.fill(HIST("ZNvsZEMcoll510"), aZEM1 + aZEM2, aZNA + aZNC);
773+
} else if (centrality > 10 && centrality <= 20) {
774+
registry.fill(HIST("ZNvsZEMcoll1020"), aZEM1 + aZEM2, aZNA + aZNC);
775+
} else if (centrality > 20 && centrality <= 30) {
776+
registry.fill(HIST("ZNvsZEMcoll2030"), aZEM1 + aZEM2, aZNA + aZNC);
777+
} else {
778+
registry.fill(HIST("ZNvsZEMcollrest"), aZEM1 + aZEM2, aZNA + aZNC);
779+
}
780+
} // End of ZDC
697781

698782
// track weights
699783
float weff = 1, wacc = 1;
@@ -708,15 +792,14 @@ struct FlowGfwTask {
708792
int globalTracksNch = 0;
709793

710794
for (const auto& track : tracks) {
711-
712795
if (!trackSelected(track))
713796
continue;
714797

715798
if (cfgUseAdditionalTrackCut && !trackSelected(track, magnetfield))
716799
continue;
717800

718801
if (cfgOutputNUAWeights)
719-
fWeights->Fill(track.phi(), track.eta(), vtxz, track.pt(), centrality, 0);
802+
fWeights->fill(track.phi(), track.eta(), vtxz, track.pt(), centrality, 0);
720803

721804
if (!setCurrentParticleWeights(weff, wacc, track.phi(), track.eta(), track.pt(), vtxz))
722805
continue;

0 commit comments

Comments
 (0)