63 _avgC(
"C",
"Coefficient of cos term",this,avgC),
64 _avgS(
"S",
"Coefficient of sin term",this,avgS),
65 _avgMistag(
"avgMistag",
"Average mistag rate",this,avgMistag),
66 _delMistag(
"delMistag",
"Delta mistag rate",this,delMistag),
67 _mu(
"mu",
"Tag efficiency difference",this,mu),
68 _t(
"t",
"time",this,t),
69 _tau(
"tau",
"decay time",this,tau),
70 _dm(
"dm",
"mixing frequency",this,dm),
71 _tag(
"tag",
"CP state",this,tag),
99 _avgC(
"C",this,other._avgC),
100 _avgS(
"S",this,other._avgS),
101 _avgMistag(
"avgMistag",this,other._avgMistag),
102 _delMistag(
"delMistag",this,other._delMistag),
103 _mu(
"mu",this,other._mu),
104 _t(
"t",this,other._t),
105 _tau(
"tau",this,other._tau),
106 _dm(
"dm",this,other._dm),
107 _tag(
"tag",this,other._tag),
108 _genB0Frac(other._genB0Frac),
110 _basisExp(other._basisExp),
111 _basisSin(other._basisSin),
112 _basisCos(other._basisCos)
147 if (rangeName)
return 0 ;
188 if (
matchArgs(directVars,generateVars,
_t))
return 1 ;
222 tval = -
_tau*log(rand);
225 tval= +
_tau*log(rand);
228 tval = (rand<=0.5) ? -
_tau*log(2*rand) : +
_tau*log(2*(rand-0.5)) ;
233 double maxDil = 1.0 ;
235 double maxAcceptProb = 2 + std::abs(maxDil*
_avgS) + std::abs(maxDil*
_avgC);
242 if (tval<
_t.
max() && tval>
_t.
min() && accept) {
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.
A space to attach TBranches.
Abstract base class for objects that represent a real value and implements functionality common to al...
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
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.
Implement standard CP physics model with S and C (no mention of lambda) Suitably stolen and modified ...
void initGenerator(Int_t code) override
Interface for one-time initialization to setup the generator for the specified code.
void generateEvent(Int_t code) override
Generate mix-state dependent.
double coefficient(Int_t basisIndex) const override
B0 : _tag = +1 B0bar : _tag = -1.
Int_t getCoefAnalyticalIntegral(Int_t coef, RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Default implementation of function advertising integration capabilities.
double coefAnalyticalIntegral(Int_t coef, Int_t code, const char *rangeName=nullptr) const override
Default implementation of function implementing advertised integrals.
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...
static double uniform(TRandom *generator=randomGenerator())
Return a number uniformly distributed from (0,1)
Performs hybrid numerical/analytical integrals of RooAbsReal objects.
RooRealVar represents a variable that can be changed from the outside.
RooResolutionModel is the base class for PDFs that represent a resolution model that can be convolute...
double max(const char *rname=nullptr) const
Query upper limit of range. This requires the payload to be RooAbsRealLValue or derived.
const T & arg() const
Return reference to object held in proxy.
double min(const char *rname=nullptr) const
Query lower limit of range. This requires the payload to be RooAbsRealLValue or derived.