60 std::array<std::vector<std::tuple<unsigned int, float, std::vector<float>>>, 2>
m_iterCalibCorr;
103 size_t preSampleIdx,
const std::string &fitFunction,
104 const ZDCModuleIntArray& peak2ndDerivMinSamples,
105 const ZDCModuleFloatArray& peak2ndDerivMinThresholdsHG,
106 const ZDCModuleFloatArray& peak2ndDerivMinThresholdsLG,
120 for (
size_t side : {0, 1}) {
121 for (
size_t module : {0, 1, 2, 3}) {
127 void enableDelayed(
float deltaT,
const ZDCModuleFloatArray& undelayedDelayedPedestalDiff);
128 void enableDelayed(
const ZDCModuleFloatArray& delayDeltaT,
const ZDCModuleFloatArray& undelayedDelayedPedestalDiff);
130 void enableRepass(
const ZDCModuleFloatArray& peak2ndDerivMinRepassHG,
const ZDCModuleFloatArray& peak2ndDerivMinRepassLG);
132 void enablePreExclusion(
unsigned int maxSamplesExcl,
const ZDCModuleIntArray& HGADCThresh,
const ZDCModuleIntArray& LGADCThresh);
133 void enablePreExclusion(
unsigned int maxSamplesExcl,
unsigned int HGADCThresh,
unsigned int LGADCThresh);
135 void enablePostExclusion(
unsigned int maxSamplesExcl,
const ZDCModuleIntArray& HGADCThresh,
const ZDCModuleIntArray& LGADCThresh);
136 void enablePostExclusion(
unsigned int maxSamplesExcl,
unsigned int HGADCThresh,
unsigned int LGADCThresh);
152 void DoNLcalibModuleSum();
174 bool disableModule(
size_t side,
size_t module);
176 void set2ndDerivStep(
size_t step);
178 void setMinimumSignificance(
float sigMinHG,
float sigMinLG);
180 void SetGainFactorsHGLG(
float gainFactorHG,
float gainFactorLG);
182 void SetGainFactorsHGLG(
const ZDCModuleFloatArray& gainFactorsHG,
const ZDCModuleFloatArray& gainFactorsLG);
184 void SetPeak2ndDerivMinTolerances(
size_t tolerance);
186 void SetFitTimeMax(
float tmax);
188 void SetADCOverUnderflowValues(
const ZDCModuleFloatArray& HGOverflowADC,
const ZDCModuleFloatArray& HGUnderflowADC,
189 const ZDCModuleFloatArray& LGOverflowADC);
191 void SetNoiseSigmas(
const ZDCModuleFloatArray& noiseSigmasHG,
const ZDCModuleFloatArray& noiseSigmasLG);
193 void setPerSampleNoiseSigmas(
const std::array<std::array<std::vector<float>,4>,2>& sampleNoiseVecsHG,
194 const std::array<std::array<std::vector<float>,4>,2>& sampleNoiseVecsLG);
196 void SetTauT0Values(
const ZDCModuleBoolArray& fxiTau1,
const ZDCModuleBoolArray& fxiTau2,
197 const ZDCModuleFloatArray& tau1,
const ZDCModuleFloatArray& tau2,
198 const ZDCModuleFloatArray& t0HG,
const ZDCModuleFloatArray& t0LG);
200 void SetFitMinMaxAmpValues(
const ZDCModuleFloatArray& minAmpHG,
const ZDCModuleFloatArray& minAmpLG,
201 const ZDCModuleFloatArray& maxAmpHG,
const ZDCModuleFloatArray& maxAmpLG);
203 void SetFitMinMaxAmpValues(
float minHG,
float minLG,
float maxHG,
float maxLG);
205 void SetCutValues(
const ZDCModuleFloatArray& chisqDivAmpCutHG,
const ZDCModuleFloatArray& chisqDivAmpCutLG,
206 const ZDCModuleFloatArray& deltaT0MinHG,
const ZDCModuleFloatArray& deltaT0MaxHG,
207 const ZDCModuleFloatArray& deltaT0MinLG,
const ZDCModuleFloatArray& deltaT0MaxLG);
209 void SetTimeCuts(
const ZDCModuleFloatArray& deltaT0MinHG,
const ZDCModuleFloatArray& deltaT0MaxHG,
210 const ZDCModuleFloatArray& deltaT0MinLG,
const ZDCModuleFloatArray& deltaT0MaxLG);
212 void SetChisqCuts(
const ZDCModuleFloatArray& chisqDivAmpCutHG,
const ZDCModuleFloatArray& chisqDivAmpScaleHG,
213 const ZDCModuleFloatArray& chisqDivAmpOffsetHG,
const ZDCModuleFloatArray& chisqDivAmpPowerHG,
214 const ZDCModuleFloatArray& chisqDivAmpCutLG,
const ZDCModuleFloatArray& chisqDivAmpScaleLG,
215 const ZDCModuleFloatArray& chisqDivAmpOffsetLG,
const ZDCModuleFloatArray& chisqDivAmpPowerLG);
218 const std::array<std::array<std::vector<float>, 4>, 2>& HGParamArr,
219 const std::array<std::array<std::vector<float>, 4>, 2>& LGParamArr);
221 void SetNonlinCorrParams(
float refADC,
float refScale,
222 const std::array<std::array<std::vector<float>, 4>, 2>& HGNonlinCorrParams,
223 const std::array<std::array<std::vector<float>, 4>, 2>& LHGNonlinCorrParams);
225 void SetNLcalibParams(std::array< std::array< std::vector<float>, 3>, 2>& nlcalibParams);
229 void enablePostPulseCheck(
unsigned int postPulseSampleDelta,
float postPulseDerivMinSig,
float postPulseAbsDer2ndMinSig,
float minMainDer2ndRatio);
231 void enableTimeSigCut(
bool AND,
float sigCut,
const std::string& TF1String,
232 const std::array<std::array<std::vector<double>, 4>, 2>& parsHGArr,
233 const std::array<std::array<std::vector<double>, 4>, 2>& parsLGArr);
235 void enableFADCCorrections(
bool correctPerSample,
236 std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistHG,
237 std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistLG);
239 void disableFADCCorrections();
250 std::array<std::array<std::unique_ptr<TSpline>, 4>, 2>&& T0LGOffsetSplines)
260 void StartEvent(
int lumiBlock);
262 void LoadAndAnalyzeData(
size_t side,
size_t module,
const std::vector<float>& HGSamples,
const std::vector<float>& LGSamples);
264 void LoadAndAnalyzeData(
size_t side,
size_t module,
const std::vector<float>& HGSamples,
const std::vector<float>& LGSamples,
265 const std::vector<float>& HGSamplesDelayed,
const std::vector<float>& LGSamplesDelayed);
269 void saveFitFunc(
bool save);