5#ifndef ZDCANALYSIS_ZDCFITWRAPPER_H
6#define ZDCANALYSIS_ZDCFITWRAPPER_H
60 void Initialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax);
61 void Initialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax,
float fitTmin,
float fitTmax,
float fitTRef);
65 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax) = 0;
179 ZDCFitExpFermiVariableTaus(
const std::string& tag,
float tmin,
float tmax,
bool fixTau1,
bool fixTau2,
float tau1,
float tau2);
181 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
193 float fitT0 = theTF1->GetParameter(1);
195 float tau1 = theTF1->GetParameter(2);
196 float tau2 = theTF1->GetParameter(3);
200 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
209 else throw std::runtime_error(
"Fit parameter does not exist.");
215 double amp = theTF1->GetParameter(0);
216 double constant = theTF1->GetParameter(4);
218 if (amp > 0)
return constant / amp;
222 virtual double operator()(
const double *
x,
const double *p)
override{
249 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
261 float fitT0 = theTF1->GetParameter(1);
263 float tau1 = theTF1->GetParameter(2);
264 float tau2 = theTF1->GetParameter(3);
268 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
277 else throw std::runtime_error(
"Fit parameter does not exist.");
283 double amp = theTF1->GetParameter(0);
284 double constant = theTF1->GetParameter(4);
286 if (amp > 0)
return constant / amp;
290 virtual double operator()(
const double *
x,
const double *p)
override{
311 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
323 float fitT0 = theTF1->GetParameter(1);
325 float tau1 = theTF1->GetParameter(2);
326 float tau2 = theTF1->GetParameter(3);
330 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
339 else throw std::runtime_error(
"Fit parameter does not exist.");
345 double amp = theTF1->GetParameter(0);
346 double constant = theTF1->GetParameter(4);
348 if (amp > 1e-6)
return constant / amp;
352 virtual double operator()(
const double *
x,
const double *p)
override{
383 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
405 else throw std::runtime_error(
"Fit parameter does not exist.");
411 double amp = theTF1->GetParameter(0);
412 if (amp <= 0)
return -1;
414 double C = theTF1->GetParameter(2);
418 virtual double operator() (
const double *
x,
const double *p)
override
424 double deltaT =
x[0] -
t0;
447 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
452 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
456 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
470 virtual float GetPreT0()
const override {
return 0;}
487 else throw std::runtime_error(
"Fit parameter does not exist.");
496 double amp = theTF1->GetParameter(0);
497 if (amp <= 0)
return -1;
499 double preAmp = theTF1->GetParameter(2);
500 double preT0 = theTF1->GetParameter(3);
502 double deltaTPre = maxTime - preT0;
505 return background / (amp + background);
508 virtual double operator() (
const double *
x,
const double *p)
override
514 double preAmp = p[2];
518 double deltaT = t -
t0;
519 double deltaTPre = t - preT0;
532 return C + pulse1 + pulse2;
552 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
558 double ampMin, ampMax;
561 double initialAmp = std::min<double>(std::max<double>(amp, ampMin), ampMax);
567 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
598 else throw std::runtime_error(
"Fit parameter does not exist.");
607 double amp = theTF1->GetParameter(0);
608 if (amp <= 0)
return -1;
610 double preAmp = theTF1->GetParameter(2);
611 double preT0 = theTF1->GetParameter(3);
613 double deltaTPre = maxTime - preT0;
616 return background / (amp + background);
619 virtual double operator() (
const double *
x,
const double *p)
override
627 double preAmp = p[4];
636 double deltaT = t -
t0;
637 double deltaTPre = t - preT0;
648 return C + pulse1 + pulse2;
665 float defExpTau,
float fixExpTau);
668 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
673 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 0.5));
697 else throw std::runtime_error(
"Fit parameter does not exist.");
705 double amp = theTF1->GetParameter(0);
706 if (amp <= 0)
return -1;
708 double preAmp = theTF1->GetParameter(2);
709 double preT0 = theTF1->GetParameter(3);
711 double deltaTPre = maxTime - preT0;
714 return background / (amp + background);
717 virtual double operator() (
const double *
x,
const double *p)
override
723 double expAmp = p[2];
724 double expTau = p[3];
725 double expSqrtTau = p[4];
728 double deltaT = t -
t0;
736 if (t > 0 && std::abs(expSqrtTau)>1e-6) expPre = expAmp * (std::exp(-t/expTau-expSqrtTau*std::sqrt(t)) - std::exp(-tRef/expTau));
737 else expPre = expAmp * (std::exp(-t/expTau) - std::exp(-tRef/expTau));
739 return C + pulse + expPre;
755 float defExpTau,
float fixExpTau);
758 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
763 GetWrapperTF1()->SetParameter(4, std::max(amp, (
float) 0.5));
778 float fitT0 = theTF1->GetParameter(1);
780 float tau1 = theTF1->GetParameter(2);
781 float tau2 = theTF1->GetParameter(3);
785 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
796 else throw std::runtime_error(
"Fit parameter does not exist.");
802 double amp = theTF1->GetParameter(0);
803 if (amp <= 0)
return -1;
807 double expAmp = theTF1->GetParameter(4);
808 double expTau = theTF1->GetParameter(5);
809 double bexpSqrt = theTF1->GetParameter(6);
812 double expPre = expAmp * (std::exp(-maxTime/expTau - bexpSqrt*maxTime*maxTime) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
814 return expPre / (amp + expPre);
817 virtual double operator() (
const double *
x,
const double *p)
override
827 double expAmp = p[4];
828 double expTau = p[5];
829 double bexpSqrt = p[6];
830 double reflFrac = p[7];
839 double deltaT = t -
t0;
848 expPre = expAmp * (std::exp(-t/expTau - bexpSqrt*t*t) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
850 return pulse + expPre;
866 float defExpTau,
float fixExpTau);
869 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
874 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 0.5));
902 throw std::runtime_error(
"Fit parameter does not exist.");
908 double amp = theTF1->GetParameter(0);
909 if (amp <= 0)
return -1;
913 double expAmp = theTF1->GetParameter(2);
914 double expTau = theTF1->GetParameter(3);
915 double bexpSqrt = theTF1->GetParameter(4);
918 double expPre = expAmp * (std::exp(-maxTime/expTau - bexpSqrt*maxTime*maxTime) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
920 return expPre / (amp + expPre);
923 virtual double operator() (
const double *
x,
const double *p)
override
930 double expAmp = p[2];
931 double expTau = p[3];
932 double bexpSqrt = p[4];
934 double inductA = p[6];
935 double inductB = p[7];
941 double deltaT = t -
t0;
950 expPre = expAmp * (std::exp(-t/expTau - bexpSqrt*t*t) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
952 return pulse +
C + expPre;
975 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
995 else throw std::runtime_error(
"Fit parameter does not exist.");
1001 double amp = theTF1->GetParameter(0);
1002 if (amp <= 0)
return -1;
1004 double slope = theTF1->GetParameter(2);
1006 double background = slope *
GetTime();
1007 return background / amp;
1014 double deltaT =
x[0] -
t0;
1016 double bckgd = p[2] *
x[0] + p[3];
1020 return expFermi + bckgd;
1038 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1045 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1049 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1085 else throw std::runtime_error(
"Fit parameter does not exist.");
1094 double amp = theTF1->GetParameter(0);
1095 if (amp <= 0)
return -1;
1097 double preAmp = theTF1->GetParameter(2);
1098 double preT0 = theTF1->GetParameter(3);
1099 double slope = theTF1->GetParameter(4);
1101 double deltaTPre = maxTime - preT0;
1103 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1106 return background / amp;
1115 double preAmp = p[2];
1116 double preT0 = p[3];
1117 double linSlope = p[4];
1119 double deltaT = t -
t0;
1120 double deltaTPre = t - preT0;
1131 double bckgd = linSlope * (t - deltaPresamp) + p[5];
1133 return pulse1 + pulse2 + bckgd;
1153 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1157 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1159 GetWrapperTF1()->SetParameter(6, std::max(std::abs(expamp), (
float) 1.5));
1165 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1201 else throw std::runtime_error(
"Fit parameter does not exist.");
1210 double amp = theTF1->GetParameter(0);
1211 if (amp <= 0)
return -1;
1213 double preAmp = theTF1->GetParameter(2);
1214 double preT0 = theTF1->GetParameter(3);
1215 double slope = theTF1->GetParameter(4);
1217 double deltaTPre = maxTime - preT0;
1219 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1222 return background / amp;
1231 double preAmp = p[2];
1232 double preT0 = p[3];
1233 double linSlope = p[4];
1234 double linConst = p[5];
1235 double expamp = p[6];
1237 double deltaT = t -
t0;
1238 double deltaTPre = t - preT0;
1248 double linBG = linSlope * (t - deltaPresamp) + linConst;
1249 double expBG = expamp * std::exp(-(t) /
m_tau2) - expamp;
1251 return pulse1 + pulse2 + linBG + expBG;
1267 ZDCFitGeneralPulse(
const std::string& tag,
float tmin,
float tmax,
float tau1,
float tau2);
1270 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1276 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1278 GetWrapperTF1()->SetParameter(6, std::max(std::abs(expamp), (
float) 1.5));
1280 if (fixPrePulseToZero) {
1289 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1290 virtual void SetPostPulseT0Range(
float tmin,
float tmax,
float initialPostT0)
override;
1333 else throw std::runtime_error(
"Fit parameter does not exist.");
1342 double amp = theTF1->GetParameter(0);
1343 if (amp <= 0)
return -1;
1344 double preAmp = theTF1->GetParameter(2);
1345 double preT0 = theTF1->GetParameter(3);
1346 double slope = theTF1->GetParameter(4);
1348 double deltaTPre = maxTime - preT0;
1350 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1353 return background / amp;
1362 double preAmp = p[2];
1363 double preT0 = p[3];
1364 double linSlope = p[4];
1365 double linConst = p[5];
1366 double expamp = p[6];
1367 double postAmp = p[7];
1368 double postT0 = p[8];
1370 double deltaT = t -
t0;
1371 double deltaTPre = t - preT0;
1372 double deltaTPost = t - postT0;
1383 double linBG = linSlope * t + linConst;
1386 return pulse1 + pulse2 + pulse3 + linBG + expBG;
1394 double amp =
pvec[0];
1396 double tau1 =
pvec[2];
1397 double tau2 =
pvec[3];
1400 double tauRatio = tau2 / tau1;
1401 double tauRatioMinunsOne = tauRatio - 1;
1403 double norm = (std::pow(1. / tauRatioMinunsOne, 1. / (1 + tauRatio)) /
1404 ( 1 + std::pow(1. / tauRatioMinunsOne, 1. / (1 + 1 / tauRatio))));
1406 double deltaT = t -
t0;
1407 if (deltaT < 0) deltaT = 0;
1409 double expTerm = std::exp(-deltaT / tau2);
1410 double fermiTerm = 1. / (1. + std::exp(-(t -
t0) / tau1));
1412 return amp * expTerm * fermiTerm / norm +
C;
1419 double amp =
pvec[0];
1421 double tau1 =
pvec[2];
1422 double tau2 =
pvec[3];
1425 double refldelay =
pvec[5];
1426 double reflFrac =
pvec[6];
1427 double reflwidth =
pvec[7];
1428 double delta =
pvec[8];
1430 double tauRatio = tau2 / tau1;
1431 double tauRatioMinunsOne = tauRatio - 1;
1433 double norm = std::pow(1. / tauRatioMinunsOne, 1. / (1 + tauRatio)) /
1434 ( 1 + std::pow(1. / tauRatioMinunsOne, 1. / (1 + 1 / tauRatio))) ;
1436 double deltaT = t -
t0;
1437 if (deltaT < 0) deltaT = 0;
1442 double expTerm = delta + std::exp(-deltaT / tau2);
1443 double fermiTerm = 1. / (1. + std::exp(-(t -
t0) / tau1));
1445 double deltaTRefl = deltaT - refldelay;
1446 double reflTerm = -reflFrac*amp*std::exp(-0.5*deltaTRefl*deltaTRefl/reflwidth/reflwidth);
1448 return amp * expTerm * fermiTerm / norm +
C + reflTerm;
1455 double amp =
pvec[0];
1457 double tau1 =
pvec[2];
1458 double tau2 =
pvec[3];
1461 double period =
pvec[5];
1462 double Acos =
pvec[6];
1463 double Bsin =
pvec[7];
1464 double delta =
pvec[8];
1466 double tauRatio = tau2 / tau1;
1467 double tauRatioMinunsOne = tauRatio - 1;
1469 double norm = std::pow(1. / tauRatioMinunsOne, 1. / (1.0 + tauRatio)) /
1470 ( 1.0 + std::pow(1. / tauRatioMinunsOne, 1. / (1.0 + 1.0 / tauRatio))) ;
1472 double deltaT = t -
t0;
1473 double deltaTInduct = deltaT - tau1 * std::log(tauRatioMinunsOne);
1475 if (deltaT < 0) deltaT = 0;
1476 if (deltaTInduct < 0) deltaTInduct = 0;
1481 double twoPiOverPeriod = 2.0*
M_PI/period;
1482 double inductTerm = (1.0 + Acos*std::cos(deltaTInduct*twoPiOverPeriod) +
1483 Bsin*std::sin(deltaTInduct*twoPiOverPeriod))/(1+Acos);
1484 double expTerm = delta + std::exp(-deltaT / tau2)*inductTerm;
1485 double fermiTerm = 1. / (1. + std::exp(-(t -
t0) / tau1));
1487 return amp * expTerm * fermiTerm / norm +
C;
double ZDCFermiExpFit(const double *xvec, const double *pvec)
double ZDCFermiExpFitRefl(const double *xvec, const double *pvec)
double ZDCFermiExpFitInduct(const double *xvec, const double *pvec)
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
virtual float GetPreAmp() const override
virtual float GetTau1() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetBkgdMaxFraction() const override
virtual float GetPostAmp() const override
virtual float GetExpAmp() const override
virtual float GetTime() const override
virtual void SetPostPulseT0Range(float, float, float) override
virtual float GetAmpError() const override
virtual float GetPreT0() const override
virtual float GetTau2() const override
virtual float GetPostT0() const override
ZDCFitComplexPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual void SetInitialPrePulse(float amp, float t0, float expamp, bool) override
unsigned int GetPreT0ParIndex() const override
std::shared_ptr< TF1 > m_expFermiFunc
virtual float GetAmplitude() const override
virtual unsigned int GetNumShapeParameters() const override
ZDCFitExpFermiFixedTaus(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual float GetAmplitude() const override
virtual float GetBkgdMaxFraction() const override
~ZDCFitExpFermiFixedTaus()
virtual float GetTau1() const override
virtual float GetTime() const override
virtual float GetAmpError() const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetShapeParameter(size_t index) const override
std::shared_ptr< TF1 > m_expFermiFunc
virtual float GetTau2() const override
virtual float GetExpTau() const override
virtual unsigned int GetNumShapeParameters() const override
std::shared_ptr< TF1 > m_expFermiInductFunc
virtual float GetTime() const override
virtual float GetTau1() const override
virtual float GetTau2() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetExpAmp() const override
virtual void SetInitialExpPulse(float amp) override
virtual float GetAmpError() const override
std::shared_ptr< TF1 > m_expFermiPreFunc
ZDCFitExpFermiInductPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual float GetAmplitude() const override
virtual float GetBkgdMaxFraction() const override
~ZDCFitExpFermiInductPreExp()
virtual float GetTau1() const override
~ZDCFitExpFermiLHCfPreExp()
virtual float GetExpTau() const override
virtual float GetTau2() const override
virtual unsigned int GetNumShapeParameters() const override
std::shared_ptr< TF1 > m_expFermiLHCfFunc
std::shared_ptr< TF1 > m_expFermiLHCfPreFunc
virtual float GetShapeParameter(size_t index) const override
virtual float GetTime() const override
virtual float GetBkgdMaxFraction() const override
virtual float GetExpAmp() const override
ZDCFitExpFermiLHCfPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual float GetAmplitude() const override
virtual float GetAmpError() const override
virtual void SetInitialExpPulse(float amp) override
virtual unsigned int GetPreT0ParIndex() const override
std::shared_ptr< TF1 > m_expFermiPreFunc
virtual float GetBkgdMaxFraction() const override
virtual float GetAmpError() const override
virtual unsigned int GetNumShapeParameters() const override
~ZDCFitExpFermiLHCfPrePulse()
virtual float GetExpAmp() const override
virtual float GetTau2() const override
std::shared_ptr< TF1 > m_expFermiLHCfFunc
virtual float GetPreT0() const override
virtual void SetPostPulseT0Range(float, float, float) override
virtual float GetPostT0() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetTime() const override
virtual float GetPreAmp() const override
ZDCFitExpFermiLHCfPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual float GetTau1() const override
virtual float GetPostAmp() const override
virtual float GetAmplitude() const override
virtual void SetInitialPrePulse(float amp, float t0, float, bool) override
std::shared_ptr< TF1 > m_expFermiFunc
virtual float GetBkgdMaxFraction() const override
~ZDCFitExpFermiLinearFixedTaus()
virtual float GetAmpError() const override
virtual float GetTime() const override
virtual unsigned int GetNumShapeParameters() const override
ZDCFitExpFermiLinearFixedTaus(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual float GetTau1() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetTau2() const override
virtual float GetAmplitude() const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetPreT0() const override
virtual float GetPostAmp() const override
virtual float GetBkgdMaxFraction() const override
virtual float GetAmplitude() const override
virtual void SetInitialPrePulse(float amp, float t0, float, bool) override
virtual float GetPostT0() const override
virtual float GetPreAmp() const override
virtual float GetTau1() const override
unsigned int GetPreT0ParIndex() const override
virtual float GetExpAmp() const override
virtual float GetTime() const override
virtual void SetPostPulseT0Range(float, float, float) override
virtual float GetAmpError() const override
virtual float GetTau2() const override
ZDCFitExpFermiLinearPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
std::shared_ptr< TF1 > m_expFermiFunc
~ZDCFitExpFermiLinearPrePulse()
virtual float GetExpAmp() const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetTau1() const override
virtual float GetAmpError() const override
std::shared_ptr< TF1 > m_expFermiFunc
virtual float GetShapeParameter(size_t index) const override
std::shared_ptr< TF1 > m_expFermiPreFunc
virtual float GetBkgdMaxFraction() const override
virtual float GetAmplitude() const override
virtual void SetInitialExpPulse(float amp) override
virtual float GetExpTau() const override
ZDCFitExpFermiPreExp(const std::string &tag, float tmin, float tmax, float tau1, float tau2, float defExpTau, float fixExpTau)
virtual float GetTime() const override
virtual float GetTau2() const override
~ZDCFitExpFermiPrePulse()
std::shared_ptr< TF1 > m_expFermiPreFunc
virtual float GetPostT0() const override
virtual float GetExpAmp() const override
virtual float GetTau1() const override
virtual float GetAmplitude() const override
virtual float GetAmpError() const override
virtual float GetBkgdMaxFraction() const override
virtual unsigned int GetNumShapeParameters() const override
std::shared_ptr< TF1 > m_expFermiFunc
virtual void SetInitialPrePulse(float amp, float t0, float, bool) override
virtual void SetPostPulseT0Range(float, float, float) override
virtual float GetPreT0() const override
virtual float GetPostAmp() const override
virtual unsigned int GetPreT0ParIndex() const override
ZDCFitExpFermiPrePulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual float GetTime() const override
virtual float GetPreAmp() const override
virtual float GetTau2() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetTime() const override
virtual float GetTau1() const override
ZDCFitExpFermiVariableTausInduct(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual double operator()(const double *x, const double *p) override
virtual float GetTau2() const override
virtual float GetShapeParameter(size_t index) const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetAmplitude() const override
virtual float GetAmpError() const override
virtual float GetBkgdMaxFraction() const override
virtual float GetTime() const override
virtual double operator()(const double *x, const double *p) override
virtual float GetAmplitude() const override
ZDCFitExpFermiVariableTausLHCf(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual float GetShapeParameter(size_t index) const override
virtual float GetBkgdMaxFraction() const override
virtual float GetTau1() const override
virtual float GetAmpError() const override
virtual float GetTau2() const override
virtual unsigned int GetNumShapeParameters() const override
ZDCFitExpFermiVariableTausRun3(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual float GetTime() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetTau2() const override
virtual float GetAmplitude() const override
virtual double operator()(const double *x, const double *p) override
virtual float GetTau1() const override
ZDCFitExpFermiVariableTaus(const std::string &tag, float tmin, float tmax, bool fixTau1, bool fixTau2, float tau1, float tau2)
virtual float GetBkgdMaxFraction() const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetAmpError() const override
virtual float GetPreAmp() const override
virtual float GetAmpError() const override
virtual float GetPostT0() const override
virtual float GetPreT0() const override
virtual float GetAmplitude() const override
virtual float GetTau2() const override
unsigned int GetPreT0ParIndex() const override
virtual float GetPostAmp() const override
std::shared_ptr< TF1 > m_expFermiFunc
virtual unsigned int GetNumShapeParameters() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetExpAmp() const override
virtual float GetTime() const override
virtual void SetInitialPrePulse(float amp, float t0, float expamp, bool fixPrePulseToZero) override
virtual float GetBkgdMaxFraction() const override
virtual float GetTau1() const override
ZDCFitGeneralPulse(const std::string &tag, float tmin, float tmax, float tau1, float tau2)
virtual float GetTau1() const =0
void Initialize(float initialAmp, float initialT0, float ampMin, float ampMax)
virtual float GetBkgdMaxFraction() const =0
virtual void ConstrainFit()=0
virtual TF1 * GetWrapperTF1RawPtr() const
virtual std::shared_ptr< TF1 > GetWrapperTF1()
virtual float GetAmpError() const =0
virtual void UnconstrainFit()=0
virtual float GetTime() const =0
virtual float GetShapeParameter(size_t index) const =0
virtual float GetTau2() const =0
virtual const TF1 * GetWrapperTF1() const
virtual void SetT0FitLimits(float tMin, float tMax)=0
ZDCFitWrapper(const std::shared_ptr< TF1 > &wrapperTF1)
virtual float GetAmplitude() const =0
void SetAmpMinMax(float minAmp, float maxAmp)
virtual unsigned int GetNumShapeParameters() const =0
virtual void DoInitialize(float initialAmp, float initialT0, float ampMin, float ampMax)=0
virtual double operator()(const double *x, const double *p)=0
float GetTMinAdjust() const
void SetT0Range(float t0Min, float t0Max)
std::shared_ptr< TF1 > m_wrapperTF1
virtual float GetExpAmp() const =0
virtual float GetExpTau() const =0
virtual void SetInitialExpPulse(float expamp)=0
float getDefaultExpTau() const
ZDCPreExpFitWrapper(std::shared_ptr< TF1 > wrapperTF1, float defaultExpTau, bool fixTau)
virtual float GetPreAmp() const =0
virtual void SetPostPulseT0Range(float tmin, float tmax, float initialPostT0)=0
virtual unsigned int GetPreT0ParIndex() const =0
virtual float GetPreT0() const =0
virtual float GetPostT0() const =0
virtual float GetExpAmp() const =0
virtual void SetPrePulseT0Range(float tmin, float tmax)=0
virtual void SetInitialPrePulse(float amp, float t0, float expamp, bool fixPrePulseToZero)=0
ZDCPrePulseFitWrapper(std::shared_ptr< TF1 > wrapperTF1)
virtual float GetPostAmp() const =0