18 unsigned int LGMode) :
19 m_msgFunc_p(msgFunc_p),
20 m_nSample(nSample), m_deltaTSample(deltaTSample), m_preSampleIdx(preSampleIdx),
21 m_fitFunction(std::move(fitFunction)),
23 m_repassEnabled(false),
30 m_currentECalibCoeff ({{{{1, 1, 1, 1}}, {{1, 1, 1, 1}}}}),
31 m_currentT0OffsetsHG ({{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}),
32 m_currentT0OffsetsLG ({{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}),
35 m_moduleSum({{0, 0}}),
36 m_moduleSumErrSq({{0, 0}}),
37 m_moduleSumPreSample({{0, 0}}),
38 m_calibModuleSum({{0, 0}}),
39 m_calibModuleSumErrSq({{0, 0}}),
42 {{ {{0,0,0,0,0,0}},{{0,0,0,0,0,0}},{{0,0,0,0,0,0}} }},
43 {{ {{0,0,0,0,0,0}},{{0,0,0,0,0,0}},{{0,0,0,0,0,0}} }} }}),
44 m_NLcalibModuleSum({{0, 0}}),
45 m_NLcalibModuleSumErrSq({{0, 0}}),
46 m_averageTime({{0, 0}}),
47 m_fail({{
false,
false}})
49 m_moduleDisabled[0] = {{
false,
false,
false,
false}};
50 m_moduleDisabled[1] = {{
false,
false,
false,
false}};
52 m_moduleAnalyzers[0] = {{0, 0, 0, 0}};
53 m_moduleAnalyzers[1] = {{0, 0, 0, 0}};
55 m_calibAmplitude[0] = {{0, 0, 0, 0}};
56 m_calibAmplitude[1] = {{0, 0, 0, 0}};
58 m_calibTime[0] = {{0, 0, 0, 0}};
59 m_calibTime[1] = {{0, 0, 0, 0}};
61 m_dataLoaded[0] = {{
false,
false,
false,
false}};
62 m_dataLoaded[1] = {{
false,
false,
false,
false}};
64 m_delayedOrder[0] = {0, 0, 0, 0};
65 m_delayedOrder[1] = {0, 0, 0, 0};
69 m_HGGains[0] = {{10, 10, 10, 10}};
70 m_HGGains[1] = {{10, 10, 10, 10}};
72 m_pedestals[0] = {{100, 100, 100, 100}};
73 m_pedestals[1] = {{100, 100, 100, 100}};
77 for (
size_t side : {0, 1}) {
78 for (
size_t module : {0, 1, 2, 3}) {
79 std::ostringstream moduleTag;
82 m_moduleAnalyzers[
side][
module].reset (
new ZDCPulseAnalyzer(m_msgFunc_p, moduleTag.str(), m_nSample, m_deltaTSample, m_preSampleIdx,
87 m_moduleAnalyzers[
side][
module]->setLGMode(m_LGMode);
115 int delayedOrder = deltaT < 0 ? -1 : 1;
116 for (
size_t side : {0, 1}) {
117 for (
size_t module : {0, 1, 2, 3}) {
126 for (
size_t side : {0, 1}) {
127 for (
size_t module : {0, 1, 2, 3}) {
141 for (
size_t side : {0, 1}) {
142 for (
size_t module : {0, 1, 2, 3}) {
150 for (
size_t side : {0, 1}) {
151 for (
size_t module : {0, 1, 2, 3}) {
159 for (
size_t side : {0, 1}) {
160 for (
size_t module : {0, 1, 2, 3}) {
168 for (
size_t side : {0, 1}) {
169 for (
size_t module : {0, 1, 2, 3}) {
179 for (
size_t side : {0, 1}) {
180 for (
size_t module : {0, 1, 2, 3}) {
188 for (
size_t side : {0, 1}) {
189 for (
size_t module : {0, 1, 2, 3}) {
197 for (
size_t side : {0, 1}) {
198 for (
size_t module : {0, 1, 2, 3}) {
206 for (
size_t side : {0, 1}) {
207 for (
size_t module : {0, 1, 2, 3}) {
214 for (
size_t side : {0, 1}) {
215 for (
size_t module : {0, 1, 2, 3}) {
223 for (
size_t side : {0, 1}) {
224 for (
size_t module : {0, 1, 2, 3}) {
240 for (
size_t side : {0, 1}) {
241 for (
size_t module : {0, 1, 2, 3}) {
250 for (
size_t side : {0, 1}) {
251 for (
size_t module : {0, 1, 2, 3}) {
258 for (
size_t side : {0, 1}) {
259 for (
size_t module : {0, 1, 2, 3}) {
268 for (
size_t side : {0, 1}) {
269 for (
size_t module : {0, 1, 2, 3}) {
279 for (
size_t side : {0, 1}) {
280 for (
size_t module : {0, 1, 2, 3}) {
289 for (
size_t side : {0, 1}) {
290 for (
size_t module : {0, 1, 2, 3}) {
300 for (
size_t side : {0, 1}) {
301 for (
size_t module : {0, 1, 2, 3}) {
313 for (
size_t side : {0, 1}) {
314 for (
size_t module : {0, 1, 2, 3}) {
326 for (
size_t side : {0, 1}) {
327 for (
size_t module : {0, 1, 2, 3}) {
337 for (
size_t side: {0,1})
339 for (
size_t module: {0,1,2})
341 for (
size_t val: {0,1,2,3,4,5})
354 for (
size_t side : {0, 1}) {
355 for (
size_t module : {0, 1, 2, 3}) {
363 for (
size_t side : {0, 1}) {
364 for (
size_t module : {0, 1, 2, 3}) {
374 for (
size_t side : {0, 1}) {
375 for (
size_t module : {0, 1, 2, 3}) {
399 for (
size_t side : {0, 1}) {
400 for (
size_t module : {0, 1, 2, 3}) {
420 for (
size_t side : {0, 1}) {
421 for (
size_t module : {0, 1, 2, 3}) {
444 for (
size_t side : {0, 1}) {
445 for (
size_t module : {0, 1, 2, 3}) {
491 if (pulseAna_p->
Failed()) {
501 const std::vector<float>& HGSamplesDelayed,
const std::vector<float>& LGSamplesDelayed)
520 pulseAna_p->
LoadAndAnalyzeData(HGSamples, LGSamples, HGSamplesDelayed, LGSamplesDelayed);
523 pulseAna_p->
LoadAndAnalyzeData(HGSamplesDelayed, LGSamplesDelayed, HGSamples, LGSamples);
527 if (pulseAna_p->
Failed()) {
540 unsigned int sideNPulsesMod[2] = {0, 0};
542 for (
size_t side : {0, 1}) {
543 for (
size_t module : {0, 1, 2, 3}) {
553 for (
size_t side : {0, 1}) {
554 if (sideNPulsesMod[
side] == 0)
continue;
556 for (
size_t module : {0, 1, 2, 3}) {
574 for (
size_t side : {0, 1}) {
575 float tempFraction = 1.0;
576 double sumAmpTimesBkgdFrac = 0.0;
577 double sumCalibAmpTimesBkgdFrac = 0.0;
579 for (
size_t module : {0, 1, 2, 3}) {
594 float timeCalib = pulseAna_p->
GetT0Corr();
602 sumAmpTimesBkgdFrac += amplitude*bkgdFraction;
610 sumCalibAmpTimesBkgdFrac += amplitude*bkgdFraction;
645 for (
int iside:{0,1})
653 float EMCorrFact = 0;
660 float Had1CorrFact = 0;
666 float Had2CorrFact = 0;
673 float ECorrEMHad1 = ECorrEM/Had1CorrFact;
674 float ECorrEMHad1Had2 = ECorrEMHad1/Had2CorrFact;