Skip to content

Commit 7af6b6b

Browse files
authored
PWJGE : Adding multiplicity correlations (#3933)
* add correlation of Multiplicity measures * clang formatting * Fix HistoType * Fix typo * fixing datamodel and extend with FT0A,C * clang formatting * fix type * Fix runtime problems * Fix runtime problem * remove white spaces
1 parent 3c26bdc commit 7af6b6b

File tree

3 files changed

+56
-41
lines changed

3 files changed

+56
-41
lines changed

PWGJE/DataModel/TrackJetQa.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ DECLARE_SOA_INDEX_COLUMN(BC, bc); //! Most probably BC to where this collision h
4848
DECLARE_SOA_COLUMN(RunNumber, runNumber, int);
4949
DECLARE_SOA_COLUMN(Sel8, sel8, bool);
5050
DECLARE_SOA_COLUMN(MultNTracksPV, multNTracksPV, int);
51-
DECLARE_SOA_COLUMN(MultTracklets, multTracklets, int);
52-
DECLARE_SOA_COLUMN(MultFT0M, multFT0M, float);
53-
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float);
51+
DECLARE_SOA_COLUMN(MultFT0C, multFT0C, float);
52+
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float);
53+
DECLARE_SOA_COLUMN(MultFT0A, multFT0A, float);
54+
DECLARE_SOA_COLUMN(CentFT0A, centFT0A, float);
5455
// Track info
5556
DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! Index to the collision
5657
DECLARE_SOA_COLUMN(IsPVContributor, isPVContributor, bool); //! IsPVContributor
@@ -76,9 +77,10 @@ DECLARE_SOA_TABLE(JeColls, "AOD", "JECOLLS",
7677
collision::PosZ,
7778
jetspectra::Sel8,
7879
jetspectra::MultNTracksPV,
79-
jetspectra::MultTracklets,
80-
jetspectra::MultFT0M,
81-
jetspectra::CentFT0M,
80+
jetspectra::MultFT0A,
81+
jetspectra::MultFT0C,
82+
jetspectra::CentFT0A,
83+
jetspectra::CentFT0C,
8284
jetspectra::RunNumber);
8385
using JeColl = JeColls::iterator;
8486

PWGJE/TableProducer/jettrackderived.cxx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,17 @@ struct jetspectraDerivedMaker {
105105
histos.add("EventProp/collisionVtxZSel8", "Collsion Vertex Z with event selection;#it{Vtx}_{z} [cm];number of entries", HistType::kTH1F, {{nBins, -20, 20}});
106106
histos.add("EventProp/sampledvertexz", "Sampled collsion Vertex Z with event selection;#it{Vtx}_{z} [cm];number of entries", HistType::kTH1F, {{nBins, -20, 20}});
107107

108-
const AxisSpec axisPercentile{binsPercentile, "Centrality FT0M"};
108+
const AxisSpec axisPercentileFT0A{binsPercentile, "Centrality FT0A"};
109+
const AxisSpec axisPercentileFT0C{binsPercentile, "Centrality FT0C"};
109110
const AxisSpec axisMultiplicityPV{binsMultiplicity, "MultNTracksPV"};
110-
const AxisSpec axisMultiplicityTracklets{binsMultiplicity, "MultTracklets"};
111-
const AxisSpec axisMultiplicityFT0M{binsMultiplicity, "Multiplicity FT0M"};
111+
const AxisSpec axisMultiplicityFT0A{binsMultiplicity, "Multiplicity FT0A"};
112+
const AxisSpec axisMultiplicityFT0C{binsMultiplicity, "Multiplicity FT0C"};
112113

113-
histos.add("Centrality/FT0M", "CentFT0M", HistType::kTH1D, {axisPercentile});
114+
histos.add("Centrality/FT0A", "CentFT0A", HistType::kTH1D, {axisPercentileFT0A});
115+
histos.add("Centrality/FT0C", "CentFT0C", HistType::kTH1D, {axisPercentileFT0C});
114116
histos.add("Mult/NTracksPV", "MultNTracksPV", HistType::kTH1D, {axisMultiplicityPV});
115-
histos.add("Mult/NTracklets", "MultTracklets", HistType::kTH1D, {axisMultiplicityTracklets});
116-
histos.add("Mult/FT0M", "MultFT0M", HistType::kTH1D, {axisMultiplicityFT0M});
117+
histos.add("Mult/FT0A", "MultFT0A", HistType::kTH1D, {axisMultiplicityFT0A});
118+
histos.add("Mult/FT0C", "MultFT0C", HistType::kTH1D, {axisMultiplicityFT0C});
117119
}
118120

