58 _t(
"t",
"time", this, t),
59 _tau(
"tau",
"Average Decay Time", this, tau),
60 _dgamma(
"dgamma",
"Delta Gamma", this, dgamma),
61 _f0(
"f0",
"Cosh Coefficient", this, f0),
62 _f1(
"f1",
"Sinh Coefficient", this,
f1),
63 _f2(
"f2",
"Cos Coefficient", this, f2),
64 _f3(
"f3",
"Sin Coefficient", this, f3),
65 _dm(
"dm",
"Delta Mass", this, dm),
98 _t(
"t", this, other.
_t),
101 _f0(
"f0", this, other.
_f0),
102 _f1(
"f1", this, other.
_f1),
103 _f2(
"f2", this, other.
_f2),
104 _f3(
"f3", this, other.
_f3),
105 _dm(
"dm", this, other.
_dm),
144 return _f0.arg().getVariables();
148 return _f1.arg().getVariables();
152 return _f2.arg().getVariables();
156 return _f3.arg().getVariables();
168 return _f0.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
172 return _f1.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
176 return _f2.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
180 return _f3.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
192 return _f0.arg().analyticalIntegral(code,rangeName) ;
196 return _f1.arg().analyticalIntegral(code,rangeName) ;
200 return _f2.arg().analyticalIntegral(code,rangeName) ;
204 return _f3.arg().analyticalIntegral(code,rangeName) ;
214 if (
matchArgs(directVars, generateVars,
_t))
return 1;
227 if ( t<
_t.min() || t>
_t.max() )
continue;
231 double ft = std::abs(t);
232 double f = exp(-ft/
_tau)*(
_f0*cosh(dgt)+
_f1*sinh(dgt)+
_f2*cos(dmt)+
_f3*sin(dmt));
234 std::cout <<
"RooBDecay::generateEvent(" <<
GetName() <<
") ERROR: PDF value less than zero" << std::endl;
237 double w = 1.001*exp(-ft*gammamin)*(std::abs(
_f0)+std::abs(
_f1)+sqrt(
_f2*
_f2+
_f3*
_f3));
239 std::cout <<
"RooBDecay::generateEvent(" <<
GetName() <<
") ERROR: Envelope function less than p.d.f. " << std::endl;
240 std::cout <<
_f0 << std::endl;
241 std::cout <<
_f1 << std::endl;
242 std::cout <<
_f2 << std::endl;
243 std::cout <<
_f3 << std::endl;
int Int_t
Signed integer 4 bytes (int).
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
RooAbsAnaConvPdf()
Default constructor, required for persistence.
Int_t declareBasis(const char *expression, const RooArgList ¶ms)
Declare a basis function for use in this physics model.
bool matchArgs(const RooArgSet &allDeps, RooArgSet &analDeps, const RooArgProxy &a, const Proxies &... proxies) const
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, bool staticInitOK=true) const override
Load generatedVars with the subset of directVars that we can generate events for, and return a code t...
double coefAnalyticalIntegral(Int_t coef, Int_t code, const char *rangeName=nullptr) const override
Default implementation of function implementing advertised integrals.
void generateEvent(Int_t code) override
Interface for generation of an event using the algorithm corresponding to the specified code.
double coefficient(Int_t basisIndex) const override
Int_t getCoefAnalyticalIntegral(Int_t coef, RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Default implementation of function advertising integration capabilities.
RooFit::OwningPtr< RooArgSet > coefVars(Int_t coefIdx) const override
Return set of parameters with are used exclusively by the coefficient functions.
static double uniform(TRandom *generator=randomGenerator())
Return a number uniformly distributed from (0,1).
Variable that can be changed from the outside.
RooResolutionModel is the base class for PDFs that represent a resolution model that can be convolute...
const char * GetName() const override
Returns name of object.
T * OwningPtr
An alias for raw pointers for indicating that the return type of a RooFit function is an owning point...