59 x(
"x",
"Dependent",
this,_x),
60 mean(
"mean",
"Mean",
this,_mean),
73 _doFast(
other._doFast)
85 double coef= -0.5/(s*s);
86 double arg =
x -
mean;
89 if (s==0. &&
w==0.)
return 1.;
92 if (s==0.)
return (1./(arg*arg+0.25*
w*
w));
95 if (
w==0.)
return std::exp(coef*arg*arg);
98 double c = 1./(sqrt(2.)*s);
101 std::complex<double> z(
u,
a) ;
102 std::complex<double>
v(0.) ;
117 {ctx.at(x), ctx.at(mean), ctx.at(width), ctx.at(sigma)});
Abstract interface for all probability density functions.
Abstract base class for objects that represent a real value and implements functionality common to al...
static std::complex< double > faddeeva(std::complex< double > z)
evaluate Faddeeva function for complex argument
static std::complex< double > faddeeva_fast(std::complex< double > z)
evaluate Faddeeva function for complex argument (fast version)
RooVoigtian is an efficient implementation of the convolution of a Breit-Wigner with a Gaussian,...
void doEval(RooFit::EvalContext &) const override
Compute multiple values of Voigtian distribution.
double evaluate() const override
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
void compute(Config cfg, Computer comp, std::span< double > output, VarSpan vars, ArgSpan extraArgs={})