119121
template <typename CollisionType, typename TrackType>
@@ -137,9 +139,10 @@ struct jetspectraDerivedMaker {
137139

138140
if (fillMultiplicity) {
139141
histos.fill(HIST("Centrality/FT0M"), collision.centFT0M());
140-
histos.fill(HIST("Mult/NTracksPV"), collision.multNTracksPV());
142+
histos.fill(HIST("Centrality/FT0A"), collision.centFT0A());
141143
histos.fill(HIST("Mult/FT0M"), collision.multFT0M());
142-
histos.fill(HIST("Mult/NTracklets"), collision.multTracklets());
144+
histos.fill(HIST("Mult/FT0A"), collision.multFT0A());
145+
histos.fill(HIST("Mult/NTracksPV"), collision.multNTracksPV());
143146
}
144147
}
145148

@@ -152,7 +155,7 @@ struct jetspectraDerivedMaker {
152155
return true;
153156
}
154157

155-
using CollisionCandidate = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms>;
158+
using CollisionCandidate = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
156159
using TrackCandidates = soa::Join<aod::FullTracks, aod::TracksDCA, aod::TrackSelection, aod::TracksCov>;
157160

158161
Produces<o2::aod::JeColls> tableColl;
@@ -172,9 +175,10 @@ struct jetspectraDerivedMaker {
172175
collision.posZ(),
173176
collision.sel8(),
174177
collision.multNTracksPV(),
175-
collision.multTracklets(),
176-
collision.multFT0M(),
177-
collision.centFT0M(),
178+
collision.multFT0A(),
179+
collision.multFT0C(),
180+
collision.centFT0A(),
181+
collision.centFT0C(),
178182
collision.bc().runNumber());
179183

180184
tableTrack.reserve(tracks.size());

