Skip to content

Commit 6bb9cb7

Browse files
Add total amplitude correlations
1 parent 38848b9 commit 6bb9cb7

1 file changed

Lines changed: 129 additions & 41 deletions

File tree

DPG/Tasks/FIT/qaFIT.cxx

Lines changed: 129 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,15 @@ struct fitQa {
137137
std::array<float, nChFV0> fv0ChAmpl{}; ///< FV0 channel amplitudes (o2::aod::fv0::Amplitude)
138138
std::array<float, nChFDD> fddChAmpl{}; ///< FDD channel amplitudes (o2::aod::fdd::ChargeA and o2::aod::fdd::ChargeC)
139139

140+
// Derived quantities (not directly from AO2D)
141+
float ft0TotAmpl = 0;
142+
float ft0TotAmplA = 0;
143+
float ft0TotAmplC = 0;
144+
float fv0TotAmpl = 0;
145+
float fddTotAmpl = 0;
146+
float fddTotAmplA = 0;
147+
float fddTotAmplC = 0;
148+
140149
// Event selection conditions
141150
bool isSel8 = false; ///< (o2::aod::evsel::Sel8)
142151
bool hasFT0 = false; ///< (o2::aod::collision::has_foundFT0())
@@ -164,9 +173,12 @@ struct fitQa {
164173
std::vector<Condition> conditions{}; //< Event selection conditions to be considered
165174

166175
/* Output objects
167-
NOTE: 1D Quantities are stored in 2D hists, with event selection conditions on the Y-axis.
176+
NOTE1: 1D Quantities are stored in 2D hists, with event selection conditions on the Y-axis.
168177
I.e. there's one version of the 1D histogram per Y bin (Condition).
169-
Similar for 2D Quantities, they are stored in 3D histograms. */
178+
Similar for 2D Quantities, they are stored in 3D histograms.
179+
180+
NOTE2: There's a limit of number of task struct members, so some OutputObj's are disabled for now
181+
*/
170182

171183
/* 1D */
172184

@@ -188,6 +200,8 @@ struct fitQa {
188200
OutputObj<TH2F> ooFT0Vtx{"FT0Vtx"}; ///< FT0 vertex (cm)
189201
OutputObj<TH2F> ooFT0VtxNS{"FT0VtxNS"}; ///< FT0 vertex (ns)
190202
OutputObj<TH2F> ooFT0TotAmpl{"FT0TotAmpl"}; ///< FT0 total amplitude (ADC)
203+
OutputObj<TH2F> ooFT0TotAmplA{"FT0TotAmplA"}; ///< FT0A total amplitude (ADC)
204+
OutputObj<TH2F> ooFT0TotAmplC{"FT0TotAmplC"}; ///< FT0C total amplitude (ADC)
191205

192206
// FV0
193207
OutputObj<TH2F> ooFV0Time{"FV0Time"}; ///< FV0 average time (ns)
@@ -205,6 +219,8 @@ struct fitQa {
205219
OutputObj<TH2F> ooFDDVtxNS{"FDDVtxNS"}; ///< FDD vertex (ns)
206220
OutputObj<TH2F> ooPVFDDVtxDiffNS{"PVFDDVtxDiffNS"}; ///< PV - FDD vertex (ns)
207221
OutputObj<TH2F> ooFDDTotAmpl{"FDDTotAmpl"}; ///< FDD total amplitude (ADC)
222+
OutputObj<TH2F> ooFDDTotAmplA{"FDDTotAmplA"}; ///< FDD-A total amplitude (ADC)
223+
OutputObj<TH2F> ooFDDTotAmplC{"FDDTotAmplC"}; ///< FDD-C total amplitude (ADC)
208224

209225
// FT0, FV0
210226
OutputObj<TH2F> ooFT0TimeFV0TimeDiff{"FT0TimeFV0TimeDiff"}; ///< FT0 collision time - FV0 average time (ns)
@@ -238,6 +254,27 @@ struct fitQa {
238254
// FT0, FV0
239255
OutputObj<TH3F> ooFT0TimeAFV0TimeDiffVsNContrib{"FT0TimeAFV0TimeDiffVsNContrib"}; ///< FT0A average time - FV0 average time vs number of contributors
240256
OutputObj<TH3F> ooFT0TimeAFV0TimeDiffVsFV0TotAmpl{"FT0TimeAFV0TimeDiffVsFV0TotAmpl"}; ///< FT0A average time - FV0 average time vs FV0 total amplitude
257+
OutputObj<TH3F> ooFT0TotAmplVsFV0TotAmpl{"FT0TotAmplVsFV0TotAmpl"}; ///< FT0 total amplitude vs FV0 total amplitude
258+
OutputObj<TH3F> ooFT0TotAmplAVsFV0TotAmpl{"FT0TotAmplAVsFV0TotAmpl"}; ///< FT0A total amplitude vs FV0 total amplitude
259+
OutputObj<TH3F> ooFT0TotAmplCVsFV0TotAmpl{"FT0TotAmplCVsFV0TotAmpl"}; ///< FT0C total amplitude vs FV0 total amplitude
260+
261+
// FT0, FDD
262+
OutputObj<TH3F> ooFT0TotAmplVsFDDTotAmpl{"FT0TotAmplVsFDDTotAmpl"}; ///< FT0 total amplitude vs FDD total amplitude
263+
// OutputObj<TH3F> ooFT0TotAmplVsFDDTotAmplA{"FT0TotAmplVsFDDTotAmplA"}; ///< FT0 total amplitude vs FDD-A total amplitude
264+
// OutputObj<TH3F> ooFT0TotAmplVsFDDTotAmplC{"FT0TotAmplVsFDDTotAmplC"}; ///< FT0 total amplitude vs FDD-C total amplitude
265+
266+
// OutputObj<TH3F> ooFT0TotAmplAVsFDDTotAmpl{"FT0TotAmplAVsFDDTotAmpl"}; ///< FT0A total amplitude vs FDD total amplitude
267+
// OutputObj<TH3F> ooFT0TotAmplAVsFDDTotAmplA{"FT0TotAmplAVsFDDTotAmplA"}; ///< FT0A total amplitude vs FDD-A total amplitude
268+
// OutputObj<TH3F> ooFT0TotAmplAVsFDDTotAmplC{"FT0TotAmplAVsFDDTotAmplC"}; ///< FT0A total amplitude vs FDD-C total amplitude
269+
270+
// OutputObj<TH3F> ooFT0TotAmplCVsFDDTotAmpl{"FT0TotAmplCVsFDDTotAmpl"}; ///< FT0C total amplitude vs FDD total amplitude
271+
// OutputObj<TH3F> ooFT0TotAmplCVsFDDTotAmplA{"FT0TotAmplCVsFDDTotAmplA"}; ///< FT0C total amplitude vs FDD-A total amplitude
272+
// OutputObj<TH3F> ooFT0TotAmplCVsFDDTotAmplC{"FT0TotAmplCVsFDDTotAmplC"}; ///< FT0C total amplitude vs FDD-C total amplitude
273+
274+
// // FV0, FDD
275+
OutputObj<TH3F> ooFV0TotAmplVsFDDTotAmpl{"FV0TotAmplVsFDDTotAmpl"}; ///< FV0 total amplitude vs FDD total amplitude
276+
// OutputObj<TH3F> ooFV0TotAmplVsFDDTotAmplA{"FV0TotAmplVsFDDTotAmplA"}; ///< FV0 total amplitude vs FDD-A total amplitude
277+
// OutputObj<TH3F> ooFV0TotAmplVsFDDTotAmplC{"FV0TotAmplVsFDDTotAmplC"}; ///< FV0 total amplitude vs FDD-C total amplitude
241278

242279
/* 2D Quantities per X bin */
243280

@@ -274,6 +311,14 @@ struct fitQa {
274311
fv0ChAmpl.fill(-20000.f);
275312
fddChAmpl.fill(-20000.f);
276313

314+
ft0TotAmpl = 0;
315+
ft0TotAmplA = 0;
316+
ft0TotAmplC = 0;
317+
fv0TotAmpl = 0;
318+
fddTotAmpl = 0;
319+
fddTotAmplA = 0;
320+
fddTotAmplC = 0;
321+
277322
isSel8 = false;
278323
hasFT0 = false;
279324
hasFV0 = false;
@@ -300,15 +345,15 @@ struct fitQa {
300345
// conditions.push_back({"HasFV0", "has FV0", [&]() { return hasFV0; }});
301346
// conditions.push_back({"HasFDD", "has FDD", [&]() { return hasFDD; }});
302347
conditions.push_back({"FT0VTX", "FT0 vertex", [&]() { return isFT0VTX; }});
303-
conditions.push_back({"FT0CE", "FT0 CE", [&]() { return isFT0CE; }});
304-
conditions.push_back({"FT0SCE", "FT0 SCE", [&]() { return isFT0SCE; }});
348+
// conditions.push_back({"FT0CE", "FT0 CE", [&]() { return isFT0CE; }});
349+
// conditions.push_back({"FT0SCE", "FT0 SCE", [&]() { return isFT0SCE; }});
305350
// conditions.push_back({"FV0ORA", "FV0 ORA", [&]() { return isFV0ORA; }});
306-
conditions.push_back({"FV0CH", "FV0 CH", [&]() { return isFV0CH; }});
307-
conditions.push_back({"FV0IN", "FV0 IN", [&]() { return isFV0IN; }});
351+
// conditions.push_back({"FV0CH", "FV0 CH", [&]() { return isFV0CH; }});
352+
// conditions.push_back({"FV0IN", "FV0 IN", [&]() { return isFV0IN; }});
308353
// conditions.push_back({"FDDVTX", "FDD vertex", [&]() { return isFDDVTX; }});
309354
conditions.push_back({"FT0VTXandFV0ORA", "FT0 vertex AND FV0 ORA", [&]() { return isFT0VTXandFV0ORA; }});
310-
conditions.push_back({"FT0VTXandFV0CH", "FT0 vertex AND FV0 CH", [&]() { return isFT0VTX && isFV0CH; }});
311-
conditions.push_back({"FT0VTXandFV0IN", "FT0 vertex AND FV0 IN", [&]() { return isFT0VTX && isFV0IN; }});
355+
// conditions.push_back({"FT0VTXandFV0CH", "FT0 vertex AND FV0 CH", [&]() { return isFT0VTX && isFV0CH; }});
356+
// conditions.push_back({"FT0VTXandFV0IN", "FT0 vertex AND FV0 IN", [&]() { return isFT0VTX && isFV0IN; }});
312357
conditions.push_back({"FT0VTXandFDDVTX", "FT0 vertex AND FDD vertex", [&]() { return isFT0VTXandFDDVTX; }});
313358

314359
/* Init OutputObj's */
@@ -356,6 +401,28 @@ struct fitQa {
356401
ooFDDTimeC.setObject(new TH2F(ooFDDTimeC.label.c_str(), "FDDC time;$\\langle t_{\\text{FDDC}} \\rangle \\text{ (ns)}$", nBinsTFDD, tMinFDD, tMaxFDD, conditions.size(), 0, conditions.size()));
357402
objs[&ooFDDTimeC] = [&]() { return fddtimeC; };
358403

404+
// TODO: fill multiplicity from mults tables and compare
405+
ooFT0TotAmpl.setObject(new TH2F(ooFT0TotAmpl.label.c_str(), "FT0 total amplitude;FT0 amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
406+
objs[&ooFT0TotAmpl] = [&]() { return ft0TotAmpl; };
407+
408+
ooFT0TotAmplA.setObject(new TH2F(ooFT0TotAmplA.label.c_str(), "FT0A total amplitude;FT0A amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
409+
objs[&ooFT0TotAmplA] = [&]() { return ft0TotAmplA; };
410+
411+
ooFT0TotAmplC.setObject(new TH2F(ooFT0TotAmplC.label.c_str(), "FT0C total amplitude;FT0C amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
412+
objs[&ooFT0TotAmplC] = [&]() { return ft0TotAmplC; };
413+
414+
ooFV0TotAmpl.setObject(new TH2F(ooFV0TotAmpl.label.c_str(), "FV0 total amplitude;FV0 amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
415+
objs[&ooFV0TotAmpl] = [&]() { return fv0TotAmpl; };
416+
417+
ooFDDTotAmpl.setObject(new TH2F(ooFDDTotAmpl.label.c_str(), "FDD total amplitude;FDD amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
418+
objs[&ooFDDTotAmpl] = [&]() { return fddTotAmpl; };
419+
420+
ooFDDTotAmplA.setObject(new TH2F(ooFDDTotAmplA.label.c_str(), "FDD-A total amplitude;FDD-A amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
421+
objs[&ooFDDTotAmplA] = [&]() { return fddTotAmplA; };
422+
423+
ooFDDTotAmplC.setObject(new TH2F(ooFDDTotAmplC.label.c_str(), "FDD-C total amplitude;FDD-C amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
424+
objs[&ooFDDTotAmplC] = [&]() { return fddTotAmplC; };
425+
359426
// Derived quantities
360427
// TODO: some should maybe be calculated in AO2D tables?
361428

@@ -405,39 +472,6 @@ struct fitQa {
405472
ooFT0VtxFDDVtxDiffNS.setObject(new TH2F(ooFT0VtxFDDVtxDiffNS.label.c_str(), "FT0 vertex - FDD vertex;$(\\langle t_{\\text{FT0C}} \\rangle - \\langle t_{\\text{FT0A}} \\rangle)/2 - (\\langle t_{\\text{FDDC}} \\rangle - \\langle t_{\\text{FDDA}} \\rangle)/2 \\text{ (ns)}$", nBinsTResFDD, tResMinFDD, tResMaxFDD, conditions.size(), 0, conditions.size()));
406473
objs[&ooFT0VtxFDDVtxDiffNS] = [&]() { return objs[&ooFT0VtxNS]() - objs[&ooFDDVtxNS](); };
407474

408-
ooFT0TotAmpl.setObject(new TH2F(ooFT0TotAmpl.label.c_str(), "FT0 total amplitude;FT0 amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
409-
objs[&ooFT0TotAmpl] = [&]() {
410-
float totAmpl = 0.f;
411-
for (const auto& ampl : ft0ChAmpl) {
412-
if (ampl > -100.f) {
413-
totAmpl += ampl;
414-
}
415-
}
416-
return totAmpl;
417-
};
418-
419-
ooFV0TotAmpl.setObject(new TH2F(ooFV0TotAmpl.label.c_str(), "FV0 total amplitude;FV0 amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
420-
objs[&ooFV0TotAmpl] = [&]() {
421-
float totAmpl = 0.f;
422-
for (const auto& ampl : fv0ChAmpl) {
423-
if (ampl > -100.f) {
424-
totAmpl += ampl;
425-
}
426-
}
427-
return totAmpl;
428-
};
429-
430-
ooFDDTotAmpl.setObject(new TH2F(ooFDDTotAmpl.label.c_str(), "FDD total amplitude;FDD amplitude (ADC)", nBinsTotAmpl, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
431-
objs[&ooFDDTotAmpl] = [&]() {
432-
float totAmpl = 0.f;
433-
for (const auto& ampl : fddChAmpl) {
434-
if (ampl > -100.f) {
435-
totAmpl += ampl;
436-
}
437-
}
438-
return totAmpl;
439-
};
440-
441475
// 2D quantities
442476

443477
ooFT0TimeVsFT0Vtx.setObject(new TH3F(ooFT0TimeVsFT0Vtx.label.c_str(), "FT0 time vs FT0 vertex;$(\\langle t_{\\text{FT0C}} \\rangle - \\langle t_{\\text{FT0A}} \\rangle)/2 \\text{ (cm)}$;$(\\langle t_{\\text{FT0A}} \\rangle + \\langle t_{\\text{FT0C}} \\rangle)/2 \\text{ (ns)}$", nBinsVtx, vtxMin, vtxMax, nBinsT, tMin, tMax, conditions.size(), 0, conditions.size()));
@@ -476,6 +510,51 @@ struct fitQa {
476510
ooFT0TimeAFV0TimeDiffVsFV0TotAmpl.setObject(new TH3F(ooFT0TimeAFV0TimeDiffVsFV0TotAmpl.label.c_str(), "FT0A time - FV0 time vs FV0 total amplitude;FV0 total amplitude (ADC);$\\langle t_{\\text{FT0A}} \\rangle - \\langle t_{\\text{FV0}} \\rangle \\text{ (ns)}$", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTRes, tResMin, tResMax, conditions.size(), 0, conditions.size()));
477511
objs2D[&ooFT0TimeAFV0TimeDiffVsFV0TotAmpl] = [&]() { return std::make_pair(objs[&ooFV0TotAmpl](), objs[&ooFT0TimeAFV0TimeDiff]()); };
478512

513+
ooFT0TotAmplVsFV0TotAmpl.setObject(new TH3F(ooFT0TotAmplVsFV0TotAmpl.label.c_str(), "FT0 total amplitude vs FV0 total amplitude;FV0 total amplitude (ADC);FT0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
514+
objs2D[&ooFT0TotAmplVsFV0TotAmpl] = [&]() { return std::make_pair(objs[&ooFV0TotAmpl](), objs[&ooFT0TotAmpl]()); };
515+
516+
ooFT0TotAmplAVsFV0TotAmpl.setObject(new TH3F(ooFT0TotAmplAVsFV0TotAmpl.label.c_str(), "FT0A total amplitude vs FV0 total amplitude;FV0 total amplitude (ADC);FT0A total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
517+
objs2D[&ooFT0TotAmplAVsFV0TotAmpl] = [&]() { return std::make_pair(objs[&ooFV0TotAmpl](), objs[&ooFT0TotAmplA]()); };
518+
519+
ooFT0TotAmplCVsFV0TotAmpl.setObject(new TH3F(ooFT0TotAmplCVsFV0TotAmpl.label.c_str(), "FT0C total amplitude vs FV0 total amplitude;FV0 total amplitude (ADC);FT0C total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
520+
objs2D[&ooFT0TotAmplCVsFV0TotAmpl] = [&]() { return std::make_pair(objs[&ooFV0TotAmpl](), objs[&ooFT0TotAmplC]()); };
521+
522+
ooFT0TotAmplVsFDDTotAmpl.setObject(new TH3F(ooFT0TotAmplVsFDDTotAmpl.label.c_str(), "FT0 total amplitude vs FDD total amplitude;FDD total amplitude (ADC);FT0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
523+
objs2D[&ooFT0TotAmplVsFDDTotAmpl] = [&]() { return std::make_pair(objs[&ooFDDTotAmpl](), objs[&ooFT0TotAmpl]()); };
524+
525+
// ooFT0TotAmplVsFDDTotAmplA.setObject(new TH3F(ooFT0TotAmplVsFDDTotAmplA.label.c_str(), "FT0 total amplitude vs FDD-A total amplitude;FDD-A total amplitude (ADC);FT0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
526+
// objs2D[&ooFT0TotAmplVsFDDTotAmplA] = [&]() { return std::make_pair(objs[&ooFDDTotAmplA](), objs[&ooFT0TotAmpl]()); };
527+
528+
// ooFT0TotAmplVsFDDTotAmplC.setObject(new TH3F(ooFT0TotAmplVsFDDTotAmplC.label.c_str(), "FT0 total amplitude vs FDD-C total amplitude;FDD-C total amplitude (ADC);FT0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
529+
// objs2D[&ooFT0TotAmplVsFDDTotAmplC] = [&]() { return std::make_pair(objs[&ooFDDTotAmplC](), objs[&ooFT0TotAmpl]()); };
530+
531+
// ooFT0TotAmplAVsFDDTotAmpl.setObject(new TH3F(ooFT0TotAmplAVsFDDTotAmpl.label.c_str(), "FT0A total amplitude vs FDD total amplitude;FDD total amplitude (ADC);FT0A total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
532+
// objs2D[&ooFT0TotAmplAVsFDDTotAmpl] = [&]() { return std::make_pair(objs[&ooFDDTotAmpl](), objs[&ooFT0TotAmplA]()); };
533+
534+
// ooFT0TotAmplAVsFDDTotAmplA.setObject(new TH3F(ooFT0TotAmplAVsFDDTotAmplA.label.c_str(), "FT0A total amplitude vs FDD-A total amplitude;FDD-A total amplitude (ADC);FT0A total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
535+
// objs2D[&ooFT0TotAmplAVsFDDTotAmplA] = [&]() { return std::make_pair(objs[&ooFDDTotAmplA](), objs[&ooFT0TotAmplA]()); };
536+
537+
// ooFT0TotAmplAVsFDDTotAmplC.setObject(new TH3F(ooFT0TotAmplAVsFDDTotAmplC.label.c_str(), "FT0A total amplitude vs FDD-C total amplitude;FDD-C total amplitude (ADC);FT0A total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
538+
// objs2D[&ooFT0TotAmplAVsFDDTotAmplC] = [&]() { return std::make_pair(objs[&ooFDDTotAmplC](), objs[&ooFT0TotAmplA]()); };
539+
540+
// ooFT0TotAmplCVsFDDTotAmpl.setObject(new TH3F(ooFT0TotAmplCVsFDDTotAmpl.label.c_str(), "FT0C total amplitude vs FDD total amplitude;FDD total amplitude (ADC);FT0C total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
541+
// objs2D[&ooFT0TotAmplCVsFDDTotAmpl] = [&]() { return std::make_pair(objs[&ooFDDTotAmpl](), objs[&ooFT0TotAmplC]()); };
542+
543+
// ooFT0TotAmplCVsFDDTotAmplA.setObject(new TH3F(ooFT0TotAmplCVsFDDTotAmplA.label.c_str(), "FT0C total amplitude vs FDD-A total amplitude;FDD-A total amplitude (ADC);FT0C total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
544+
// objs2D[&ooFT0TotAmplCVsFDDTotAmplA] = [&]() { return std::make_pair(objs[&ooFDDTotAmplA](), objs[&ooFT0TotAmplC]()); };
545+
546+
// ooFT0TotAmplCVsFDDTotAmplC.setObject(new TH3F(ooFT0TotAmplCVsFDDTotAmplC.label.c_str(), "FT0C total amplitude vs FDD-C total amplitude;FDD-C total amplitude (ADC);FT0C total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
547+
// objs2D[&ooFT0TotAmplCVsFDDTotAmplC] = [&]() { return std::make_pair(objs[&ooFDDTotAmplC](), objs[&ooFT0TotAmplC]()); };
548+
549+
ooFV0TotAmplVsFDDTotAmpl.setObject(new TH3F(ooFV0TotAmplVsFDDTotAmpl.label.c_str(), "FV0 total amplitude vs FDD total amplitude;FDD total amplitude (ADC);FV0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
550+
objs2D[&ooFV0TotAmplVsFDDTotAmpl] = [&]() { return std::make_pair(objs[&ooFDDTotAmpl](), objs[&ooFV0TotAmpl]()); };
551+
552+
// ooFV0TotAmplVsFDDTotAmplA.setObject(new TH3F(ooFV0TotAmplVsFDDTotAmplA.label.c_str(), "FV0 total amplitude vs FDD-A total amplitude;FDD-A total amplitude (ADC);FV0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
553+
// objs2D[&ooFV0TotAmplVsFDDTotAmplA] = [&]() { return std::make_pair(objs[&ooFDDTotAmplA](), objs[&ooFV0TotAmpl]()); };
554+
555+
// ooFV0TotAmplVsFDDTotAmplC.setObject(new TH3F(ooFV0TotAmplVsFDDTotAmplC.label.c_str(), "FV0 total amplitude vs FDD-C total amplitude;FDD-C total amplitude (ADC);FV0 total amplitude (ADC)", nBinsTotAmpl / 10, totAmplMin, totAmplMax, nBinsTotAmpl / 10, totAmplMin, totAmplMax, conditions.size(), 0, conditions.size()));
556+
// objs2D[&ooFV0TotAmplVsFDDTotAmplC] = [&]() { return std::make_pair(objs[&ooFDDTotAmplC](), objs[&ooFV0TotAmpl]()); };
557+
479558
// 2D quantities per X bin
480559

481560
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()));
@@ -540,9 +619,13 @@ struct fitQa {
540619

541620
for (size_t i = 0; i < ft0.amplitudeA().size(); i++) {
542621
ft0ChAmpl[ft0.channelA()[i]] = ft0.amplitudeA()[i];
622+
ft0TotAmpl += ft0.amplitudeA()[i];
623+
ft0TotAmplA += ft0.amplitudeA()[i];
543624
}
544625
for (size_t i = 0; i < ft0.amplitudeC().size(); i++) {
545626
ft0ChAmpl[ft0.channelC()[i] + nChFT0A] = ft0.amplitudeC()[i]; // Channel IDs in the C-side array start from zero in AO2D (JIRA AFIT-129)
627+
ft0TotAmpl += ft0.amplitudeC()[i];
628+
ft0TotAmplC += ft0.amplitudeC()[i];
546629
}
547630

548631
}
@@ -558,6 +641,7 @@ struct fitQa {
558641

559642
for (size_t i = 0; i < fv0.amplitude().size(); i++) {
560643
fv0ChAmpl[fv0.channel()[i]] = fv0.amplitude()[i];
644+
fv0TotAmpl += fv0.amplitude()[i];
561645
}
562646
}
563647

@@ -574,9 +658,13 @@ struct fitQa {
574658
// TODO: don't hard code?
575659
for (size_t i = 0; i < 8; i++) {
576660
fddChAmpl[i + 8] = fdd.chargeA()[i];
661+
fddTotAmpl += fdd.chargeA()[i];
662+
fddTotAmplA += fdd.chargeA()[i];
577663
}
578664
for (size_t i = 0; i < 8; i++) {
579665
fddChAmpl[i] = fdd.chargeC()[i];
666+
fddTotAmpl += fdd.chargeC()[i];
667+
fddTotAmplC += fdd.chargeC()[i];
580668
}
581669
}
582670

0 commit comments

Comments
 (0)