@@ -55,6 +55,9 @@ struct MultiplicityDerivedQa {
5555 ConfigurableAxis axisNumberOfPVs{" axisNumberOfPVs" , {10 , -0 .5f , 9 .5f }, " Number of reconstructed PVs" };
5656 ConfigurableAxis axisNchFT0{" axisNchFT0" , {500 , -0 .5f , 499 .5f }, " Number of charged particles in FT0 acceptance" };
5757
58+ // artificially select run if desired
59+ Configurable<int > selectRun{" selectRun" , -1 , " explicit run selection (-1: no sel)" };
60+
5861 // Selection criteria for QC studies in 2D plots
5962 // parameters:
6063 // --- maxFT0C -> max FT0C value for which this cut will be applied. Nothing done if maxFT0C < 0.0f
@@ -114,6 +117,7 @@ struct MultiplicityDerivedQa {
114117 histos.add (" multiplicityQa/h2dNchVsFT0A" , " FT0A" , kTH2F , {axisMultFT0A, axisMultNTracks});
115118 histos.add (" multiplicityQa/h2dNchVsFT0C" , " FT0C" , kTH2F , {axisMultFT0C, axisMultNTracks});
116119 histos.add (" multiplicityQa/h2dNchVsFDD" , " FDD" , kTH2F , {axisMultFDD, axisMultNTracks});
120+ histos.add (" multiplicityQa/h2dNchVsCentrality" , " Centrality" , kTH2F , {axisCentrality, axisMultNTracks});
117121
118122 // correlate T0 and V0
119123 histos.add (" multiplicityQa/h2dFT0MVsFV0M" , " FDD" , kTH2F , {axisMultFV0, axisMultFT0});
@@ -130,6 +134,19 @@ struct MultiplicityDerivedQa {
130134 histos.add (" multiplicityQa/h2dZEMVsFT0C" , " ZEMvsFT0C" , kTH2F , {axisMultFT0C, axisMultZEM});
131135 histos.add (" multiplicityQa/h2dZPAVsFT0C" , " ZPAvsFT0C" , kTH2F , {axisMultFT0C, axisMultZPA});
132136 histos.add (" multiplicityQa/h2dZPCVsFT0C" , " ZPCvsFT0C" , kTH2F , {axisMultFT0C, axisMultZPC});
137+
138+ // +-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+
139+ // vs centrality
140+ histos.add (" multiplicityQa/h2dFV0AVsCentrality" , " FV0AVsCentrality" , kTH2F , {axisCentrality, axisMultFV0});
141+ histos.add (" multiplicityQa/h2dFT0AVsCentrality" , " FT0AVsCentrality" , kTH2F , {axisCentrality, axisMultFT0A});
142+ histos.add (" multiplicityQa/h2dZNAVsCentrality" , " ZNAVsCentrality" , kTH2F , {axisCentrality, axisMultZNA});
143+ histos.add (" multiplicityQa/h2dZNCVsCentrality" , " ZNPVsCentrality" , kTH2F , {axisCentrality, axisMultZNC});
144+ histos.add (" multiplicityQa/h2dZEM1VsCentrality" , " ZEM1VsCentrality" , kTH2F , {axisCentrality, axisMultZEM1});
145+ histos.add (" multiplicityQa/h2dZEM2VsCentrality" , " ZEM2VsCentrality" , kTH2F , {axisCentrality, axisMultZEM2});
146+ histos.add (" multiplicityQa/h2dZEMVsCentrality" , " ZEMVsCentrality" , kTH2F , {axisCentrality, axisMultZEM});
147+ histos.add (" multiplicityQa/h2dZPAVsCentrality" , " ZPAVsCentrality" , kTH2F , {axisCentrality, axisMultZPA});
148+ histos.add (" multiplicityQa/h2dZPCVsCentrality" , " ZPCVsCentrality" , kTH2F , {axisCentrality, axisMultZPC});
149+ // +-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+
133150 }
134151
135152 // for QA and test purposes
@@ -143,6 +160,10 @@ struct MultiplicityDerivedQa {
143160
144161 void process (soa::Join<aod::Mults, aod::MultsExtra>::iterator const & col)
145162 {
163+ // for analysis of slim derived data (MC, etc) and specific run selection
164+ if (selectRun > -1 && col.multRunNumber () != selectRun)
165+ return ;
166+
146167 auto hRawCentrality = histos.get <TH1>(HIST (" hRawCentrality" ));
147168 float centrality = hRawCentrality->GetBinContent (hRawCentrality->FindBin (col.multFT0C ()));
148169 histos.fill (HIST (" multiplicityQa/hCentralityAll" ), centrality);
@@ -170,6 +191,7 @@ struct MultiplicityDerivedQa {
170191 if (fabs (col.multPVz ()) > vtxZsel) {
171192 return ;
172193 }
194+ histos.fill (HIST (" multiplicityQa/hCentralityVertexZ" ), centrality);
173195
174196 // apply special event selections
175197 if (selZNA->get (" maxFT0C" ) > -0 .5f && col.multFT0C () < selZNA->get (" maxFT0C" ) && (selZNA->get (" A" ) * col.multZNA () + selZNA->get (" B" ) * col.multFT0C () + selZNA->get (" C" ) < 0 .0f ))
@@ -219,6 +241,7 @@ struct MultiplicityDerivedQa {
219241 histos.fill (HIST (" multiplicityQa/h2dNchVsFT0A" ), col.multFT0A (), col.multNTracksPV ());
220242 histos.fill (HIST (" multiplicityQa/h2dNchVsFT0C" ), col.multFT0C (), col.multNTracksPV ());
221243 histos.fill (HIST (" multiplicityQa/h2dNchVsFDD" ), col.multFDDA () + col.multFDDC (), col.multNTracksPV ());
244+ histos.fill (HIST (" multiplicityQa/h2dNchVsCentrality" ), centrality, col.multNTracksPV ());
222245
223246 // correlate FIT signals and FT0C
224247 histos.fill (HIST (" multiplicityQa/h2dFV0AVsFT0C" ), col.multFT0C (), col.multFV0A ());
@@ -233,6 +256,19 @@ struct MultiplicityDerivedQa {
233256 histos.fill (HIST (" multiplicityQa/h2dZPAVsFT0C" ), col.multFT0C (), col.multZPA ());
234257 histos.fill (HIST (" multiplicityQa/h2dZPCVsFT0C" ), col.multFT0C (), col.multZPC ());
235258
259+ // +-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+
260+ // vs centrality
261+ histos.fill (HIST (" multiplicityQa/h2dFV0AVsCentrality" ), centrality, col.multFV0A ());
262+ histos.fill (HIST (" multiplicityQa/h2dFT0AVsCentrality" ), centrality, col.multFT0A ());
263+ histos.fill (HIST (" multiplicityQa/h2dZNAVsCentrality" ), centrality, col.multZNA ());
264+ histos.fill (HIST (" multiplicityQa/h2dZNCVsCentrality" ), centrality, col.multZNC ());
265+ histos.fill (HIST (" multiplicityQa/h2dZEM1VsCentrality" ), centrality, col.multZEM1 ());
266+ histos.fill (HIST (" multiplicityQa/h2dZEM2VsCentrality" ), centrality, col.multZEM2 ());
267+ histos.fill (HIST (" multiplicityQa/h2dZEMVsCentrality" ), centrality, col.multZEM1 () + col.multZEM2 ());
268+ histos.fill (HIST (" multiplicityQa/h2dZPAVsCentrality" ), centrality, col.multZPA ());
269+ histos.fill (HIST (" multiplicityQa/h2dZPCVsCentrality" ), centrality, col.multZPC ());
270+ // +-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+-~-+
271+
236272 // 2d FT0 vs FV0 fill
237273 histos.fill (HIST (" multiplicityQa/h2dFT0MVsFV0M" ), col.multFV0A (), col.multFT0A () + col.multFT0C ());
238274 }
0 commit comments