96 size_t preSampleIdx,
const std::string &fitFunction,
97 const ZDCModuleIntArray& peak2ndDerivMinSamples,
98 const ZDCModuleFloatArray& peak2ndDerivMinThresholdsHG,
99 const ZDCModuleFloatArray& peak2ndDerivMinThresholdsLG,
113 for (
size_t side : {0, 1}) {
114 for (
size_t module : {0, 1, 2, 3}) {
120 void enableDelayed(
float deltaT,
const ZDCModuleFloatArray& undelayedDelayedPedestalDiff);
121 void enableDelayed(
const ZDCModuleFloatArray& delayDeltaT,
const ZDCModuleFloatArray& undelayedDelayedPedestalDiff);
123 void enableRepass(
const ZDCModuleFloatArray& peak2ndDerivMinRepassHG,
const ZDCModuleFloatArray& peak2ndDerivMinRepassLG);
125 void enablePreExclusion(
unsigned int maxSamplesExcl,
const ZDCModuleIntArray& HGADCThresh,
const ZDCModuleIntArray& LGADCThresh);
126 void enablePreExclusion(
unsigned int maxSamplesExcl,
unsigned int HGADCThresh,
unsigned int LGADCThresh);
128 void enablePostExclusion(
unsigned int maxSamplesExcl,
const ZDCModuleIntArray& HGADCThresh,
const ZDCModuleIntArray& LGADCThresh);
129 void enablePostExclusion(
unsigned int maxSamplesExcl,
unsigned int HGADCThresh,
unsigned int LGADCThresh);
144 void DoNLcalibModuleSum();
166 bool disableModule(
size_t side,
size_t module);
168 void set2ndDerivStep(
size_t step);
170 void setMinimumSignificance(
float sigMinHG,
float sigMinLG);
172 void SetGainFactorsHGLG(
float gainFactorHG,
float gainFactorLG);
174 void SetGainFactorsHGLG(
const ZDCModuleFloatArray& gainFactorsHG,
const ZDCModuleFloatArray& gainFactorsLG);
176 void SetPeak2ndDerivMinTolerances(
size_t tolerance);
178 void SetFitTimeMax(
float tmax);
180 void SetADCOverUnderflowValues(
const ZDCModuleFloatArray& HGOverflowADC,
const ZDCModuleFloatArray& HGUnderflowADC,
181 const ZDCModuleFloatArray& LGOverflowADC);
183 void SetNoiseSigmas(
const ZDCModuleFloatArray& noiseSigmasHG,
const ZDCModuleFloatArray& noiseSigmasLG);
185 void setPerSampleNoiseSigmas(
const std::array<std::array<std::vector<float>,4>,2>& sampleNoiseVecsHG,
186 const std::array<std::array<std::vector<float>,4>,2>& sampleNoiseVecsLG);
188 void SetTauT0Values(
const ZDCModuleBoolArray& fxiTau1,
const ZDCModuleBoolArray& fxiTau2,
189 const ZDCModuleFloatArray& tau1,
const ZDCModuleFloatArray& tau2,
190 const ZDCModuleFloatArray& t0HG,
const ZDCModuleFloatArray& t0LG);
192 void SetFitMinMaxAmpValues(
const ZDCModuleFloatArray& minAmpHG,
const ZDCModuleFloatArray& minAmpLG,
193 const ZDCModuleFloatArray& maxAmpHG,
const ZDCModuleFloatArray& maxAmpLG);
195 void SetFitMinMaxAmpValues(
float minHG,
float minLG,
float maxHG,
float maxLG);
197 void SetCutValues(
const ZDCModuleFloatArray& chisqDivAmpCutHG,
const ZDCModuleFloatArray& chisqDivAmpCutLG,
198 const ZDCModuleFloatArray& deltaT0MinHG,
const ZDCModuleFloatArray& deltaT0MaxHG,
199 const ZDCModuleFloatArray& deltaT0MinLG,
const ZDCModuleFloatArray& deltaT0MaxLG);
201 void SetTimeCuts(
const ZDCModuleFloatArray& deltaT0MinHG,
const ZDCModuleFloatArray& deltaT0MaxHG,
202 const ZDCModuleFloatArray& deltaT0MinLG,
const ZDCModuleFloatArray& deltaT0MaxLG);
204 void SetChisqCuts(
const ZDCModuleFloatArray& chisqDivAmpCutHG,
const ZDCModuleFloatArray& chisqDivAmpScaleHG,
205 const ZDCModuleFloatArray& chisqDivAmpOffsetHG,
const ZDCModuleFloatArray& chisqDivAmpPowerHG,
206 const ZDCModuleFloatArray& chisqDivAmpCutLG,
const ZDCModuleFloatArray& chisqDivAmpScaleLG,
207 const ZDCModuleFloatArray& chisqDivAmpOffsetLG,
const ZDCModuleFloatArray& chisqDivAmpPowerLG);
210 const std::array<std::array<std::vector<float>, 4>, 2>& HGParamArr,
211 const std::array<std::array<std::vector<float>, 4>, 2>& LGParamArr);
213 void SetNonlinCorrParams(
float refADC,
float refScale,
214 const std::array<std::array<std::vector<float>, 4>, 2>& HGNonlinCorrParams,
215 const std::array<std::array<std::vector<float>, 4>, 2>& LHGNonlinCorrParams);
217 void SetNLcalibParams(std::array< std::array< std::vector<float>, 3>, 2>& nlcalibParams);
221 void enablePostPulseCheck(
unsigned int postPulseSampleDelta,
float postPulseDerivMinSig,
float postPulseAbsDer2ndMinSig,
float minMainDer2ndRatio);
223 void enableTimeSigCut(
bool AND,
float sigCut,
const std::string& TF1String,
224 const std::array<std::array<std::vector<double>, 4>, 2>& parsHGArr,
225 const std::array<std::array<std::vector<double>, 4>, 2>& parsLGArr);
227 void enableFADCCorrections(
bool correctPerSample,
228 std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistHG,
229 std::array<std::array<std::unique_ptr<const TH1>, 4>, 2>& correHistLG);
231 void disableFADCCorrections();
242 std::array<std::array<std::unique_ptr<TSpline>, 4>, 2>&& T0LGOffsetSplines)
252 void StartEvent(
int lumiBlock);
254 void LoadAndAnalyzeData(
size_t side,
size_t module,
const std::vector<float>& HGSamples,
const std::vector<float>& LGSamples);
256 void LoadAndAnalyzeData(
size_t side,
size_t module,
const std::vector<float>& HGSamples,
const std::vector<float>& LGSamples,
257 const std::vector<float>& HGSamplesDelayed,
const std::vector<float>& LGSamplesDelayed);
261 void saveFitFunc(
bool save);