60 x(
"x",
"Dependent",this,_x),
61 mean(
"mean",
"Mean",this,_mean),
62 width(
"width",
"Breit-Wigner Width",this,_width),
63 sigma(
"sigma",
"Gauss Width",this,_sigma),
72 RooAbsPdf(other,
name),
x(
"x",this,other.
x), mean(
"mean",this,other.mean),
74 _doFast(other._doFast)
86 double coef= -0.5/(s*s);
87 double arg =
x -
mean;
90 if (s==0. &&
w==0.)
return 1.;
93 if (s==0.)
return (1./(arg*arg+0.25*
w*
w));
96 if (
w==0.)
return std::exp(coef*arg*arg);
99 double c = 1./(sqrt(2.)*s);
102 std::complex<double> z(u,
a) ;
103 std::complex<double>
v(0.) ;
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
virtual void compute(cudaStream_t *, Computer, RestrictArr, size_t, const VarVector &, ArgVector &)=0
RooSpan< const double > at(RooAbsArg const *arg, RooAbsArg const *caller=nullptr)
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 computeBatch(cudaStream_t *, double *output, size_t nEvents, RooFit::Detail::DataMap const &) 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.
R__EXTERN RooBatchComputeInterface * dispatchCUDA
R__EXTERN RooBatchComputeInterface * dispatchCPU
This dispatch pointer points to an implementation of the compute library, provided one has been loade...