47 dm(
"dm",
"Dstar-D0 Mass Diff",
this, _dm),
49 C(
"C",
"Shape Parameter",
this, _c),
50 A(
"A",
"Shape Parameter 2",
this, _a),
51 B(
"B",
"Shape Parameter 3",
this,
_b)
71 double arg =
dm -
dm0;
74 double ratio =
dm /
dm0;
75 double val = (1 - std::exp(-arg /
C)) * std::pow(ratio,
A) +
B * (ratio - 1);
77 return (val > 0 ? val : 0);
85 {ctx.at(dm), ctx.at(dm0), ctx.at(C), ctx.at(A), ctx.at(B)});
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Abstract interface for all probability density functions.
Abstract base class for objects that represent a real value and implements functionality common to al...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Special p.d.f shape that can be used to model the background of D*-D0 mass difference distributions.
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
if (matchArgs(allVars,analVars,dm)) return 1 ;
void doEval(RooFit::EvalContext &) const override
Compute multiple values of D*-D0 mass difference distribution.
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
std::span< double > output()
RooBatchCompute::Config config(RooAbsArg const *arg) const
void compute(Config cfg, Computer comp, std::span< double > output, VarSpan vars, ArgSpan extraArgs={})