59#define Debug_RooNonCPEigenDecay 1
82 _acp (
"acp",
"acp", this, acp ),
83 _avgC (
"C",
"C", this, C ),
84 _delC (
"delC",
"delC", this, delC ),
85 _avgS (
"S",
"S", this, S ),
86 _delS (
"delS",
"delS", this, delS ),
87 _avgW (
"avgW",
"Average mistag rate",this, avgW ),
88 _delW (
"delW",
"Shift mistag rate", this, delW ),
89 _t (
"t",
"time", this, t ),
90 _tau (
"tau",
"decay time", this, tau ),
91 _dm (
"dm",
"mixing frequency", this, dm ),
92 _tag (
"tag",
"CP state", this, tag ),
93 _rhoQ (
"rhoQ",
"Charge of the rho", this, rhoQ ),
94 _correctQ (
"correctQ",
"correction of rhoQ", this, correctQ ),
95 _wQ (
"wQ",
"mischarge", this, wQ ),
139 _acp (
"acp",
"acp", this, acp ),
140 _avgC (
"C",
"C", this, C ),
141 _delC (
"delC",
"delC", this, delC ),
142 _avgS (
"S",
"S", this, S ),
143 _delS (
"delS",
"delS", this, delS ),
144 _avgW (
"avgW",
"Average mistag rate",this, avgW ),
145 _delW (
"delW",
"Shift mistag rate", this, delW ),
146 _t (
"t",
"time", this, t ),
147 _tau (
"tau",
"decay time", this, tau ),
148 _dm (
"dm",
"mixing frequency", this, dm ),
149 _tag (
"tag",
"CP state", this, tag ),
150 _rhoQ (
"rhoQ",
"Charge of the rho", this, rhoQ ),
151 _correctQ (
"correctQ",
"correction of rhoQ", this, correctQ ),
153 _genRhoPlusFrac( 0 ),
183 _acp (
"acp", this, other._acp ),
184 _avgC (
"C", this, other._avgC ),
185 _delC (
"delC", this, other._delC ),
186 _avgS (
"S", this, other._avgS ),
187 _delS (
"delS", this, other._delS ),
188 _avgW (
"avgW", this, other._avgW ),
189 _delW (
"delW", this, other._delW ),
190 _t (
"t", this, other._t ),
191 _tau (
"tau", this, other._tau ),
192 _dm (
"dm", this, other._dm ),
193 _tag (
"tag", this, other._tag ),
194 _rhoQ (
"rhoQ", this, other._rhoQ ),
195 _correctQ (
"correctQ", this, other._correctQ ),
196 _wQ (
"wQ", this, other._wQ ),
197 _genB0Frac ( other._genB0Frac ),
198 _genRhoPlusFrac( other._genRhoPlusFrac ),
199 _type ( other._type ),
200 _basisExp ( other._basisExp ),
201 _basisSin ( other._basisSin ),
202 _basisCos ( other._basisCos )
223 assert( rhoQc == 1 || rhoQc == -1 );
231 if (rhoQc == -1 || rhoQc == +1)
243 else if (rhoQc == +1)
248 return -
_tag*((a_sin_p + a_sin_m)/2)*(1 - 2*
_avgW);
257 else if (rhoQc == +1)
262 return _tag*((a_cos_p + a_cos_m)/2)*(1 - 2*
_avgW);
273 RooArgSet& analVars,
const char* rangeName )
const
275 if (rangeName)
return 0 ;
288 Int_t code,
const char* )
const
345 if (
matchArgs( directVars, generateVars,
_t ))
return 1;
353 if (code == 2 || code == 4) {
365 cout <<
" o RooNonCPEigenDecay::initgenerator: genB0Frac : "
367 <<
", tag dilution: " << (1 - 2*
_avgW)
371 if (code == 3 || code == 4) {
383 cout <<
" o RooNonCPEigenDecay::initgenerator: genRhoPlusFrac: "
422 tval = -
_tau*log(rand);
426 tval = +
_tau*log(rand);
430 tval = (rand<=0.5) ? -
_tau*log(2*rand) : +
_tau*log(2*(rand-0.5));
440 Double_t acceptProb = expC + sinC*sin(
_dm*tval) + cosC*cos(
_dm*tval);
443 assert( acceptProb <= maxAcceptProb );
448 if (accept && tval<
_t.
max() && tval>
_t.
min()) {
#define Debug_RooNonCPEigenDecay
RooTemplateProxy< RooAbsReal > RooRealProxy
Compatibility typedef replacing the old RooRealProxy class.
RooAbsAnaConvPdf is the base class for PDFs that represent a physics model that can be analytically c...
Int_t declareBasis(const char *expression, const RooArgList ¶ms)
Declare a basis function for use in this physics model.
RooAbsCategory is the base class for objects that represent a discrete value with a finite number of ...
friend class RooRealIntegral
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Bool_t 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.
Time-dependent RooAbsAnaConvPdf for CP violating decays to Non-CP eigenstates (eg,...
virtual Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char *rangeName=0) const
correct for the right/wrong charge...
void generateEvent(Int_t code)
Interface for generation of an event using the algorithm corresponding to the specified code.
void initGenerator(Int_t code)
Interface for one-time initialization to setup the generator for the specified code.
Int_t getGenerator(const RooArgSet &directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const
Load generatedVars with the subset of directVars that we can generate events for, and return a code t...
virtual Double_t coefficient(Int_t basisIndex) const
virtual Int_t getCoefAnalyticalIntegral(Int_t coef, RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Default implementation of function advertising integration capabilities.
virtual ~RooNonCPEigenDecay(void)
Destructor.
static Double_t uniform(TRandom *generator=randomGenerator())
Return a number uniformly distributed from (0,1)
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 min(const char *rname=0) const
Query lower limit of range. This requires the payload to be RooAbsRealLValue or derived.
double max(const char *rname=0) 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.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)