Skip to content

Commit 1b8fbe3

Browse files
vbarbasoVeronika Barbasova
andauthored
centrality axis (#6304)
Signed-off-by: Veronika Barbasova <vernika.barbasova@cern.ch> Co-authored-by: Veronika Barbasova <vernika.barbasova@cern.ch>
1 parent 46ea37a commit 1b8fbe3

2 files changed

Lines changed: 44 additions & 8 deletions

File tree

PWGLF/Tasks/Resonances/phianalysisTHnSparse.cxx

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
// or submit itself to any jurisdiction.
1111
///
1212
/// \author Veronika Barbasova (veronika.barbasova@cern.ch)
13-
/// \since April 3, 2024
1413

1514
#include <TLorentzVector.h>
1615

1716
#include "Common/DataModel/EventSelection.h"
1817
#include "Common/DataModel/Multiplicity.h"
18+
#include "Common/DataModel/Centrality.h"
1919
#include "Common/DataModel/PIDResponse.h"
2020
#include "Common/DataModel/TrackSelectionTables.h"
2121
#include "Framework/ASoAHelpers.h"
@@ -74,6 +74,7 @@ struct phianalysisTHnSparse {
7474
ConfigurableAxis ptaxis{"pt-axis", {20, 0., 20.}, "Pt axis binning."};
7575
ConfigurableAxis vzaxis{"vz-axis", {40, -20., 20.}, "Z vertex position axis binning."};
7676
ConfigurableAxis multiplicityaxis{"multiplicity-axis", {50, 0., 5000.}, "Multiplicity axis binning."};
77+
ConfigurableAxis centralityaxis{"centrality-axis", {20, 0., 100.}, "Centrality axis binning."};
7778
ConfigurableAxis etaaxis{"eta-axis", {16., -1.0 * static_cast<float>(cut.etatrack), static_cast<float>(cut.etatrack)}, "Pseudorapidity axis binning."};
7879
ConfigurableAxis rapidityaxis{"rapidity-axis", {10., -1.0 * static_cast<float>(cut.y), static_cast<float>(cut.y)}, "Rapidity axis binning."};
7980
ConfigurableAxis nsigmaaxisPos{"nsigma-pos-axis", {1, 0., static_cast<float>(cut.tpcnSigmaPos)}, "NSigma of positive particle axis binning in THnSparse."};
@@ -116,11 +117,11 @@ struct phianalysisTHnSparse {
116117
Filter etaFilter = nabs(aod::track::eta) < static_cast<float>(cut.etatrack);
117118
Filter dcaFilter = (nabs(o2::aod::track::dcaXY) < static_cast<float>(cut.dcaXY)) && (nabs(o2::aod::track::dcaZ) < static_cast<float>(cut.dcaZ));
118119

119-
using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults>>;
120+
using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms>>;
120121
using EventCandidate = EventCandidates::iterator;
121122
using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa>>;
122123

123-
using EventCandidatesMC = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::McCollisionLabels>>;
124+
using EventCandidatesMC = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::McCollisionLabels>>;
124125
using TrackCandidatesMC = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::McTrackLabels>>;
125126

126127
Partition<TrackCandidates> positive = (aod::track::signed1Pt > 0.0f) && (nabs(o2::aod::pidtpc::tpcNSigmaKa) < std::abs(static_cast<float>(cut.tpcnSigmaPos)));
@@ -136,6 +137,8 @@ struct phianalysisTHnSparse {
136137
AxisSpec ptAxis = {ptaxis, "p_{T} (GeV/c)", "pt"};
137138
AxisSpec muAxis = {multiplicityaxis, "N", "mu"};
138139
AxisSpec mumAxis = {multiplicityaxis, "N", "mum"};
140+
AxisSpec ceAxis = {centralityaxis, "N", "ce"};
141+
AxisSpec cemAxis = {centralityaxis, "N", "cem"};
139142
AxisSpec etaAxis = {etaaxis, "#eta", "eta"};
140143
AxisSpec yAxis = {rapidityaxis, "y", "y"};
141144
AxisSpec nsAxisPos = {nsigmaaxisPos, fmt::format("nSigma of positive particle ({})", massPos), "ns1"};
@@ -148,7 +151,7 @@ struct phianalysisTHnSparse {
148151
AxisSpec tpcNClsFoundAxis = {tpcNClsFound_bins, "TPC NCl", "ncl"};
149152

150153
// All axes has to have same order as defined enum o2::analysis::rsn::PairAxisType (name from AxisSpec is taken to compare in o2::analysis::rsn::Output::init())
151-
std::vector<AxisSpec> allAxes = {invAxis, ptAxis, muAxis, nsAxisPos, nsAxisNeg, etaAxis, yAxis, vzAxis, mumAxis, vzmAxis};
154+
std::vector<AxisSpec> allAxes = {invAxis, ptAxis, muAxis, ceAxis, nsAxisPos, nsAxisNeg, etaAxis, yAxis, vzAxis, mumAxis, cemAxis, vzmAxis};
152155
std::vector<AxisSpec> allAxes_sys = {tpcNClsFoundAxis};
153156

154157
QA = static_cast<bool>(produce.QA);
@@ -165,6 +168,8 @@ struct phianalysisTHnSparse {
165168
if (QA) {
166169
// Event QA
167170
registry.add("QAEvent/hVtxZ", "", kTH1F, {posZaxis});
171+
registry.add("QAEvent/hCent", "", kTH1F, {{20, 0., 100.}});
172+
registry.add("QAEvent/hMult", "", kTH1F, {{50, 0., 10000.}});
168173
registry.add("QAEvent/s4Size", "", kTHnSparseF, {{30, 0., 30.}, {30, 0., 30.}, muAxis, vzAxis});
169174
registry.add("QAEvent/s2Mult_Vz", "", kTHnSparseF, {axisMultiplicityMixing, axisVertexMixing});
170175
// Track QA
@@ -218,21 +223,29 @@ struct phianalysisTHnSparse {
218223
template <typename T>
219224
float GetMultiplicity(const T& collision)
220225
{
221-
float multiplicity = collision.multFV0C() + collision.multFV0A();
226+
float multiplicity = collision.multFT0C() + collision.multFT0A();
222227
return multiplicity;
223228
}
229+
template <typename T>
230+
float GetCentrality(const T& collision)
231+
{
232+
float centrality = collision.centFT0M();
233+
return centrality;
234+
}
224235

225-
double* FillPointPair(double im, double pt, double mu, double ns1, double ns2, double eta, double y, double vz, double mum, double vzm)
236+
double* FillPointPair(double im, double pt, double mu, double ce, double ns1, double ns2, double eta, double y, double vz, double mum, double cem, double vzm)
226237
{
227238
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::im)] = im;
228239
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::pt)] = pt;
229240
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::mu)] = mu;
241+
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::ce)] = ce;
230242
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::ns1)] = ns1;
231243
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::ns2)] = ns2;
232244
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::eta)] = eta;
233245
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::y)] = y;
234246
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::vz)] = vz;
235247
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::mum)] = mum;
248+
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::cem)] = cem;
236249
pointPair[static_cast<int>(o2::analysis::rsn::PairAxisType::vzm)] = vzm;
237250

