15 std::vector<double> zeroVec(npar, 0.0);
32void ZDCFitWrapper::Initialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax,
float fitTmin,
float fitTmax,
float fitTRef)
38 std::vector<double> zeroVec(npar, 0.0);
60 theTF1->SetParName(0,
"Amp");
61 theTF1->SetParName(1,
"T0");
62 theTF1->SetParName(2,
"#tau_{1}");
63 theTF1->SetParName(3,
"#tau_{2}");
64 theTF1->SetParName(4,
"C");
67 theTF1->SetParLimits(1, tmin, tmax);
68 theTF1->SetParLimits(2, 3, 6);
69 theTF1->SetParLimits(3, 10, 40);
79 theTF1->SetParameter(0, initialAmp);
80 theTF1->SetParameter(1, initialT0);
81 theTF1->SetParameter(4, 0);
83 theTF1->SetParLimits(0, ampMin, ampMax);
94 theTF1->SetParLimits(1, t0Min, t0Max);
103 theTF1->FixParameter(4, 0);
108 theTF1->ReleaseParameter(4);
115 theTF1->SetParLimits(2, 0.5, 3);
116 theTF1->SetParLimits(3, 4, 10);
131 theTF1->SetParName(0,
"Amp");
132 theTF1->SetParName(1,
"T0");
133 theTF1->SetParName(2,
"#tau_{1}");
134 theTF1->SetParName(3,
"#tau_{2}");
135 theTF1->SetParName(4,
"C");
136 theTF1->SetParName(5,
"refdelay");
137 theTF1->SetParName(6,
"reflAmpFrac");
138 theTF1->SetParName(7,
"reflWidth");
139 theTF1->SetParName(8,
"delta");
141 theTF1->SetParLimits(1, tmin, tmax);
142 theTF1->SetParLimits(4, -100, 100);
143 theTF1->SetParLimits(6, -1e-4, 0.35);
145 theTF1->FixParameter(5, 6.5);
146 theTF1->FixParameter(7, 1.5);
147 theTF1->FixParameter(8, 0.01);
150 else theTF1->SetParLimits(2, 1, 2);
153 else theTF1->SetParLimits(3, 3.5, 6);
160 theTF1->SetParameter(0, initialAmp);
162 float t0 = initialT0;
165 theTF1->SetParameter(1,
t0);
167 theTF1->SetParameter(1, initialT0);
168 theTF1->SetParameter(4, 0);
169 theTF1->SetParameter(6, 0.1);
171 theTF1->SetParLimits(0, ampMin, ampMax);
178 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
180 theTF1->SetParError(0, ampStep);
181 theTF1->SetParError(1, 1.0);
183 if (!
m_fixTau1) theTF1->SetParError(2, 0.05);
184 if (!
m_fixTau2) theTF1->SetParError(3, 0.25);
186 theTF1->SetParError(4, 2);
187 theTF1->SetParError(5, 0.25);
188 theTF1->SetParError(6, 0.05);
196 theTF1->SetParLimits(1, t0Min, t0Max);
205 theTF1->FixParameter(4, 0);
206 theTF1->FixParameter(6, 0);
211 theTF1->ReleaseParameter(4);
212 theTF1->SetParameter(4, 0);
214 theTF1->ReleaseParameter(6);
215 theTF1->SetParLimits(6, -1e-4, 0.35);
216 theTF1->SetParameter(6, 0.1);
225 theTF1->SetParName(0,
"Amp");
226 theTF1->SetParName(1,
"T0");
227 theTF1->SetParName(2,
"#tau_{1}");
228 theTF1->SetParName(3,
"#tau_{2}");
229 theTF1->SetParName(4,
"C");
230 theTF1->SetParName(5,
"period");
231 theTF1->SetParName(6,
"IndA");
232 theTF1->SetParName(7,
"IndB");
233 theTF1->SetParName(8,
"tauI");
234 theTF1->SetParName(9,
"delta");
236 theTF1->SetParLimits(1, tmin, tmax);
237 theTF1->SetParLimits(4, -50, 50);
238 theTF1->SetParLimits(5, 10, 50);
239 theTF1->SetParLimits(6, 0, 2);
240 theTF1->SetParLimits(7, 0, 2);
242 theTF1->FixParameter(8, 5.5);
243 theTF1->FixParameter(5, 16);
250 else theTF1->SetParLimits(2, 0.5, 3);
253 else theTF1->SetParLimits(3, 3.5, 8);
260 theTF1->SetParameter(0, initialAmp);
261 theTF1->SetParLimits(0, ampMin, ampMax);
263 float t0 = initialT0;
266 theTF1->SetParameter(1,
t0);
268 theTF1->SetParameter(6, 0.25);
269 theTF1->SetParameter(7, 0.8);
277 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
279 theTF1->SetParError(0, ampStep);
280 theTF1->SetParError(1, 1.0);
282 if (!
m_fixTau1) theTF1->SetParError(2, 0.05);
283 if (!
m_fixTau2) theTF1->SetParError(3, 0.25);
285 theTF1->SetParError(4, 1);
286 theTF1->SetParError(5, 5);
287 theTF1->SetParError(6, 0.1);
288 theTF1->SetParError(7, 0.1);
296 theTF1->SetParLimits(1, t0Min, t0Max);
302 theTF1->FixParameter(6, 0.25);
303 theTF1->FixParameter(4, 0);
310 theTF1->ReleaseParameter(6);
311 theTF1->ReleaseParameter(4);
312 theTF1->SetParLimits(6, 0, 2);
313 theTF1->SetParLimits(4, -50, 50);
318 ZDCFitWrapper(
std::make_shared<TF1>((
"ExpFermiFixedTaus" + tag).c_str(), this, tmin, tmax, 3)),
324 theTF1->SetParLimits(1, tmin, tmax);
326 theTF1->SetParName(0,
"Amp");
327 theTF1->SetParName(1,
"T0");
328 theTF1->SetParName(2,
"C");
332 std::string funcNameRefFunc =
"ExpFermiFixedTausRefFunc" + tag;
358 theTF1->FixParameter(2, 0);
363 theTF1->ReleaseParameter(2);
377 std::string funcNameRefFunc =
"ExpFermiPrePulseRefFunc" + tag;
395 theTF1->SetParLimits(1, tmin, tmax);
396 theTF1->SetParLimits(2, 1, 8196);
397 theTF1->SetParLimits(3, -20, 10);
399 theTF1->SetParName(0,
"Amp");
400 theTF1->SetParName(1,
"T0");
401 theTF1->SetParName(2,
"Amp_{pre}");
402 theTF1->SetParName(3,
"T0_{pre}");
403 theTF1->SetParName(4,
"C");
412 theTF1->FixParameter(2, 0);
413 theTF1->FixParameter(4, 0);
418 theTF1->ReleaseParameter(2);
419 theTF1->ReleaseParameter(4);
421 theTF1->SetParLimits(2, 1, 8196);
447 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
458 theTF1->SetParLimits(1, t0Min, t0Max);
468 std::string funcNameRefFunc =
"ExpFermiPreExpRefFunc" + tag;
486 theTF1->SetParName(0,
"Amp");
487 theTF1->SetParName(1,
"T0");
488 theTF1->SetParName(2,
"Amp_{pre}");
489 theTF1->SetParName(3,
"tau_{pre}");
490 theTF1->SetParName(4,
"tausqrt_{pre}");
491 theTF1->SetParName(5,
"C");
493 theTF1->SetParLimits(1, tmin, tmax);
494 theTF1->SetParLimits(2, -1, 8196);
495 theTF1->SetParLimits(3, 6, 30);
496 theTF1->SetParLimits(4, -0.2, 0.2);
497 theTF1->SetParLimits(5, -50, 50);
506 theTF1->FixParameter(2, 0);
508 theTF1->FixParameter(5, 0);
514 theTF1->ReleaseParameter(2);
515 theTF1->SetParLimits(2, -1, 8196);
517 theTF1->ReleaseParameter(3);
518 theTF1->SetParLimits(3, 6, 30);
521 theTF1->ReleaseParameter(5);
522 theTF1->SetParLimits(5, -50, 50);
523 theTF1->SetParameter(5, 0);
539 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
551 theTF1->SetParLimits(1, t0Min, t0Max);
561 std::string funcNameRefFunc =
"ExpFermiLHCfPreExpRefFunc" + tag;
580 theTF1->SetParName(0,
"Amp");
581 theTF1->SetParName(1,
"T0");
582 theTF1->SetParName(2,
"Tau1");
583 theTF1->SetParName(3,
"Tau2");
584 theTF1->SetParName(4,
"Amp_{pre}");
585 theTF1->SetParName(5,
"tau_{pre}");
586 theTF1->SetParName(6,
"bsqrt_{pre}");
587 theTF1->SetParName(7,
"ReflFrac");
589 theTF1->SetParLimits(1, tmin, tmax);
590 theTF1->SetParLimits(2, 1.0, 2);
591 theTF1->SetParLimits(3, 3.5, 5.5);
592 theTF1->SetParLimits(4, -1, 8196);
593 theTF1->SetParLimits(5, 4, 12);
594 theTF1->SetParLimits(6, -0.001, 0.001);
595 theTF1->SetParLimits(7, -1.0e-4, 0.3);
600 GetWrapperTF1()->SetParameter(0, std::max(initialAmp, ampMin));
602 float t0 = initialT0;
618 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
636 theTF1->FixParameter(6, 0);
637 theTF1->FixParameter(7, 0.20);
643 theTF1->ReleaseParameter(5);
644 theTF1->SetParLimits(5, 6, 12);
646 theTF1->ReleaseParameter(6);
647 theTF1->SetParLimits(6, -0.001, 0.001);
650 theTF1->ReleaseParameter(7);
651 theTF1->SetParLimits(7, -1.0e-4, 0.3);
659 theTF1->SetParLimits(1, t0Min, t0Max);
668 std::string funcNameRefFunc =
"ExpFermiLHCfPrePulseRefFunc" + tag;
669 std::string funcNamePreFunc =
"ExpFermiLHCfPrePulsePreFunc" + tag;
697 theTF1->SetParName(0,
"Amp");
698 theTF1->SetParName(1,
"T0");
699 theTF1->SetParName(2,
"tau1");
700 theTF1->SetParName(3,
"tau2");
701 theTF1->SetParName(4,
"Amp_{pre}");
702 theTF1->SetParName(5,
"T0_{pre}");
703 theTF1->SetParName(6,
"C");
706 theTF1->SetParLimits(1, tmin, tmax);
707 theTF1->SetParLimits(2, 1.0, 2);
708 theTF1->SetParLimits(3, 3.5, 5.5);
709 theTF1->SetParLimits(4, 1, 8196);
710 theTF1->SetParLimits(5, -20, 10);
711 theTF1->SetParLimits(6, -50, 50);
721 theTF1->FixParameter(4, 0);
722 theTF1->FixParameter(6, 0);
727 theTF1->ReleaseParameter(4);
728 theTF1->ReleaseParameter(6);
730 theTF1->SetParLimits(4, 1, 8196);
731 theTF1->SetParLimits(6, -50, 50);
761 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
774 theTF1->SetParLimits(1, t0Min, t0Max);
784 std::string funcNameRefFunc =
"ExpFermiInductPreExpRefFunc" + tag;
806 theTF1->SetParName(0,
"Amp");
807 theTF1->SetParName(1,
"T0");
808 theTF1->SetParName(2,
"Amp_{pre}");
809 theTF1->SetParName(3,
"tau_{pre}");
810 theTF1->SetParName(4,
"bsqrt_{pre}");
811 theTF1->SetParName(5,
"C");
812 theTF1->SetParName(6,
"IndA");
813 theTF1->SetParName(7,
"IndB");
815 theTF1->SetParLimits(1, tmin, tmax);
816 theTF1->SetParLimits(2, -1, 8196);
817 theTF1->SetParLimits(3, 4, 12);
818 theTF1->SetParLimits(4, -0.001, 0.001);
819 theTF1->SetParLimits(6, 0.0, 1);
820 theTF1->SetParLimits(7, 0, 2);
825 GetWrapperTF1()->SetParameter(0, std::max(initialAmp, ampMin));
827 float t0 = initialT0;
841 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
862 theTF1->SetParLimits(1, t0Min, t0Max);
871 std::string funcNameRefFunc =
"ExpFermiInductPrePulseRefFunc" + tag;
872 std::string funcNamePreFunc =
"ExpFermiInductPrePulsePreFunc" + tag;
901 theTF1->SetParName(0,
"Amp");
902 theTF1->SetParName(1,
"T0");
903 theTF1->SetParName(2,
"Amp_{pre}");
904 theTF1->SetParName(3,
"T0_{pre}");
905 theTF1->SetParName(4,
"C");
906 theTF1->SetParName(5,
"IndA");
907 theTF1->SetParName(6,
"IndB");
910 theTF1->SetParLimits(1, tmin, tmax);
911 theTF1->SetParLimits(2, -50, 50);
912 theTF1->SetParLimits(3, 0, 1);
913 theTF1->SetParLimits(4, 0, 2);
950 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
963 theTF1->SetParLimits(1, t0Min, t0Max);
970 ZDCFitWrapper(
std::make_shared<TF1>((
"ExpFermiFixedTaus" + tag).c_str(), this, tmin, tmax, 4)),
976 theTF1->SetParLimits(1, tmin, tmax);
978 theTF1->SetParName(0,
"Amp");
979 theTF1->SetParName(1,
"T0");
980 theTF1->SetParName(2,
"s_{b}");
981 theTF1->SetParName(3,
"c_{b}");
985 std::string funcNameRefFunc =
"ExpFermiFixedTausRefFunc" + tag;
1005 theTF1->FixParameter(2, 0);
1006 theTF1->FixParameter(3, 0);
1012 theTF1->ReleaseParameter(2);
1013 theTF1->ReleaseParameter(3);
1018 float slope = std::abs(0.1 * initialAmp / initialT0);
1019 float intercept = std::abs(0.1 * initialAmp);
1030 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
1041 theTF1->SetParLimits(1, t0Min, t0Max);
1052 std::string funcNameRefFunc =
"ExpFermiPerPulseRefFunc" + tag;
1069 theTF1->SetParName(0,
"Amp");
1070 theTF1->SetParName(1,
"T0");
1071 theTF1->SetParName(2,
"Amp_{pre}");
1072 theTF1->SetParName(3,
"T0_{pre}");
1073 theTF1->SetParName(4,
"s_{b}");
1074 theTF1->SetParName(5,
"c_{b}");
1077 theTF1->SetParLimits(1, tmin, tmax);
1078 theTF1->SetParLimits(2, 1, 4096);
1079 theTF1->SetParLimits(3, -20, 10);
1088 theTF1->FixParameter(4, 0);
1089 theTF1->FixParameter(5, 0);
1095 theTF1->ReleaseParameter(4);
1096 theTF1->ReleaseParameter(5);
1106 float slope = std::abs(initialAmp / initialT0);
1107 float intercept = std::abs(0.5 * initialAmp);
1118 double ampStep = std::min(0.05*initialAmp, std::abs(ampMax - initialAmp)/2.);
1142 std::string funcNameRefFunc =
"ExpFermiPerPulseRefFunc" + tag;
1159 theTF1->SetParLimits(1, tmin, tmax);
1160 theTF1->SetParLimits(2, 0, 2048);
1161 theTF1->SetParLimits(3, 0, 40);
1162 theTF1->SetParLimits(6, 0, 4096);
1164 theTF1->SetParName(0,
"Amp");
1165 theTF1->SetParName(1,
"T0");
1166 theTF1->SetParName(2,
"Amp_{pre}");
1167 theTF1->SetParName(3,
"T0_{pre}");
1168 theTF1->SetParName(4,
"s_{b}");
1169 theTF1->SetParName(5,
"c_{b}");
1170 theTF1->SetParName(6,
"Amp_{exp}");
1179 theTF1->FixParameter(2, 0);
1180 theTF1->FixParameter(4, 0);
1181 theTF1->FixParameter(5, 0);
1186 theTF1->ReleaseParameter(2);
1187 theTF1->ReleaseParameter(4);
1188 theTF1->ReleaseParameter(5);
1204 float slope = std::abs(initialAmp / initialT0);
1205 float intercept = std::abs(0.1 * initialAmp);
1235 std::string funcNameRefFunc =
"ExpFermiPerPulseRefFunc" + tag;
1252 theTF1->SetParLimits(1, tmin, tmax);
1253 theTF1->SetParLimits(2, 0, 2048);
1254 theTF1->SetParLimits(3, 0, 40);
1255 theTF1->SetParLimits(6, 0, 4096);
1256 theTF1->SetParLimits(7, 0, 2048);
1257 theTF1->SetParLimits(8, 100, 163);
1259 theTF1->SetParName(0,
"Amp");
1260 theTF1->SetParName(1,
"T0");
1261 theTF1->SetParName(2,
"Amp_{pre}");
1262 theTF1->SetParName(3,
"T0_{pre}");
1263 theTF1->SetParName(4,
"s_{b}");
1264 theTF1->SetParName(5,
"c_{b}");
1265 theTF1->SetParName(6,
"Amp_{exp}");
1266 theTF1->SetParName(7,
"Amp_{post}");
1267 theTF1->SetParName(8,
"T0_{post}");
1276 theTF1->FixParameter(2, 0);
1277 theTF1->FixParameter(4, 0);
1278 theTF1->FixParameter(5, 0);
1283 theTF1->ReleaseParameter(2);
1284 theTF1->ReleaseParameter(4);
1285 theTF1->ReleaseParameter(5);
1291 if (tmin < 0) tmin = 0;
1302 float iniPostT0 = initialPostT0;
1308 float slope = std::abs(initialAmp / initialT0);
1309 float intercept = std::abs(0.1 * initialAmp);
double ZDCFermiExpFit(const double *xvec, const double *pvec)
double ZDCFermiExpFitRefl(const double *xvec, const double *pvec)
double ZDCFermiExpFitInduct(const double *xvec, const double *pvec)
virtual void UnconstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void ConstrainFit() override
virtual void SetPrePulseT0Range(float tmin, float tmax) override
virtual void SetT0FitLimits(float tMin, float tMax) override
ZDCFitComplexPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
std::shared_ptr< TF1 > m_expFermiFunc
ZDCFitExpFermiFixedTaus(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual void ConstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void UnconstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void UnconstrainFit() override
std::shared_ptr< TF1 > m_expFermiInductFunc
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void ConstrainFit() override
ZDCFitExpFermiInductPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void UnconstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
ZDCFitExpFermiInductPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
std::shared_ptr< TF1 > m_expFermiPreFunc
std::shared_ptr< TF1 > m_expFermiInductFunc
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void SetPrePulseT0Range(float tmin, float tmax) override
virtual void ConstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void ConstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
std::shared_ptr< TF1 > m_expFermiLHCfFunc
ZDCFitExpFermiLHCfPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual void UnconstrainFit() override
std::shared_ptr< TF1 > m_expFermiPreFunc
std::shared_ptr< TF1 > m_expFermiLHCfFunc
virtual void ConstrainFit() override
virtual void SetPrePulseT0Range(float tmin, float tmax) override
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
ZDCFitExpFermiLHCfPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual void UnconstrainFit() override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void SetT0FitLimits(float tMin, float tMax) override
ZDCFitExpFermiLinearFixedTaus(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual void ConstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void UnconstrainFit() override
virtual void ConstrainFit() override
virtual void SetPrePulseT0Range(float tmin, float tmax) override
virtual void UnconstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
ZDCFitExpFermiLinearPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
std::shared_ptr< TF1 > m_expFermiFunc
virtual void SetT0FitLimits(float tMin, float tMax) override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void UnconstrainFit() override
virtual void ConstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
ZDCFitExpFermiPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void ConstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void SetPrePulseT0Range(float tmin, float tmax) override
virtual void UnconstrainFit() override
ZDCFitExpFermiPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
ZDCFitExpFermiVariableTausInduct(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual void ConstrainFit() override
virtual void UnconstrainFit() override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
void FixDelta(float value)
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void UnconstrainFit() override
ZDCFitExpFermiVariableTausLHCf(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void ConstrainFit() override
ZDCFitExpFermiVariableTausRun3(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void ConstrainFit() override
ZDCFitExpFermiVariableTaus(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual void UnconstrainFit() override
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax) override
virtual void UnconstrainFit() override
virtual void ConstrainFit() override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void SetT0FitLimits(float tMin, float tMax) override
virtual void SetPostPulseT0Range(float tmin, float tmax, float initialPostT0) override
ZDCFitGeneralPulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual void SetPrePulseT0Range(float tmin, float tmax) override
void Initialize(float initialAmp, float initialT0, float ampMin, float ampMax)
virtual std::shared_ptr< TF1 > GetWrapperTF1()
virtual void SetT0FitLimits(float tMin, float tMax)=0
ZDCFitWrapper(const std::shared_ptr< TF1 > &wrapperTF1)
void SetAmpMinMax(float minAmp, float maxAmp)
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax)=0
float getDefaultExpTau() const
ZDCPreExpFitWrapper(std::shared_ptr< TF1 > wrapperTF1, float defaultExpTau, bool fixTau)
ZDCPrePulseFitWrapper(std::shared_ptr< TF1 > wrapperTF1)