21 _x(
"x",
"x",
this,
x),
22 _x0(
"x0",
"x0",
this, x0),
24 _kL(
"kL",
"kL",
this, kL),
25 _kH(
"kH",
"kH",
this, kH)
44inline double gaussianIntegral(
double tmin,
double tmax)
50inline double tailIntegral(
double tmin,
double tmax,
double k)
52 double a = std::exp(0.5 * k * k) / k;
53 return a * (std::exp(k * tmax) - std::exp(k * tmin));
64 return std::exp(0.5 *
_kL *
_kL +
_kL * t);
66 return std::exp(0.5 *
_kH *
_kH -
_kH * t);
68 return std::exp(-0.5 * t * t);
93 result += gaussianIntegral(std::max(tmin, -
_kL), std::min(tmax, +
_kH));
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Abstract interface for all probability density functions.
A RooAbsReal::Ref can be constructed from a RooAbsReal& or a double that will be implicitly converted...
bool matchArgs(const RooArgSet &allDeps, RooArgSet &analDeps, const RooArgProxy &a, const Proxies &... proxies) const
RooArgSet is a container object that can hold multiple RooAbsArg objects.
PDF implementing a Gaussian core + double-sided exponential tail distribution.
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
double max(const char *rname=nullptr) const
Query upper limit of range. This requires the payload to be RooAbsRealLValue or derived.
double min(const char *rname=nullptr) const
Query lower limit of range. This requires the payload to be RooAbsRealLValue or derived.
double gaussian_cdf(double x, double sigma=1, double x0=0)
Alternative name for same function.