Skip to content

Commit cb4fb46

Browse files
Add time resolutions vs Ncontrib
1 parent a6646b0 commit cb4fb46

1 file changed

Lines changed: 39 additions & 8 deletions

File tree

DPG/Tasks/FIT/qaFIT.cxx

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ struct fitQa {
6161

6262
/* Common histogram properties - TODO: make configurable */
6363

64+
static constexpr int nBinsNContrib = 10000;
65+
static constexpr float nContribMin = -0.;
66+
static constexpr float nContribMax = 10000.;
67+
6468
// Time axis limits for FT0 and FV0
6569
// Times are in ns, these give a resolution of 20 ps per bin
6670
static constexpr int nBinsT = 500;
@@ -97,9 +101,9 @@ struct fitQa {
97101
static constexpr float vtxMinFDD = -60.;
98102
static constexpr float vtxMaxFDD = 60.;
99103

100-
static constexpr int nBinsTotAmpl = 10000;
104+
static constexpr int nBinsTotAmpl = 30000;
101105
static constexpr float totAmplMin = 0.;
102-
static constexpr float totAmplMax = 100000.;
106+
static constexpr float totAmplMax = 300000.;
103107

104108
/* Helper functions */
105109
static float cm2ns(float cm) { return cm / o2::constants::physics::LightSpeedCm2NS; }
@@ -113,6 +117,7 @@ struct fitQa {
113117

114118
// Quantities
115119
float pv = -200.f; ///< Primary vertex position in cm (o2::aod::‌collision::PosZ)
120+
int nContrib = 0; ///< Number of contributors to primary vertex (o2::aod::‌collision::NumContrib)
116121
float ft0timeA = o2::ft0::RecPoints::sDummyCollissionTime; ///< FT0-A average time in ns (o2::aod::ft0::TimeA)
117122
float ft0timeC = o2::ft0::RecPoints::sDummyCollissionTime; ///< FT0-A average time in ns (o2::aod::ft0::TimeA)
118123
float ft0timeACorr = o2::ft0::RecPoints::sDummyCollissionTime; ///< FT0-A average time in ns corrected PV (o2::aod::ft0::T0ACorrected)
@@ -165,8 +170,9 @@ struct fitQa {
165170
OutputObj<TH1F> ooStats{"Stats"}; ///< Event selection statistics
166171

167172
// Collision
168-
OutputObj<TH2F> ooPV{"PV"}; ///< Primary vertex (cm)
169-
OutputObj<TH2F> ooPVns{"PVns"}; ///< Primary vertex (ns)
173+
OutputObj<TH2F> ooPV{"collPV"}; ///< Primary vertex (cm)
174+
OutputObj<TH2F> ooPVns{"collPVns"}; ///< Primary vertex (ns)
175+
OutputObj<TH2F> ooNcontrib{"collNcontrib"}; ///< Number of contributors
170176

171177
// FT0
172178
OutputObj<TH2F> ooFT0TimeA{"FT0TimeA"}; ///< FT0A average time (ns)
@@ -210,12 +216,20 @@ struct fitQa {
210216
/* 2D */
211217

212218
// FT0
213-
OutputObj<TH3F> ooFT0TimeVsFT0Vtx{"FT0TimeVsFT0Vtx"}; ///< FT0 collision time vs FT0 vertex
214-
OutputObj<TH3F> ooPVvsFT0Vtx{"PVvsFT0Vtx"}; ///< PV vs FT0 vertex
219+
OutputObj<TH3F> ooFT0TimeVsFT0Vtx{"FT0TimeVsFT0Vtx"}; ///< FT0 collision time vs FT0 vertex
220+
OutputObj<TH3F> ooPVvsFT0Vtx{"PVvsFT0Vtx"}; ///< PV vs FT0 vertex
221+
OutputObj<TH3F> ooFT0TimeResVsNContrib{"FT0TimeResVsNContrib"}; ///< FT0 time resolution vs number of contributors
222+
223+
// FV0
224+
OutputObj<TH3F> ooPVFV0FT0CVtxDiffNSVsNContrib{"PVFV0FT0CVtxDiffNSVsNContrib"}; ///< PV - FV0-FT0C vertex vs number of contributors
215225

216226
// FDD
217-
OutputObj<TH3F> ooFDDTimeVsFDDVtx{"FDDTimeVsFDDVtx"}; ///< FDD collision time vs FDD vertex
218-
OutputObj<TH3F> ooPVvsFDDVtx{"PVvsFDDVtx"}; ///< PV vs FDD vertex
227+
OutputObj<TH3F> ooFDDTimeVsFDDVtx{"FDDTimeVsFDDVtx"}; ///< FDD collision time vs FDD vertex
228+
OutputObj<TH3F> ooPVvsFDDVtx{"PVvsFDDVtx"}; ///< PV vs FDD vertex
229+
OutputObj<TH3F> ooPVFDDVtxDiffNSVsNContrib{"PVFDDVtxDiffNSVsNContrib"}; ///< PV - FDD vertex vs number of contributors
230+
231+
// FT0, FV0
232+
OutputObj<TH3F> ooFT0TimeAFV0TimeDiffVsNContrib{"FT0TimeAFV0TimeDiffVsNContrib"}; ///< FT0A average time - FV0 average time vs number of contributors
219233

220234
/* 2D Quantities per X bin */
221235

@@ -235,6 +249,7 @@ struct fitQa {
235249
/// Resetting all AO2D quantities and conditions to default values
236250
void resetVariables() {
237251
pv = -200.f;
252+
nContrib = 0;
238253
ft0timeA = o2::ft0::RecPoints::sDummyCollissionTime;
239254
ft0timeC = o2::ft0::RecPoints::sDummyCollissionTime;
240255
ft0timeACorr = o2::ft0::RecPoints::sDummyCollissionTime;
@@ -300,6 +315,9 @@ struct fitQa {
300315
ooPV.setObject(new TH2F(ooPV.label.c_str(), "Primary vertex;Primary vertex z position (cm)", nBinsVtx, vtxMin, vtxMax, conditions.size(), 0, conditions.size()));
301316
objs[&ooPV] = [&]() { return pv; };
302317

318+
ooNcontrib.setObject(new TH2F(ooNcontrib.label.c_str(), "Number of contributors to primary vertex;Number of contributors to primary vertex", nBinsNContrib, nContribMin, nContribMax, conditions.size(), 0, conditions.size()));
319+
objs[&ooNcontrib] = [&]() { return nContrib; };
320+
303321
ooFT0TimeA.setObject(new TH2F(ooFT0TimeA.label.c_str(), "FT0A time;$\\langle t_{\\text{FT0A}} \\rangle \\text{ (ns)}$", nBinsT, tMin, tMax, conditions.size(), 0, conditions.size()));
304322
objs[&ooFT0TimeA] = [&]() { return ft0timeA; };
305323

@@ -420,12 +438,24 @@ struct fitQa {
420438
ooPVvsFT0Vtx.setObject(new TH3F(ooPVvsFT0Vtx.label.c_str(), "FT0 vertex vs PV;$(\\langle t_{\\text{FT0C}} \\rangle - \\langle t_{\\text{FT0A}} \\rangle)/2 \\text{ (cm)}$;Primary vertex z position (cm)", nBinsVtx, vtxMin, vtxMax, nBinsVtx, vtxMin, vtxMax, conditions.size(), 0, conditions.size()));
421439
objs2D[&ooPVvsFT0Vtx] = [&]() { return std::make_pair(objs[&ooFT0Vtx](), objs[&ooPV]()); };
422440

441+
ooFT0TimeResVsNContrib.setObject(new TH3F(ooFT0TimeResVsNContrib.label.c_str(), "FT0 time resolution vs number of contributors;Number of contributors to primary vertex;$\\text{PV} - (\\langle t_{\\text{FT0C}} \\rangle - \\langle t_{\\text{FT0A}} \\rangle)/2 \\text{ (ns)}$", nBinsNContrib / 10, nContribMin, nContribMax, nBinsTRes, tResMin, tResMax, conditions.size(), 0, conditions.size()));
442+
objs2D[&ooFT0TimeResVsNContrib] = [&]() { return std::make_pair(objs[&ooNcontrib](), objs[&ooFT0TimeRes]()); };
443+
444+
ooPVFV0FT0CVtxDiffNSVsNContrib.setObject(new TH3F(ooPVFV0FT0CVtxDiffNSVsNContrib.label.c_str(), "PV - FV0-FT0C vertex vs number of contributors;Number of contributors to primary vertex;$\\text{PV} - (\\langle t_{\\text{FT0C}} \\rangle - \\langle t_{\\text{FV0}} \\rangle)/2 \\text{ (ns)}$", nBinsNContrib / 10, nContribMin, nContribMax, nBinsTRes, tResMin, tResMax, conditions.size(), 0, conditions.size()));
445+
objs2D[&ooPVFV0FT0CVtxDiffNSVsNContrib] = [&]() { return std::make_pair(objs[&ooNcontrib](), objs[&ooPVFV0FT0CVtxDiffNS]()); };
446+
423447
ooFDDTimeVsFDDVtx.setObject(new TH3F(ooFDDTimeVsFDDVtx.label.c_str(), "FDD collision time vs FDD vertex;$(\\langle t_{\\text{FDDC}} \\rangle - \\langle t_{\\text{FDDA}} \\rangle)/2 \\text{ (cm)}$;$(\\langle t_{\\text{FDDA}} \\rangle + \\langle t_{\\text{FDDC}} \\rangle)/2 \\text{ (ns)}$", nBinsVtxFDD, vtxMinFDD, vtxMaxFDD, nBinsTFDD, tMinFDD, tMaxFDD, conditions.size(), 0, conditions.size()));
424448
objs2D[&ooFDDTimeVsFDDVtx] = [&]() { return std::make_pair(objs[&ooFDDVtx](), objs[&ooFDDTime]()); };
425449

426450
ooPVvsFDDVtx.setObject(new TH3F(ooPVvsFDDVtx.label.c_str(), "PV vs FDD vertex;$(\\langle t_{\\text{FDDC}} \\rangle - \\langle t_{\\text{FDDA}} \\rangle)/2 \\text{ (cm)}$;Primary vertex z position (cm)", nBinsVtxFDD, vtxMinFDD, vtxMaxFDD, nBinsVtx, vtxMin, vtxMax, conditions.size(), 0, conditions.size()));
427451
objs2D[&ooPVvsFDDVtx] = [&]() { return std::make_pair(objs[&ooFDDVtx](), objs[&ooPV]()); };
428452

453+
ooPVFDDVtxDiffNSVsNContrib.setObject(new TH3F(ooPVFDDVtxDiffNSVsNContrib.label.c_str(), "PV - FDD vertex vs number of contributors;Number of contributors to primary vertex;$\\text{PV} - (\\langle t_{\\text{FDDC}} \\rangle - \\langle t_{\\text{FDDA}} \\rangle)/2 \\text{ (ns)}$", nBinsNContrib / 10, nContribMin, nContribMax, nBinsTResFDD, tResMinFDD, tResMaxFDD, conditions.size(), 0, conditions.size()));
454+
objs2D[&ooPVFDDVtxDiffNSVsNContrib] = [&]() { return std::make_pair(objs[&ooNcontrib](), objs[&ooPVFDDVtxDiffNS]()); };
455+
456+
ooFT0TimeAFV0TimeDiffVsNContrib.setObject(new TH3F(ooFT0TimeAFV0TimeDiffVsNContrib.label.c_str(), "FT0A time - FV0 time vs number of contributors;Number of contributors to primary vertex;$\\langle t_{\\text{FT0A}} \\rangle - \\langle t_{\\text{FV0}} \\rangle \\text{ (ns)}$", nBinsNContrib / 10, nContribMin, nContribMax, nBinsTRes, tResMin, tResMax, conditions.size(), 0, conditions.size()));
457+
objs2D[&ooFT0TimeAFV0TimeDiffVsNContrib] = [&]() { return std::make_pair(objs[&ooNcontrib](), objs[&ooFT0TimeAFV0TimeDiff]()); };
458+
429459
// 2D quantities per X bin
430460

431461
ooFT0AmplPerCh.setObject(new TH3F(ooFT0AmplPerCh.label.c_str(), "FT0 channel amplitudes;Channel ID;Amplitude (ADC)", nChFT0, 0, static_cast<float>(nChFT0), nADC, 0.f, static_cast<float>(nADC), conditions.size(), 0, conditions.size()));
@@ -471,6 +501,7 @@ struct fitQa {
471501
hasFDD = collision.has_foundFDD();
472502

473503
pv = collision.posZ();
504+
nContrib = collision.numContrib();
474505
ft0timeACorr = collision.t0ACorrected();
475506
ft0timeCCorr = collision.t0ACorrected();
476507
ft0timeRes = collision.t0resolution();

0 commit comments

Comments
 (0)