@@ -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