35using std::cout, std::endl;
61 _t(
"t",
"time", this, t),
62 _tau(
"tau",
"Average Decay Time", this, tau),
63 _dgamma(
"dgamma",
"Delta Gamma", this, dgamma),
64 _f0(
"f0",
"Cosh Coefficient", this, f0),
65 _f1(
"f1",
"Sinh Coefficient", this,
f1),
66 _f2(
"f2",
"Cos Coefficient", this, f2),
67 _f3(
"f3",
"Sin Coefficient", this, f3),
68 _dm(
"dm",
"Delta Mass", this, dm),
101 _t(
"t", this, other._t),
102 _tau(
"tau", this, other._tau),
103 _dgamma(
"dgamma", this, other._dgamma),
104 _f0(
"f0", this, other._f0),
105 _f1(
"f1", this, other._f1),
106 _f2(
"f2", this, other._f2),
107 _f3(
"f3", this, other._f3),
108 _dm(
"dm", this, other._dm),
109 _basisCosh(other._basisCosh),
110 _basisSinh(other._basisSinh),
111 _basisCos(other._basisCos),
112 _basisSin(other._basisSin),
147 return _f0.arg().getVariables();
151 return _f1.arg().getVariables();
155 return _f2.arg().getVariables();
159 return _f3.arg().getVariables();
171 return _f0.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
175 return _f1.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
179 return _f2.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
183 return _f3.arg().getAnalyticalIntegral(allVars,analVars,rangeName) ;
195 return _f0.arg().analyticalIntegral(code,rangeName) ;
199 return _f1.arg().analyticalIntegral(code,rangeName) ;
203 return _f2.arg().analyticalIntegral(code,rangeName) ;
207 return _f3.arg().analyticalIntegral(code,rangeName) ;
217 if (
matchArgs(directVars, generateVars,
_t))
return 1;
230 if ( t<
_t.min() || t>
_t.max() )
continue;
234 double ft = std::abs(t);
235 double f = exp(-ft/
_tau)*(
_f0*cosh(dgt)+
_f1*sinh(dgt)+
_f2*cos(dmt)+
_f3*sin(dmt));
237 cout <<
"RooBDecay::generateEvent(" <<
GetName() <<
") ERROR: PDF value less than zero" << endl;
242 cout <<
"RooBDecay::generateEvent(" <<
GetName() <<
") ERROR: Envelope function less than p.d.f. " << endl;
#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 Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Base class for PDFs that represent a physics model that can be analytically convolved with a resoluti...
Int_t declareBasis(const char *expression, const RooArgList ¶ms)
Declare a basis function for use in this physics model.
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().
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Most general description of B decay time distribution with effects of CP violation,...
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...