PWGJE/Tasks/trackJetqa.cxx

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -140,22 +140,30 @@ struct TrackJetQa {
140140
histos.add("EventProp/collisionVtxZnoSel", "Collsion Vertex Z without event selection;#it{Vtx}_{z} [cm];number of entries", HistType::kTH1F, {{nBins, -20, 20}});
141141
histos.add("EventProp/collisionVtxZSel8", "Collsion Vertex Z with event selection;#it{Vtx}_{z} [cm];number of entries", HistType::kTH1F, {{nBins, -20, 20}});
142142
// Common axes
143-
const AxisSpec axisPercentile{binsPercentile, "Centrality FT0M"};
143+
const AxisSpec axisPercentileFT0M{binsPercentile, "Centrality FT0M"};
144+
const AxisSpec axisPercentileFT0A{binsPercentile, "Centrality FT0A"};
145+
const AxisSpec axisPercentileFT0C{binsPercentile, "Centrality FT0C"};
144146
const AxisSpec axisMultiplicityPV{binsMultiplicity, "MultNTracksPV"};
145-
const AxisSpec axisMultiplicityTracklets{binsMultiplicity, "MultTracklets"};
146147
const AxisSpec axisMultiplicityFT0M{binsMultiplicity, "Multiplicity FT0M"};
148+
const AxisSpec axisMultiplicityFT0A{binsMultiplicity, "Multiplicity FT0A"};
149+
const AxisSpec axisMultiplicityFT0C{binsMultiplicity, "Multiplicity FT0C"};
147150
const AxisSpec axisPt{binsPt, "#it{p}_{T} (GeV/#it{c})"};
148151
const AxisSpec axisSigma1OverPt{binsSigma1OverPt, "#sigma(1/#it{p}_{T}) (GeV/#it{c})^{-1}"};
149152

150-
histos.add("Centrality/FT0M", "CentFT0M", HistType::kTH1D, {axisPercentile});
153+
histos.add("Centrality/FT0M", "CentFT0M", HistType::kTH1D, {axisPercentileFT0M});
154+
histos.add("Centrality/FT0A", "CentFT0A", HistType::kTH1D, {axisPercentileFT0A});
155+
histos.add("Centrality/FT0C", "CentFT0C", HistType::kTH1D, {axisPercentileFT0M});
151156
histos.add("Mult/NTracksPV", "MultNTracksPV", HistType::kTH1D, {axisMultiplicityPV});
152-
histos.add("Mult/NTracklets", "MultTracklets", HistType::kTH1D, {axisMultiplicityTracklets});
153157
histos.add("Mult/FT0M", "MultFT0M", HistType::kTH1D, {axisMultiplicityFT0M});
158+
histos.add("Mult/FT0A", "MultFT0A", HistType::kTH1D, {axisMultiplicityFT0A});
159+
histos.add("Mult/FT0C", "MultFT0C", HistType::kTH1D, {axisMultiplicityFT0C});
160+
histos.add("Mult/MultCorrelations", "MultCorrelations", HistType::kTHnSparseD, {axisPercentileFT0A, axisPercentileFT0C, axisMultiplicityFT0A, axisMultiplicityFT0C, axisMultiplicityPV});
154161

155-
histos.add("TrackEventPar/Sigma1PtFT0Mcent", "Sigma1Pt vs pT vs FT0M centrality", HistType::kTHnSparseD, {axisPercentile, axisPt, axisSigma1OverPt});
156-
histos.add("TrackEventPar/Sigma1PtFT0Mmult", "Sigma1Pt vs pT vs FT0M multiplicity", HistType::kTHnSparseD, {axisMultiplicityFT0M, axisPt, axisSigma1OverPt});
162+
histos.add("TrackEventPar/Sigma1PtFT0Mcent", "Sigma1Pt vs pT vs FT0M centrality", HistType::kTHnSparseD, {axisPercentileFT0M, axisPt, axisSigma1OverPt});
163+
histos.add("TrackEventPar/Sigma1PtFT0Mmult", "Sigma1Pt vs pT vs FT0A,C multiplicity", HistType::kTHnSparseD, {axisMultiplicityFT0M, axisPt, axisSigma1OverPt});
157164
histos.add("TrackEventPar/Sigma1PtNTracksPV", "Sigma1Pt vs pT vs NTracksPV", HistType::kTHnSparseD, {axisMultiplicityPV, axisPt, axisSigma1OverPt});
158-
histos.add("TrackEventPar/Sigma1PtTracklets", "Sigma1Pt vs pT vs NTrackslets", HistType::kTHnSparseD, {axisMultiplicityTracklets, axisPt, axisSigma1OverPt});
165+
histos.add("TrackEventPar/MultCorrelations", "Sigma1Pt vs pT vs MultCorrelations", HistType::kTHnSparseD, {axisSigma1OverPt, axisPt, axisPercentileFT0A, axisPercentileFT0C, axisMultiplicityFT0A, axisMultiplicityFT0C, axisMultiplicityPV});
166+
159167
// ITS histograms
160168
histos.add("ITS/itsNCls", "number of found ITS clusters", {HistType::kTH2F, {axisPt, {8, -0.5, 7.5, "# clusters ITS"}}});
161169
histos.add("ITS/itsChi2NCl", "chi2 per ITS cluster", {HistType::kTH2F, {axisPt, {100, 0, 40, "chi2 / cluster ITS"}}});
@@ -187,10 +195,11 @@ struct TrackJetQa {
187195
}
188196
histos.fill(HIST("EventProp/collisionVtxZ"), collision.posZ());
189197
if (fillMultiplicity) {
190-
histos.fill(HIST("Centrality/FT0M"), collision.centFT0M());
198+
histos.fill(HIST("Centrality/FT0A"), collision.centFT0A());
199+
histos.fill(HIST("Centrality/FT0C"), collision.centFT0C());
191200
histos.fill(HIST("Mult/NTracksPV"), collision.multNTracksPV());
192-
histos.fill(HIST("Mult/FT0M"), collision.multFT0M());
193-
histos.fill(HIST("Mult/NTracklets"), collision.multTracklets());
201+
histos.fill(HIST("Mult/FT0A"), collision.multFT0A());
202+
histos.fill(HIST("Mult/FT0C"), collision.multFT0C());
194203
}
195204
}
196205

