48 dm(
"dm",
"Dstar-D0 Mass Diff", this, _dm),
49 dm0(
"dm0",
"Threshold", this, _dm0),
50 C(
"C",
"Shape Parameter", this, _c),
51 A(
"A",
"Shape Parameter 2", this, _a),
52 B(
"B",
"Shape Parameter 3", this, _b)
60 dm(
"dm", this, other.dm),
61 dm0(
"dm0", this, other.dm0),
62 C(
"C", this, other.C),
63 A(
"A", this, other.A),
72 double arg =
dm -
dm0;
75 double ratio =
dm /
dm0;
76 double val = (1 - std::exp(-arg /
C)) * std::pow(ratio,
A) +
B * (ratio - 1);
78 return (val > 0 ? val : 0);
86 {ctx.at(dm), ctx.at(dm0), ctx.at(C), ctx.at(A), ctx.at(B)});
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={})