51 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMix generator expected "
52 <<
" at least 1 argument (deltam) but found:" <<
getNArg()
54 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
65 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMixCPT generator allows "
66 <<
" 4 daughters only if 1=3 and 2=4"
67 <<
" (but 3 and 4 are aliased " << endl;
68 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
83 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMixCPT generator expected daughters "
84 <<
"to be charge conjugate." << endl
87 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
93 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMixCPT generator expected daughters "
94 <<
"to have the same lifetime." << endl
98 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
114 _dGamma = dgog * gamma;
121 _poverq = 1.0 / _qoverp;
154 double dm = 1e-12 *
getArg( 0 );
156 double y = dgog * 0.5;
157 double qop2 =
abs( _qoverp * _qoverp );
159 qop2 * ( x * x + y * y ) /
160 ( qop2 * ( x * x + y * y ) + 2 + x * x - y * y );
161 _chib0bar_b0 = ( 1 / qop2 ) * ( x * x + y * y ) /
162 ( ( 1 / qop2 ) * ( x * x + y * y ) + 2 + x * x - y * y );
165 report(
INFO,
"EvtGen" ) <<
"VSS_BMIXCPT will generate mixing and CPT/CP effects in mixing:"
172 <<
"using parameters:" << endl
174 <<
" delta(m) = " << dm <<
" hbar/ps" << endl
175 <<
" _freq = " << _freq <<
" hbar/mm" << endl
176 <<
" dgog = " << dgog << endl
177 <<
" dGamma = " << _dGamma <<
" hbar/mm" << endl
178 <<
" q/p = " << _qoverp << endl
179 <<
" z = " << _z << endl
180 <<
" tau = " << tau <<
" ps" << endl
181 <<
" x = " << x << endl
182 <<
" chi(B0->B0bar) = " << _chib0_b0bar << endl
183 <<
" chi(B0bar->B0) = " << _chib0bar_b0 << endl
184 <<
" Af = " << _A_f << endl
185 <<
" Abarf = " << _Abar_f << endl
186 <<
" Afbar = " << _A_fbar << endl
187 <<
" Abarfbar = " << _Abar_fbar << endl
241 int mixed = ( rndm < 0.5 ) ? 1 : 0;
248 EvtId mixedId2 = mixedId;
263 s1->
init( unmixedId,
p1 );
264 s2->
init( unmixedId2,
p2 );
275 EvtComplex exp1( -0.25 * _dGamma * dct, 0.5 * _freq * dct );
284 EvtId stateAtDeltaTeq0 = ( s2->
getId() == B0 ) ? B0B : B0;
300 if ( !mixed && stateAtDeltaTeq0 == B0 ) { osc_amp = BB * _A_f + barBB * _Abar_f; }
301 if ( !mixed && stateAtDeltaTeq0 == B0B )
302 { osc_amp = barBbarB * _Abar_fbar + BbarB * _A_fbar; }
304 if ( mixed && stateAtDeltaTeq0 == B0 ) { osc_amp = barBB * _Abar_fbar + BB * _A_fbar; }
305 if ( mixed && stateAtDeltaTeq0 == B0B ) { osc_amp = BbarB * _A_f + barBbarB * _Abar_f; }
308 double norm = 1.0 /
p1.d3mag();
309 vertex( 0, norm * osc_amp *
p1 * ( p->
eps( 0 ) ) );
310 vertex( 1, norm * osc_amp *
p1 * ( p->
eps( 1 ) ) );
311 vertex( 2, norm * osc_amp *
p1 * ( p->
eps( 2 ) ) );
EvtComplex exp(const EvtComplex &c)
double arg(const EvtComplex &c)
ostream & report(Severity severity, const char *facility)
double sin(const BesAngle a)
double cos(const BesAngle a)
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static std::string name(EvtId i)
static EvtId chargeConj(EvtId id)
static EvtId getId(const std::string &name)
static double getctau(EvtId i)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
const EvtVector4R & getP4() const
void setLifetime(double tau)
EvtParticle * getDaug(int i)
void deleteDaughters(bool keepChannel=false)
virtual EvtVector4C eps(int i) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void getName(std::string &name)
void decay(EvtParticle *p)