238251
return pointPair;
@@ -252,8 +265,11 @@ struct phianalysisTHnSparse {
252265
LOGF(info, "pos=%lld neg=%lld, Z vertex position: %f [cm], %d, mult:%f.0", posDauthers.size(), negDauthers.size(), collision.posZ(),
253266
collision.globalIndex(), GetMultiplicity(collision));
254267

255-
if (QA)
268+
if (QA) {
256269
registry.fill(HIST("QAEvent/hVtxZ"), collision.posZ());
270+
registry.fill(HIST("QAEvent/hMult"), GetMultiplicity(collision));
271+
registry.fill(HIST("QAEvent/hCent"), GetCentrality(collision));
272+
}
257273

258274
for (auto& [track1, track2] : combinations(o2::soa::CombinationsFullIndexPolicy(posDauthers, negDauthers))) {
259275
if (QA) {
@@ -288,12 +304,14 @@ struct phianalysisTHnSparse {
288304
pointPair = FillPointPair(mother.Mag(),
289305
mother.Pt(),
290306
GetMultiplicity(collision),
307+
GetCentrality(collision),
291308
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
292309
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
293310
mother.Eta(),
294311
mother.Rapidity(),
295312
collision.posZ(),
296313
0,
314+
0,
297315
0);
298316
rsnOutput->fillUnlikepm(pointPair);
299317
}
@@ -315,12 +333,14 @@ struct phianalysisTHnSparse {
315333
pointPair = FillPointPair(mother.Mag(),
316334
mother.Pt(),
317335
GetMultiplicity(collision),
336+
GetCentrality(collision),
318337
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
319338
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
320339
mother.Eta(),
321340
mother.Rapidity(),
322341
collision.posZ(),
323342
0,
343+
0,
324344
0);
325345

326346
rsnOutput->fillLikepp(pointPair);
@@ -341,12 +361,14 @@ struct phianalysisTHnSparse {
341361
pointPair = FillPointPair(mother.Mag(),
342362
mother.Pt(),
343363
GetMultiplicity(collision),
364+
GetCentrality(collision),
344365
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
345366
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
346367
mother.Eta(),
347368
mother.Rapidity(),
348369
collision.posZ(),
349370
0,
371+
0,
350372
0);
351373

352374
rsnOutput->fillLikemm(pointPair);
@@ -424,12 +446,14 @@ struct phianalysisTHnSparse {
424446
pointPair = FillPointPair(mother.Mag(),
425447
mother.Pt(),
426448
GetMultiplicity(collision),
449+
GetCentrality(collision),
427450
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
428451
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
429452
mother.Eta(),
430453
mother.Rapidity(),
431454
collision.posZ(),
432455
0,
456+
0,
433457
0);
434458

435459
rsnOutput->fillUnliketrue(pointPair);
@@ -485,12 +509,14 @@ struct phianalysisTHnSparse {
485509
pointPair = FillPointPair(mother.Mag(),
486510
mother.Pt(),
487511
0,
512+
0,
488513
std::abs(static_cast<float>(cut.tpcnSigmaPos) / 2.0),
489514
std::abs(static_cast<float>(cut.tpcnSigmaNeg) / 2.0),
490515
mother.Eta(),
491516
mother.Rapidity(),
492517
mcCollision.posZ(),
493518
0,
519+
0,
494520
0);
495521

496522
rsnOutput->fillUnlikegen(pointPair);
@@ -553,12 +579,14 @@ struct phianalysisTHnSparse {
553579
pointPair = FillPointPair(mother.Mag(),
554580
mother.Pt(),
555581
GetMultiplicity(c1),
582+
GetCentrality(c1),
556583
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
557584
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
558585
mother.Eta(),
559586
mother.Rapidity(),
560587
c1.posZ(),
561588
GetMultiplicity(c2),
589+
GetCentrality(c2),
562590
c2.posZ());
563591

564592
rsnOutput->fillMixingpm(pointPair);
@@ -580,12 +608,14 @@ struct phianalysisTHnSparse {
580608
pointPair = FillPointPair(mother.Mag(),
581609
mother.Pt(),
582610
GetMultiplicity(c1),
611+
GetCentrality(c1),
583612
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
584613
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
585614
mother.Eta(),
586615
mother.Rapidity(),
587616
c1.posZ(),
588617
GetMultiplicity(c2),
618+
GetCentrality(c2),
589619
c2.posZ());
590620

591621
rsnOutput->fillMixingpp(pointPair);
@@ -604,12 +634,14 @@ struct phianalysisTHnSparse {
604634
pointPair = FillPointPair(mother.Mag(),
605635
mother.Pt(),
606636
GetMultiplicity(c1),
637+
GetCentrality(c1),
607638
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
608639
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
609640
mother.Eta(),
610641
mother.Rapidity(),
611642
c1.posZ(),
612643
GetMultiplicity(c2),
644+
GetCentrality(c2),
613645
c2.posZ());
614646

615647
rsnOutput->fillMixingmm(pointPair);
@@ -630,12 +662,14 @@ struct phianalysisTHnSparse {
630662
pointPair = FillPointPair(mother.Mag(),
631663
mother.Pt(),
632664
GetMultiplicity(c1),
665+
GetCentrality(c1),
633666
(tpcnSigmaPos > 0) ? std::abs(track1.tpcNSigmaKa()) : track1.tpcNSigmaKa(),
634667
(tpcnSigmaNeg > 0) ? std::abs(track2.tpcNSigmaKa()) : track2.tpcNSigmaKa(),
635668
mother.Eta(),
636669
mother.Rapidity(),
637670
c1.posZ(),
638671
GetMultiplicity(c2),
672+
GetCentrality(c2),
639673
c2.posZ());
640674

641675
rsnOutput->fillMixingmp(pointPair);

PWGLF/Utils/rsnOutput.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,14 @@ enum class PairAxisType {
5858
im,
5959
pt,
6060
mu,
61+
ce,
6162
ns1,
6263
ns2,
6364
eta,
6465
y,
6566
vz,
6667
mum,
68+
cem,
6769
vzm,
6870
unknown
6971
};
@@ -74,7 +76,7 @@ enum class SystematicsAxisType {
7476
};
7577
namespace PairAxis
7678
{
77-
std::vector<std::string> names{"im", "pt", "mu", "ns1", "ns2", "eta", "y", "vz", "mum", "vzm"};
79+
std::vector<std::string> names{"im", "pt", "mu", "ce", "ns1", "ns2", "eta", "y", "vz", "mum", "cem", "vzm"};
7880
}
7981

8082
namespace SystematicsAxis

0 commit comments

Comments
 (0)