44 {
45
46
48
50 {
51 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMix generator expected "
52 <<
" at least 1 argument (deltam) but found:" <<
getNArg()
53 << endl;
54 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
55 ::abort();
56 }
57
58
60
62 {
64 {
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;
69 ::abort();
70 }
71 }
72
73
74
76
79
80
82 {
83 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMixCPT generator expected daughters "
84 << "to be charge conjugate." << endl
87 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
88 ::abort();
89 }
90
92 {
93 report(
ERROR,
"EvtGen" ) <<
"EvtVSSBMixCPT generator expected daughters "
94 << "to have the same lifetime." << endl
97 << endl;
98 report(
ERROR,
"EvtGen" ) <<
"Will terminate execution!" << endl;
99 ::abort();
100 }
101
102
103
104
106
107
109 _dGamma = 0.0;
110 double dgog = 0.0;
112 {
114 _dGamma = dgog * gamma;
115 }
116
117 _qoverp = EvtComplex( 1.0, 0.0 );
118 if (
getNArg() == 3 ) { _qoverp = EvtComplex(
getArg( 2 ), 0.0 ); }
121 _poverq = 1.0 / _qoverp;
122
123
124 _A_f = EvtComplex( 1.0, 0.0 );
125 _Abar_f = EvtComplex( 0.0, 0.0 );
126 _A_fbar = _Abar_f;
127 _Abar_fbar = _A_f;
129 {
135 {
136
139 }
140 else
141 {
142
143 _A_fbar = _Abar_f;
144 _Abar_fbar = _A_f;
145 }
146 }
147
148
149 _z = EvtComplex( 0.0, 0.0 );
151
152
154 double dm = 1e-12 *
getArg( 0 );
156 double y = dgog * 0.5;
157 double qop2 =
abs( _qoverp * _qoverp );
158 _chib0_b0bar =
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 );
163
164
165 report(
INFO,
"EvtGen" ) <<
"VSS_BMIXCPT will generate mixing and CPT/CP effects in mixing:"
166 << endl
167 << endl
171 << endl
172 << "using parameters:" << endl
173 << 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
188 << endl;
189}
ostream & report(Severity severity, const char *facility)
double sin(const BesAngle a)
double cos(const BesAngle a)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
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 double getctau(EvtId i)