Skip to content

Commit 9ec8e36

Browse files
committed
Common: centrality study extras
1 parent 6ed4363 commit 9ec8e36

File tree

4 files changed

+84
-6
lines changed

4 files changed

+84
-6
lines changed

Common/DataModel/Multiplicity.h

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ DECLARE_SOA_DYNAMIC_COLUMN(IsInelGt1, isInelGt1, //! is INEL > 1
4848
// MC
4949
DECLARE_SOA_COLUMN(MultMCFT0A, multMCFT0A, int); //!
5050
DECLARE_SOA_COLUMN(MultMCFT0C, multMCFT0C, int); //!
51+
DECLARE_SOA_COLUMN(MultMCFV0A, multMCFV0A, int); //!
52+
DECLARE_SOA_COLUMN(MultMCFDDA, multMCFDDA, int); //!
53+
DECLARE_SOA_COLUMN(MultMCFDDC, multMCFDDC, int); //!
5154
DECLARE_SOA_COLUMN(MultMCNParticlesEta10, multMCNParticlesEta10, int); //!
5255
DECLARE_SOA_COLUMN(MultMCNParticlesEta08, multMCNParticlesEta08, int); //!
5356
DECLARE_SOA_COLUMN(MultMCNParticlesEta05, multMCNParticlesEta05, int); //!
@@ -144,7 +147,7 @@ DECLARE_SOA_TABLE(MultSelections, "AOD", "MULTSELECTIONS", //!
144147
using MultExtra = MultsExtra::iterator;
145148

146149
// mc collisions table - indexed to Mult
147-
DECLARE_SOA_TABLE(MultMCExtras, "AOD", "MULTMCEXTRA", //! Table for the MC information
150+
DECLARE_SOA_TABLE(MultMCExtras_000, "AOD", "MULTMCEXTRA", //! Table for MC information
148151
mult::MultMCFT0A,
149152
mult::MultMCFT0C,
150153
mult::MultMCNParticlesEta05,
@@ -154,6 +157,23 @@ DECLARE_SOA_TABLE(MultMCExtras, "AOD", "MULTMCEXTRA", //! Table for the MC infor
154157
mult::IsInelGt0<mult::MultMCNParticlesEta10>,
155158
mult::IsInelGt1<mult::MultMCNParticlesEta10>,
156159
o2::soa::Marker<1>);
160+
161+
// mc collisions table - indexed to Mult
162+
DECLARE_SOA_TABLE_VERSIONED(MultMCExtras_001, "AOD", "MULTMCEXTRA", 1, //! Table for MC information
163+
mult::MultMCFT0A,
164+
mult::MultMCFT0C,
165+
mult::MultMCFV0A,
166+
mult::MultMCFDDA,
167+
mult::MultMCFDDC,
168+
mult::MultMCNParticlesEta05,
169+
mult::MultMCNParticlesEta08,
170+
mult::MultMCNParticlesEta10,
171+
mult::MultMCPVz,
172+
mult::IsInelGt0<mult::MultMCNParticlesEta10>,
173+
mult::IsInelGt1<mult::MultMCNParticlesEta10>,
174+
o2::soa::Marker<1>);
175+
176+
using MultMCExtras = MultMCExtras_001;
157177
using MultMCExtra = MultMCExtras::iterator;
158178
using MultsExtraMC = MultMCExtras; // for backwards compatibility with previous naming scheme
159179

Common/TableProducer/Converters/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,7 @@ o2physics_add_dpl_workflow(multsextra-converter
7979
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
8080
COMPONENT_NAME Analysis)
8181

82+
o2physics_add_dpl_workflow(multmcextras-converter
83+
SOURCES MultMCExtrasConverter.cxx
84+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
85+
COMPONENT_NAME Analysis)

Common/TableProducer/multiplicityTable.cxx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,10 @@ struct MultiplicityTable {
634634
void processMC(aod::McCollision const& mcCollision, mcParticlesFiltered const& mcParticles)
635635
{
636636
int multFT0A = 0;
637+
int multFV0A = 0;
637638
int multFT0C = 0;
639+
int multFDDA = 0;
640+
int multFDDC = 0;
638641
int multBarrelEta05 = 0;
639642
int multBarrelEta08 = 0;
640643
int multBarrelEta10 = 0;
@@ -665,8 +668,14 @@ struct MultiplicityTable {
665668
multFT0C++;
666669
if (3.5 < mcPart.eta() && mcPart.eta() < 4.9)
667670
multFT0A++;
671+
if (2.2 < mcPart.eta() && mcPart.eta() < 5.0)
672+
multFV0A++;
673+
if (-6.9 < mcPart.eta() && mcPart.eta() < -4.9)
674+
multFDDC++;
675+
if (4.7 < mcPart.eta() && mcPart.eta() < 6.3)
676+
multFDDA++;
668677
}
669-
tableExtraMc(multFT0A, multFT0C, multBarrelEta05, multBarrelEta08, multBarrelEta10, mcCollision.posZ());
678+
tableExtraMc(multFT0A, multFT0C, multFV0A, multFDDA, multFDDC, multBarrelEta05, multBarrelEta08, multBarrelEta10, mcCollision.posZ());
670679
}
671680

672681
void processMC2Mults(soa::Join<aod::McCollisionLabels, aod::Collisions>::iterator const& collision)

Common/Tasks/centralityStudy.cxx

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,17 @@ struct centralityStudy {
6565
Configurable<float> scaleSignalFT0M{"scaleSignalFT0M", 1.00f, "scale FT0M signal for convenience"};
6666
Configurable<float> scaleSignalFV0A{"scaleSignalFV0A", 1.00f, "scale FV0A signal for convenience"};
6767

68-
// Configurable Axes
69-
ConfigurableAxis axisMultFT0C{"axisMultFT0C", {2000, 0, 100000}, "FT0C amplitude"};
68+
// reject low zna/c
69+
Configurable<float> minZNACsignal{"minZNACsignal", 15.0f, "min zna/c signal"};
70+
Configurable<float> maxFT0CforZNACselection{"maxFT0CforZNACselection", 35000.0f, "max ft0c signal for minZNACsignal to work"};
71+
72+
73+
// Configurable Axes for 2d plots, etc
74+
ConfigurableAxis axisMultFV0A{"axisMultFV0A", {1000, 0, 100000}, "FV0A amplitude"};
75+
ConfigurableAxis axisMultFT0A{"axisMultFT0A", {1000, 0, 100000}, "FT0A amplitude"};
76+
ConfigurableAxis axisMultFT0C{"axisMultFT0C", {1000, 0, 100000}, "FT0C amplitude"};
77+
ConfigurableAxis axisMultFDDA{"axisMultFDDA", {1000, 0, 100000}, "FDDA amplitude"};
78+
ConfigurableAxis axisMultFDDC{"axisMultFDDC", {1000, 0, 100000}, "FDDC amplitude"};
7079
ConfigurableAxis axisMultPVContributors{"axisMultPVContributors", {200, 0, 6000}, "Number of PV Contributors"};
7180

7281
// For one-dimensional plots, where binning is no issue
@@ -86,6 +95,8 @@ struct centralityStudy {
8695
// For profile Z
8796
ConfigurableAxis axisPVz{"axisPVz", {400, -20.0f, +20.0f}, "PVz (cm)"};
8897

98+
ConfigurableAxis axisZN{"axisZN", {1100, -50.0f, +500.0f}, "ZN"};
99+
89100
void init(InitContext&)
90101
{
91102
if (doprocessCollisions || doprocessCollisionsWithCentrality) {
@@ -124,11 +135,20 @@ struct centralityStudy {
124135
histos.add("hFT0CvsPVz_BCs", "hFT0CvsPVz_BCs", kTProfile, {axisPVz});
125136

126137
histos.add("hVertexZ_BCvsCO", "hVertexZ_BCvsCO", kTH2D, {axisPVz, axisPVz});
138+
139+
histos.add("hZNAvsFT0C_BCs", "hZNAvsFT0C_BCs", kTH2D, {axisMultFT0C, axisZN});
140+
histos.add("hZNCvsFT0C_BCs", "hZNCvsFT0C_BCs", kTH2D, {axisMultFT0C, axisZN});
127141
}
128142

129143
if (do2DPlots) {
130-
histos.add("hFT0CvsNContribs", "hFT0CvsNContribs", kTH2F, {axisMultPVContributors, axisMultFT0C});
144+
histos.add("hNContribsVsFT0C", "hNContribsVsFT0C", kTH2F, {axisMultFT0C, axisMultPVContributors});
131145
histos.add("hMatchedVsITSOnly", "hMatchedVsITSOnly", kTH2F, {axisMultITSOnly, axisMultITSTPC});
146+
147+
// 2d correlation of fit signals
148+
histos.add("hFT0AVsFT0C", "hFT0AVsFT0C", kTH2F, {axisMultFT0C, axisMultFT0A});
149+
histos.add("hFV0AVsFT0C", "hFV0AVsFT0C", kTH2F, {axisMultFT0C, axisMultFV0A});
150+
histos.add("hFDDAVsFT0C", "hFDDAVsFT0C", kTH2F, {axisMultFT0C, axisMultFDDA});
151+
histos.add("hFDDCVsFT0C", "hFDDCVsFT0C", kTH2F, {axisMultFT0C, axisMultFDDC});
132152
}
133153

134154
if (doprocessCollisionsWithCentrality) {
@@ -225,6 +245,13 @@ struct centralityStudy {
225245
}
226246
histos.fill(HIST("hCollisionSelection"), 14 /* Not ITS ROF pileup (strict) */);
227247

248+
if (collision.multFT0C() < maxFT0CforZNACselection &&
249+
collision.multZNA() < minZNACsignal &&
250+
collision.multZNC() < minZNACsignal ) {
251+
return;
252+
}
253+
histos.fill(HIST("hCollisionSelection"), 15 /* pass em/upc rejection */);
254+
228255
// if we got here, we also finally fill the FT0C histogram, please
229256
histos.fill(HIST("hNPVContributors"), collision.multPVTotalContributors());
230257
histos.fill(HIST("hFT0C_Collisions"), collision.multFT0C() * scaleSignalFT0C);
@@ -235,8 +262,14 @@ struct centralityStudy {
235262
histos.fill(HIST("hFT0CvsPVz_Collisions"), collision.multPVz(), collision.multFT0C() * scaleSignalFT0C);
236263
}
237264
if (do2DPlots) {
238-
histos.fill(HIST("hFT0CvsNContribs"), collision.multNTracksPV(), collision.multFT0C() * scaleSignalFT0C);
265+
histos.fill(HIST("hNContribsVsFT0C"), collision.multFT0C() * scaleSignalFT0C, collision.multPVTotalContributors());
239266
histos.fill(HIST("hMatchedVsITSOnly"), collision.multNTracksITSOnly(), collision.multNTracksITSTPC());
267+
268+
// correlate also FIT detector signals
269+
histos.fill(HIST("hFT0AVsFT0C"), collision.multFT0C() * scaleSignalFT0C, collision.multFT0A());
270+
histos.fill(HIST("hFV0AVsFT0C"), collision.multFT0C() * scaleSignalFT0C, collision.multFV0A());
271+
histos.fill(HIST("hFDDAVsFT0C"), collision.multFT0C() * scaleSignalFT0C, collision.multFDDA());
272+
histos.fill(HIST("hFDDCVsFT0C"), collision.multFT0C() * scaleSignalFT0C, collision.multFDDC());
240273
}
241274

242275
// if the table has centrality information
@@ -288,8 +321,20 @@ struct centralityStudy {
288321
}
289322
histos.fill(HIST("hBCSelection"), 4); // FV0OrA
290323

324+
if (multbc.multBCFT0C() < maxFT0CforZNACselection &&
325+
multbc.multBCZNA() < minZNACsignal &&
326+
multbc.multBCZNC() < minZNACsignal ) {
327+
return;
328+
}
329+
histos.fill(HIST("hBCSelection"), 5); // znac
330+
291331
// if we got here, we also finally fill the FT0C histogram, please
292332
histos.fill(HIST("hFT0C_BCs"), multbc.multBCFT0C() * scaleSignalFT0C);
333+
334+
//ZN signals
335+
histos.fill(HIST("hZNAvsFT0C_BCs"), multbc.multBCFT0C() * scaleSignalFT0C, multbc.multBCZNA());
336+
histos.fill(HIST("hZNCvsFT0C_BCs"), multbc.multBCFT0C() * scaleSignalFT0C, multbc.multBCZNC());
337+
293338
histos.fill(HIST("hFT0M_BCs"), (multbc.multBCFT0A() + multbc.multBCFT0C()) * scaleSignalFT0M);
294339
histos.fill(HIST("hFV0A_BCs"), multbc.multBCFV0A() * scaleSignalFV0A);
295340
if (multbc.multBCFT0PosZValid()) {

0 commit comments

Comments
 (0)