80enum BasisSign { 
Both = 0, Plus = +1, Minus = -1 };
 
  101   std::string str = 
name;
 
  104   str.erase(remove(str.begin(),str.end(),
' '),str.end());
 
  109   if (str == 
"exp(-abs(@0)/@1)") 
return expBasisSum ;
 
  110   if (str == 
"exp(-@0/@1)*sin(@0*@2)") 
return sinBasisPlus ;
 
  112   if (str == 
"exp(-abs(@0)/@1)*sin(@0*@2)") 
return sinBasisSum ;
 
  113   if (str == 
"exp(-@0/@1)*cos(@0*@2)") 
return cosBasisPlus ;
 
  115   if (str == 
"exp(-abs(@0)/@1)*cos(@0*@2)") 
return cosBasisSum ;
 
  117   if (str == 
"(@0/@1)*(@0/@1)*exp(-@0/@1)") 
return quadBasisPlus ;
 
  118   if (str == 
"exp(-@0/@1)*cosh(@0*@2/2)") 
return coshBasisPlus;
 
  120   if (str == 
"exp(-abs(@0)/@1)*cosh(@0*@2/2)") 
return coshBasisSum;
 
  121   if (str == 
"exp(-@0/@1)*sinh(@0*@2/2)") 
return sinhBasisPlus;
 
  123   if (str == 
"exp(-abs(@0)/@1)*sinh(@0*@2/2)") 
return sinhBasisSum;
 
 
  188    return basis().getVal() ;
 
  200  double tau = (
static_cast<RooAbsReal*
>(
basis().getParameter(1)))->getVal() ;
 
  204    return std::exp(-std::abs((
double)
x)/tau) ;
 
  207    double dm = (
static_cast<RooAbsReal*
>(
basis().getParameter(2)))->getVal() ;
 
  208    return std::exp(-std::abs((
double)
x)/tau)*std::sin(
x*dm) ;
 
  211    double dm = (
static_cast<RooAbsReal*
>(
basis().getParameter(2)))->getVal() ;
 
  212    return std::exp(-std::abs((
double)
x)/tau)*std::cos(
x*dm) ;
 
  215    double tscaled = std::abs((
double)
x)/tau;
 
  219    double tscaled = std::abs((
double)
x)/tau;
 
  224    return std::exp(-std::abs((
double)
x)/tau)*std::sinh(
x*
dg/2) ;
 
  228    return std::exp(-std::abs((
double)
x)/tau)*std::cosh(
x*
dg/2) ;
 
 
  240   auto config = ctx.
config(
this);
 
  277                               {xVals, param1Vals, param2Vals}, 
extraArgs);
 
  282                               {xVals, param1Vals, param2Vals}, 
extraArgs);
 
  297                               {xVals, param1Vals, param2Vals}, 
extraArgs);
 
  302                               {xVals, param1Vals, param2Vals}, 
extraArgs);
 
 
  355   x = std::max(
x, 0.0);
 
  356   return -tau * std::exp(-
x / tau);
 
  363   x = std::max(
x, 0.0);
 
  364   return -(tau + 
x) * std::exp(-
x / tau);
 
  371   x = std::max(
x, 0.0);
 
  372   return -(std::exp(-
x / tau) * (2 * tau * tau + 
x * 
x + 2 * tau * 
x)) / tau;
 
  379   const double num = tau * std::exp(-
x / tau);
 
  380   const double den = dm * dm * tau * tau + 1.0;
 
  388   const double num = 2 * tau * std::exp(-
x / tau);
 
  389   const double den = dm * dm * tau * tau - 4.0;
 
  397   x = std::max(
x, 0.0);
 
  402   return fac != 0.0 ? 
fac * (-tau * dm * std::cos(dm * 
x) - std::sin(dm * 
x)) : 0.0;
 
  409   x = std::max(
x, 0.0);
 
  411   return fac != 0.0 ? 
fac * (tau * dm * std::sin(dm * 
x) - std::cos(dm * 
x)) : 0.0;
 
  418   x = std::max(
x, 0.0);
 
  420   const double arg = 0.5 * dm * 
x;
 
  421   return fac != 0.0 ? 
fac * (tau * dm * std::cosh(arg) - 2. * std::sinh(arg)) : 0.0;
 
  428   x = std::max(
x, 0.0);
 
  430   const double arg = 0.5 * dm * 
x;
 
  431   return fac != 0.0 ? 
fac * (tau * dm * std::sinh(arg) + 2. * std::cosh(arg)) : 0.0;
 
  438template <
class Function>
 
  478   const double tau = (
static_cast<RooAbsReal *
>(
basis().getParameter(1)))->getVal();
 
  480      needsDm ? (
static_cast<RooAbsReal *
>(
basis().getParameter(2)))->getVal() : std::numeric_limits<Double_t>::quiet_NaN();
 
 
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
 
Double_t(* Function)(Double_t)
 
Base class for PDFs that represent a physics model that can be analytically convolved with a resoluti...
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
void removeServer(RooAbsArg &server, bool force=false)
Unregister another RooAbsArg as a server to us, ie, declare that we no longer depend on its value and...
 
const RefCountList_t & servers() const
List of all servers of this object.
 
void addServer(RooAbsArg &server, bool valueProp=true, bool shapeProp=false, std::size_t refCount=1)
Register another RooAbsArg as a server to us, ie, declare that we depend on it.
 
Abstract base class for generator contexts of RooAbsPdf objects.
 
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
 
Abstract base class for objects that represent a real value and implements functionality common to al...
 
bool matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Container class to hold unbinned data.
 
std::span< const double > at(RooAbsArg const *arg, RooAbsArg const *caller=nullptr)
 
std::span< double > output()
 
RooBatchCompute::Config config(RooAbsArg const *arg) const
 
Implements a universal generator context for all RooAbsPdf classes that do not have or need a special...
 
RooResolutionModel is the base class for PDFs that represent a resolution model that can be convolute...
 
bool _ownBasis
Flag indicating ownership of _basis.
 
Int_t _basisCode
Identifier code for selected basis function.
 
RooAbsRealLValue & convVar() const
Return the convolution variable of the resolution model.
 
RooFormulaVar * _basis
Basis function convolved with this resolution model.
 
const RooFormulaVar & basis() const
 
RooTemplateProxy< RooAbsRealLValue > x
Dependent/convolution variable.
 
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.
 
void doEval(RooFit::EvalContext &) const override
Base function for computing multiple values of a RooAbsReal.
 
void generateEvent(Int_t code) override
Implement internal generator for observable x, x=0 for all events following definition of delta funct...
 
double evaluate() const override
Evaluate the truth model: a delta function when used as PDF, the basis function itself,...
 
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Advertise analytical integrals for compiled basis functions and when used as p.d.f without basis func...
 
Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, bool staticInitOK=true) const override
Advertise internal generator for observable x.
 
RooAbsGenContext * modelGenContext(const RooAbsAnaConvPdf &convPdf, const RooArgSet &vars, const RooDataSet *prototype=nullptr, const RooArgSet *auxProto=nullptr, bool verbose=false) const override
 
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implement analytical integrals when used as p.d.f and for compiled basis functions.
 
Int_t basisCode(const char *name) const override
Return basis code for given basis definition string.
 
void changeBasis(RooFormulaVar *basis) override
Changes associated bases function to 'inBasis'.
 
void compute(Config cfg, Computer comp, std::span< double > output, VarSpan vars, ArgSpan extraArgs={})