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));
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 &, const ArgVector &={})=0
auto & at(RooAbsArg const *arg, RooAbsArg const *=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.
RVec< PromoteType< T > > exp(const RVec< T > &v)
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
R__EXTERN RooBatchComputeInterface * dispatchCUDA
R__EXTERN RooBatchComputeInterface * dispatchCPU
This dispatch pointer points to an implementation of the compute library, provided one has been loade...
static constexpr double s