@@ -286,29 +295,32 @@ struct TrackJetQa {
286295
histos.fill(HIST("TPC/tpcChi2NCl"), track.pt(), track.tpcChi2NCl());
287296
}
288297

289-
void processFull(soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms> const& collisions,
298+
Preslice<soa::Join<aod::FullTracks, aod::TracksDCA, aod::TrackSelection, aod::TracksCov>> trackPerColl = aod::track::collisionId;
299+
SliceCache cacheTrk;
300+
void processFull(soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs> const& collisions,
290301
soa::Join<aod::FullTracks, aod::TracksDCA, aod::TrackSelection, aod::TracksCov> const& tracks)
291302
{
292-
for (auto& collision : collisions) {
303+
for (const auto& collision : collisions) {
293304
fillEventQa(collision);
294-
Partition<soa::Join<aod::FullTracks, aod::TracksDCA, aod::TrackSelection, aod::TracksCov>> groupedTracks = aod::track::collisionId == collision.globalIndex();
295-
groupedTracks.bindTable(tracks);
305+
if (fillMultiplicity) {
306+
histos.fill(HIST("Centrality/FT0M"), collision.centFT0M());
307+
histos.fill(HIST("Mult/FT0M"), collision.multFT0M());
308+
histos.fill(HIST("Mult/MultCorrelations"), collision.centFT0A(), collision.centFT0C(), collision.multFT0A(), collision.multFT0C(), collision.multNTracksPV());
309+
}
310+
const auto& tracksInCollision = tracks.sliceByCached(aod::track::collisionId, collision.globalIndex(), cacheTrk);
296311

297-
for (auto& track : groupedTracks) {
312+
for (const auto& track : tracksInCollision) {
298313
fillTrackQa(track);
299314
if (fillMultiplicity) {
300315
histos.fill(HIST("TrackEventPar/Sigma1PtFT0Mcent"), collision.centFT0M(), track.pt(), track.sigma1Pt());
301-
histos.fill(HIST("TrackEventPar/Sigma1PtFT0Mmult"), collision.multFT0M(), track.pt(), track.sigma1Pt());
302-
histos.fill(HIST("TrackEventPar/Sigma1PtNTracksPV"), collision.multNTracksPV(), track.pt(), track.sigma1Pt());
303-
histos.fill(HIST("TrackEventPar/Sigma1PtTracklets"), collision.multTracklets(), track.pt(), track.sigma1Pt());
316+
histos.fill(HIST("TrackEventPar/MultCorrelations"), track.sigma1Pt(), track.pt(), collision.centFT0A(), collision.centFT0C(), collision.multFT0A(), collision.multFT0C(), collision.multNTracksPV());
304317
}
305318
}
306319
}
307320
}
308321
PROCESS_SWITCH(TrackJetQa, processFull, "Standard data processor", true);
309322

310323
Preslice<aod::JeTracks> jePerCol = aod::jetspectra::collisionId;
311-
SliceCache cacheTrk;
312324
void processDerived(aod::JeColls const& collisions,
313325
aod::JeTracks const& tracks)
314326
{
@@ -319,10 +331,7 @@ struct TrackJetQa {
319331
for (const auto& track : tracksInCollision) {
320332
fillTrackQa(track);
321333
if (fillMultiplicity) {
322-
histos.fill(HIST("TrackEventPar/Sigma1PtFT0Mcent"), collision.centFT0M(), track.pt(), track.sigma1Pt());
323-
histos.fill(HIST("TrackEventPar/Sigma1PtFT0Mmult"), collision.multFT0M(), track.pt(), track.sigma1Pt());
324-
histos.fill(HIST("TrackEventPar/Sigma1PtNTracksPV"), collision.multNTracksPV(), track.pt(), track.sigma1Pt());
325-
histos.fill(HIST("TrackEventPar/Sigma1PtTracklets"), collision.multTracklets(), track.pt(), track.sigma1Pt());
334+
histos.fill(HIST("TrackEventPar/MultCorrelations"), track.sigma1Pt(), track.pt(), collision.centFT0A(), collision.centFT0C(), collision.multFT0A(), collision.multFT0C(), collision.multNTracksPV());
326335
}
327336
}
328337
}

0 commit comments

Comments
 (0)