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)) *
TMath::Power(ratio,
A) +
B * (ratio - 1);
78 return (val > 0 ? val : 0);
86 {dataMap.at(dm), dataMap.at(dm0), dataMap.at(C), dataMap.at(A), dataMap.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.
void computeBatch(double *output, size_t nEvents, RooFit::Detail::DataMap const &) const override
Compute multiple values of D*-D0 mass difference distribution.
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
if (matchArgs(allVars,analVars,dm)) return 1 ;
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
RooBatchCompute::Config config(RooAbsArg const *arg) const
void compute(Config cfg, Computer comp, RestrictArr output, size_t size, const VarVector &vars, ArgVector &extraArgs)
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.