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}}),
40 m_averageTime({{0, 0}}),
41 m_fail({{
false,
false}})
43 m_moduleDisabled[0] = {{
false,
false,
false,
false}};
44 m_moduleDisabled[1] = {{
false,
false,
false,
false}};
46 m_moduleAnalyzers[0] = {{0, 0, 0, 0}};
47 m_moduleAnalyzers[1] = {{0, 0, 0, 0}};
49 m_calibAmplitude[0] = {{0, 0, 0, 0}};
50 m_calibAmplitude[1] = {{0, 0, 0, 0}};
52 m_calibTime[0] = {{0, 0, 0, 0}};
53 m_calibTime[1] = {{0, 0, 0, 0}};
55 m_dataLoaded[0] = {{
false,
false,
false,
false}};
56 m_dataLoaded[1] = {{
false,
false,
false,
false}};
58 m_delayedOrder[0] = {0, 0, 0, 0};
59 m_delayedOrder[1] = {0, 0, 0, 0};
63 m_HGGains[0] = {{10, 10, 10, 10}};
64 m_HGGains[1] = {{10, 10, 10, 10}};
66 m_pedestals[0] = {{100, 100, 100, 100}};
67 m_pedestals[1] = {{100, 100, 100, 100}};
72 for (
size_t side : {0, 1}) {
73 for (
size_t module : {0, 1, 2, 3}) {
74 std::ostringstream moduleTag;
77 m_moduleAnalyzers[
side][
module].reset (
new ZDCPulseAnalyzer(m_msgFunc_p, moduleTag.str(), m_nSample, m_deltaTSample, m_preSampleIdx,
82 m_moduleAnalyzers[
side][
module]->setLGMode(m_LGMode);
110 int delayedOrder = deltaT < 0 ? -1 : 1;
111 for (
size_t side : {0, 1}) {
112 for (
size_t module : {0, 1, 2, 3}) {
121 for (
size_t side : {0, 1}) {
122 for (
size_t module : {0, 1, 2, 3}) {
136 for (
size_t side : {0, 1}) {
137 for (
size_t module : {0, 1, 2, 3}) {
145 for (
size_t side : {0, 1}) {
146 for (
size_t module : {0, 1, 2, 3}) {
154 for (
size_t side : {0, 1}) {
155 for (
size_t module : {0, 1, 2, 3}) {
163 for (
size_t side : {0, 1}) {
164 for (
size_t module : {0, 1, 2, 3}) {
174 for (
size_t side : {0, 1}) {
175 for (
size_t module : {0, 1, 2, 3}) {
183 for (
size_t side : {0, 1}) {
184 for (
size_t module : {0, 1, 2, 3}) {
192 for (
size_t side : {0, 1}) {
193 for (
size_t module : {0, 1, 2, 3}) {
201 for (
size_t side : {0, 1}) {
202 for (
size_t module : {0, 1, 2, 3}) {
209 for (
size_t side : {0, 1}) {
210 for (
size_t module : {0, 1, 2, 3}) {
218 for (
size_t side : {0, 1}) {
219 for (
size_t module : {0, 1, 2, 3}) {
235 for (
size_t side : {0, 1}) {
236 for (
size_t module : {0, 1, 2, 3}) {
245 for (
size_t side : {0, 1}) {
246 for (
size_t module : {0, 1, 2, 3}) {
253 for (
size_t side : {0, 1}) {
254 for (
size_t module : {0, 1, 2, 3}) {
263 for (
size_t side : {0, 1}) {
264 for (
size_t module : {0, 1, 2, 3}) {
274 for (
size_t side : {0, 1}) {
275 for (
size_t module : {0, 1, 2, 3}) {
284 for (
size_t side : {0, 1}) {
285 for (
size_t module : {0, 1, 2, 3}) {
295 for (
size_t side : {0, 1}) {
296 for (
size_t module : {0, 1, 2, 3}) {
308 for (
size_t side : {0, 1}) {
309 for (
size_t module : {0, 1, 2, 3}) {
321 for (
size_t side : {0, 1}) {
322 for (
size_t module : {0, 1, 2, 3}) {
334 for (
size_t side : {0, 1}) {
335 for (
size_t module : {0, 1, 2, 3}) {
343 for (
size_t side : {0, 1}) {
344 for (
size_t module : {0, 1, 2, 3}) {
354 for (
size_t side : {0, 1}) {
355 for (
size_t module : {0, 1, 2, 3}) {
379 for (
size_t side : {0, 1}) {
380 for (
size_t module : {0, 1, 2, 3}) {
400 for (
size_t side : {0, 1}) {
401 for (
size_t module : {0, 1, 2, 3}) {
424 for (
size_t side : {0, 1}) {
425 for (
size_t module : {0, 1, 2, 3}) {
466 if (pulseAna_p->
Failed()) {
476 const std::vector<float>& HGSamplesDelayed,
const std::vector<float>& LGSamplesDelayed)
495 pulseAna_p->
LoadAndAnalyzeData(HGSamples, LGSamples, HGSamplesDelayed, LGSamplesDelayed);
498 pulseAna_p->
LoadAndAnalyzeData(HGSamplesDelayed, LGSamplesDelayed, HGSamples, LGSamples);
502 if (pulseAna_p->
Failed()) {
515 unsigned int sideNPulsesMod[2] = {0, 0};
517 for (
size_t side : {0, 1}) {
518 for (
size_t module : {0, 1, 2, 3}) {
528 for (
size_t side : {0, 1}) {
529 if (sideNPulsesMod[
side] == 0)
continue;
531 for (
size_t module : {0, 1, 2, 3}) {
549 for (
size_t side : {0, 1}) {
550 float tempFraction = 1.0;
551 double sumAmpTimesBkgdFrac = 0.0;
552 double sumCalibAmpTimesBkgdFrac = 0.0;
554 for (
size_t module : {0, 1, 2, 3}) {
569 float timeCalib = pulseAna_p->
GetT0Corr();
577 sumAmpTimesBkgdFrac += amplitude*bkgdFraction;
585 sumCalibAmpTimesBkgdFrac += amplitude*bkgdFraction;