5#ifndef ZDCANALYSIS_ZDCFITWRAPPER_H
6#define ZDCANALYSIS_ZDCFITWRAPPER_H
63 void Initialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax);
64 void Initialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax,
float fitTmin,
float fitTmax,
float fitTRef);
76 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax) = 0;
192 ZDCFitExpFermiVariableTaus(
const std::string& tag,
float tmin,
float tmax,
bool fixTau1,
bool fixTau2,
float tau1,
float tau2);
194 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
206 float fitT0 = theTF1->GetParameter(1);
208 float tau1 = theTF1->GetParameter(2);
209 float tau2 = theTF1->GetParameter(3);
213 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
222 else throw std::runtime_error(
"Fit parameter does not exist.");
228 double amp = theTF1->GetParameter(0);
229 double constant = theTF1->GetParameter(4);
231 if (amp > 0)
return constant / amp;
235 virtual double operator()(
const double *
x,
const double *p)
override{
262 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
274 float fitT0 = theTF1->GetParameter(1);
276 float tau1 = theTF1->GetParameter(2);
277 float tau2 = theTF1->GetParameter(3);
281 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
290 else throw std::runtime_error(
"Fit parameter does not exist.");
296 double amp = theTF1->GetParameter(0);
297 double constant = theTF1->GetParameter(4);
299 if (amp > 0)
return constant / amp;
303 virtual double operator()(
const double *
x,
const double *p)
override{
330 theTF1->SetNpx(1000);
337 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
368 else throw std::runtime_error(
"Fit parameter does not exist.");
376 double constant = theTF1->GetParameter(4);
378 if (amp > 1e-6)
return constant / amp;
382 virtual double operator()(
const double *
x,
const double *p)
override{
413 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
435 else throw std::runtime_error(
"Fit parameter does not exist.");
441 double amp = theTF1->GetParameter(0);
442 if (amp <= 0)
return -1;
444 double C = theTF1->GetParameter(2);
448 virtual double operator() (
const double *
x,
const double *p)
override
454 double deltaT =
x[0] -
t0;
477 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
482 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
486 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
500 virtual float GetPreT0()
const override {
return 0;}
517 else throw std::runtime_error(
"Fit parameter does not exist.");
526 double amp = theTF1->GetParameter(0);
527 if (amp <= 0)
return -1;
529 double preAmp = theTF1->GetParameter(2);
530 double preT0 = theTF1->GetParameter(3);
532 double deltaTPre = maxTime - preT0;
535 return background / (amp + background);
538 virtual double operator() (
const double *
x,
const double *p)
override
544 double preAmp = p[2];
548 double deltaT = t -
t0;
549 double deltaTPre = t - preT0;
562 return C + pulse1 + pulse2;
582 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
588 double ampMin, ampMax;
591 double initialAmp = std::min<double>(std::max<double>(amp, ampMin), ampMax);
597 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
628 else throw std::runtime_error(
"Fit parameter does not exist.");
637 double amp = theTF1->GetParameter(0);
638 if (amp <= 0)
return -1;
640 double preAmp = theTF1->GetParameter(2);
641 double preT0 = theTF1->GetParameter(3);
643 double deltaTPre = maxTime - preT0;
646 return background / (amp + background);
649 virtual double operator() (
const double *
x,
const double *p)
override
657 double preAmp = p[4];
666 double deltaT = t -
t0;
667 double deltaTPre = t - preT0;
678 return C + pulse1 + pulse2;
695 float defExpTau,
float fixExpTau);
698 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
703 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 0.5));
727 else throw std::runtime_error(
"Fit parameter does not exist.");
735 double amp = theTF1->GetParameter(0);
736 if (amp <= 0)
return -1;
738 double preAmp = theTF1->GetParameter(2);
739 double preT0 = theTF1->GetParameter(3);
741 double deltaTPre = maxTime - preT0;
744 return background / (amp + background);
747 virtual double operator() (
const double *
x,
const double *p)
override
753 double expAmp = p[2];
754 double expTau = p[3];
755 double expSqrtTau = p[4];
758 double deltaT = t -
t0;
766 if (t > 0 && std::abs(expSqrtTau)>1e-6) expPre = expAmp * (std::exp(-t/expTau-expSqrtTau*std::sqrt(t)) - std::exp(-tRef/expTau));
767 else expPre = expAmp * (std::exp(-t/expTau) - std::exp(-tRef/expTau));
769 return C + pulse + expPre;
785 float defExpTau,
float fixExpTau);
788 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
793 GetWrapperTF1()->SetParameter(4, std::max(amp, (
float) 0.5));
808 float fitT0 = theTF1->GetParameter(1);
810 float tau1 = theTF1->GetParameter(2);
811 float tau2 = theTF1->GetParameter(3);
815 if (tau2 > tau1) fitT0 += tau1 * std::log(tau2 / tau1 - 1.0);
826 else throw std::runtime_error(
"Fit parameter does not exist.");
832 double amp = theTF1->GetParameter(0);
833 if (amp <= 0)
return -1;
837 double expAmp = theTF1->GetParameter(4);
838 double expTau = theTF1->GetParameter(5);
839 double bexpSqrt = theTF1->GetParameter(6);
842 double expPre = expAmp * (std::exp(-maxTime/expTau - bexpSqrt*maxTime*maxTime) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
844 return expPre / (amp + expPre);
847 virtual double operator() (
const double *
x,
const double *p)
override
857 double expAmp = p[4];
858 double expTau = p[5];
859 double bexpSqrt = p[6];
860 double reflFrac = p[7];
869 double deltaT = t -
t0;
878 expPre = expAmp * (std::exp(-t/expTau - bexpSqrt*t*t) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
880 return pulse + expPre;
909 float defExpTau,
float fixExpTau);
912 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
917 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 0.5));
950 throw std::runtime_error(
"Fit parameter does not exist.");
956 double amp = theTF1->GetParameter(0);
957 if (amp < 1e-6)
return -1;
961 double expAmp = theTF1->GetParameter(2);
962 double expTau = theTF1->GetParameter(3);
963 double bexpSqrt = theTF1->GetParameter(4);
966 double expPre = expAmp * (std::exp(-maxTime/expTau - bexpSqrt*maxTime*maxTime) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
968 return expPre / (amp + expPre);
971 virtual double operator() (
const double *
x,
const double *p)
override
978 double expAmp = p[2];
979 double expTau = p[3];
980 double bexpSqrt = p[4];
982 double inductA = p[6];
983 double inductB = p[7];
989 double deltaT = t -
t0;
998 expPre = expAmp * (std::exp(-t/expTau - bexpSqrt*t*t) - std::exp(-tRef/expTau - bexpSqrt*tRef*tRef));
1000 return pulse +
C + expPre;
1032 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1038 double ampMin, ampMax;
1041 double initialAmp = std::min<double>(std::max<double>(amp, ampMin), ampMax);
1047 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1087 throw std::runtime_error(
"Fit parameter does not exist.");
1096 double amp = theTF1->GetParameter(0);
1097 if (amp < 1e-6)
return -1;
1099 double preAmp = theTF1->GetParameter(2);
1100 double preT0 = theTF1->GetParameter(3);
1102 double deltaTPre = maxTime - preT0;
1105 return background / (amp + background);
1114 double preAmp = p[2];
1115 double preT0 = p[3];
1118 double indBFact = p[6];
1124 double deltaT = t -
t0;
1125 double deltaTPre = t - preT0;
1136 return C + pulse1 + pulse2;
1159 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1179 else throw std::runtime_error(
"Fit parameter does not exist.");
1185 double amp = theTF1->GetParameter(0);
1186 if (amp <= 0)
return -1;
1188 double slope = theTF1->GetParameter(2);
1190 double background = slope *
GetTime();
1191 return background / amp;
1198 double deltaT =
x[0] -
t0;
1200 double bckgd = p[2] *
x[0] + p[3];
1204 return expFermi + bckgd;
1222 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1229 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1233 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1269 else throw std::runtime_error(
"Fit parameter does not exist.");
1278 double amp = theTF1->GetParameter(0);
1279 if (amp <= 0)
return -1;
1281 double preAmp = theTF1->GetParameter(2);
1282 double preT0 = theTF1->GetParameter(3);
1283 double slope = theTF1->GetParameter(4);
1285 double deltaTPre = maxTime - preT0;
1287 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1290 return background / amp;
1299 double preAmp = p[2];
1300 double preT0 = p[3];
1301 double linSlope = p[4];
1303 double deltaT = t -
t0;
1304 double deltaTPre = t - preT0;
1315 double bckgd = linSlope * (t - deltaPresamp) + p[5];
1317 return pulse1 + pulse2 + bckgd;
1337 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1341 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1343 GetWrapperTF1()->SetParameter(6, std::max(std::abs(expamp), (
float) 1.5));
1349 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1385 else throw std::runtime_error(
"Fit parameter does not exist.");
1394 double amp = theTF1->GetParameter(0);
1395 if (amp <= 0)
return -1;
1397 double preAmp = theTF1->GetParameter(2);
1398 double preT0 = theTF1->GetParameter(3);
1399 double slope = theTF1->GetParameter(4);
1401 double deltaTPre = maxTime - preT0;
1403 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1406 return background / amp;
1415 double preAmp = p[2];
1416 double preT0 = p[3];
1417 double linSlope = p[4];
1418 double linConst = p[5];
1419 double expamp = p[6];
1421 double deltaT = t -
t0;
1422 double deltaTPre = t - preT0;
1432 double linBG = linSlope * (t - deltaPresamp) + linConst;
1433 double expBG = expamp * std::exp(-(t) /
m_tau2) - expamp;
1435 return pulse1 + pulse2 + linBG + expBG;
1451 ZDCFitGeneralPulse(
const std::string& tag,
float tmin,
float tmax,
float tau1,
float tau2);
1454 virtual void DoInitialize(
float initialAmp,
float initialT0,
float ampMin,
float ampMax)
override;
1460 GetWrapperTF1()->SetParameter(2, std::max(amp, (
float) 1.5));
1462 GetWrapperTF1()->SetParameter(6, std::max(std::abs(expamp), (
float) 1.5));
1464 if (fixPrePulseToZero) {
1473 virtual void SetPrePulseT0Range(
float tmin,
float tmax)
override;
1474 virtual void SetPostPulseT0Range(
float tmin,
float tmax,
float initialPostT0)
override;
1517 else throw std::runtime_error(
"Fit parameter does not exist.");
1526 double amp = theTF1->GetParameter(0);
1527 if (amp <= 0)
return -1;
1528 double preAmp = theTF1->GetParameter(2);
1529 double preT0 = theTF1->GetParameter(3);
1530 double slope = theTF1->GetParameter(4);
1532 double deltaTPre = maxTime - preT0;
1534 double background = slope * maxTime + preAmp *
m_norm * (
m_expFermiFunc->operator()(deltaTPre) -
1537 return background / amp;
1546 double preAmp = p[2];
1547 double preT0 = p[3];
1548 double linSlope = p[4];
1549 double linConst = p[5];
1550 double expamp = p[6];
1551 double postAmp = p[7];
1552 double postT0 = p[8];
1554 double deltaT = t -
t0;
1555 double deltaTPre = t - preT0;
1556 double deltaTPost = t - postT0;
1567 double linBG = linSlope * t + linConst;
1570 return pulse1 + pulse2 + pulse3 + linBG + expBG;
1576 float fitT0 = theTF1->GetParameter(1);
1578 float tau1 = theTF1->GetParameter(2);
1579 float tau2 = theTF1->GetParameter(3);
1583 double corrT0 = fitT0;
1584 if (tau2 > tau1) corrT0 += tau1 * std::log(tau2 / tau1 - 1.0);
1586 double deltaT = theTF1->GetParameter(5)/8;
1587 double tmin = corrT0 - deltaT;
1588 double tmax = corrT0 + deltaT;
1590 return theTF1->GetMaximumX(tmin, tmax, 1e-4, 20,
false);
1598 double amp =
pvec[0];
1600 double tau1 =
pvec[2];
1601 double tau2 =
pvec[3];
1604 double tauRatio = tau2 / tau1;
1605 double tauRatioMinunsOne = tauRatio - 1;
1607 double norm = (std::pow(1. / tauRatioMinunsOne, 1. / (1 + tauRatio)) /
1608 ( 1 + std::pow(1. / tauRatioMinunsOne, 1. / (1 + 1 / tauRatio))));
1610 double deltaT = t -
t0;
1611 if (deltaT < 0) deltaT = 0;
1613 double expTerm = std::exp(-deltaT / tau2);
1614 double fermiTerm = 1. / (1. + std::exp(-(t -
t0) / tau1));
1616 return amp * expTerm * fermiTerm / norm +
C;
1623 double amp =
pvec[0];
1625 double tau1 =
pvec[2];
1626 double tau2 =
pvec[3];
1629 double refldelay =
pvec[5];
1630 double reflFrac =
pvec[6];
1631 double reflwidth =
pvec[7];
1632 double delta =
pvec[8];
1634 double tauRatio = tau2 / tau1;
1635 double tauRatioMinunsOne = tauRatio - 1;
1637 double norm = std::pow(1. / tauRatioMinunsOne, 1. / (1 + tauRatio)) /
1638 ( 1 + std::pow(1. / tauRatioMinunsOne, 1. / (1 + 1 / tauRatio))) ;
1640 double deltaT = t -
t0;
1641 if (deltaT < 0) deltaT = 0;
1646 double expTerm = delta + std::exp(-deltaT / tau2);
1647 double fermiTerm = 1. / (1. + std::exp(-(t -
t0) / tau1));
1649 double deltaTRefl = deltaT - refldelay;
1650 double reflTerm = -reflFrac*amp*std::exp(-0.5*deltaTRefl*deltaTRefl/reflwidth/reflwidth);
1652 return amp * expTerm * fermiTerm / norm +
C + reflTerm;
1659 double amp =
pvec[0];
1661 double tau1 =
pvec[2];
1662 double tau2 =
pvec[3];
1665 double period =
pvec[5];
1666 double Acos =
pvec[6];
1667 double Bsin =
pvec[7];
1668 double tauI =
pvec[8];
1669 double delta =
pvec[9];
1671 double twoPiOverPeriod = 2.0*
M_PI/period;
1673 double deltaT = t -
t0;
1674 double norm = 1, expTerm = 1, fermiTerm = 1, inductTerm = 1;
1677 expTerm = delta + std::exp(-deltaT / tau2);
1678 inductTerm = (1.0 + exp(-deltaT/tauI)*(Acos*std::cos(deltaT*twoPiOverPeriod) +
1679 Bsin*std::sin(deltaT*twoPiOverPeriod)))/(1+Acos);
1681 if (deltaT/tau1 < 7) fermiTerm = 1. / (1. + std::exp(-deltaT / tau1));
1683 return amp * expTerm * fermiTerm * inductTerm/ norm +
C;
double ZDCFermiExpFit(const double *xvec, const double *pvec)
double getInductFuncTimeMax(const TF1 *theTF1)
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 void DoFinalize() override
virtual float GetPostT0() const override
virtual void SetPostPulseT0Range(float, float, float) override
virtual float GetExpAmp() const override
virtual float GetPreT0() const override
virtual float GetTime() const override
virtual float GetBkgdMaxFraction() const override
virtual float GetPostAmp() const 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 DoFinalize() override
virtual float GetPreAmp() const override
virtual unsigned int GetNumShapeParameters() const override
virtual float GetAmplitude() const override
~ZDCFitExpFermiInductPrePulse()
virtual float GetTau1() const override
virtual void SetInitialPrePulse(float amp, float t0, float, bool) override
virtual float GetAmpError() const override
virtual float GetShapeParameter(size_t index) const override
virtual float GetTau2() const override
virtual unsigned int GetPreT0ParIndex() const override
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 void DoFinalize() 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
void FixDelta(float value)
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 void DoFinalize()
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