54 <<
"EvtVSSBMix generator expected " 55 <<
" at least 1 argument (deltam) but found:" <<
getNArg() << endl;
57 <<
"Will terminate execution!" << endl;
67 <<
"EvtVSSBMixCPT generator allows " 68 <<
" 4 daughters only if 1=3 and 2=4" 69 <<
" (but 3 and 4 are aliased " << endl;
71 <<
"Will terminate execution!" << endl;
86 <<
"EvtVSSBMixCPT generator expected daughters " 87 <<
"to be charge conjugate." << endl
91 <<
"Will terminate execution!" << endl;
97 <<
"EvtVSSBMixCPT generator expected daughters " 98 <<
"to have the same lifetime." << endl
102 <<
"Will terminate execution!" << endl;
163 double dm = 1e-12 *
getArg( 0 );
165 double y = dgog * 0.5;
168 ( qop2 * ( x * x + y * y ) + 2 + x * x -
171 ( ( 1 / qop2 ) * ( x * x + y * y ) + 2 + x * x -
176 <<
"VSS_BMIXCPT will generate mixing and CPT/CP effects in mixing:" 183 <<
"using parameters:" << endl
185 <<
" delta(m) = " << dm <<
" hbar/ps" << endl
186 <<
" _freq = " <<
_freq <<
" hbar/mm" << endl
187 <<
" dgog = " << dgog << endl
188 <<
" dGamma = " <<
_dGamma <<
" hbar/mm" << endl
189 <<
" q/p = " <<
_qoverp << endl
190 <<
" z = " <<
_z << endl
191 <<
" tau = " << tau <<
" ps" << endl
192 <<
" x = " << x << endl
195 <<
" Af = " <<
_A_f << endl
196 <<
" Abarf = " <<
_Abar_f << endl
197 <<
" Afbar = " <<
_A_fbar << endl
252 int mixed = ( rndm < 0.5 ) ? 1 : 0;
258 EvtId mixedId2 = mixedId;
259 if (
getNDaug() == 4 && rndm < 0.25 )
261 if (
getNDaug() == 4 && rndm > 0.25 )
263 s1->
init( mixedId, p1 );
264 s2->
init( mixedId2, p2 );
272 if (
getNDaug() == 4 && rndm < 0.75 )
274 if (
getNDaug() == 4 && rndm > 0.75 )
276 s1->
init( unmixedId, p1 );
277 s2->
init( unmixedId2, p2 );
297 EvtId stateAtDeltaTeq0 = ( s2->
getId() == B0 ) ? B0B : B0;
314 if ( !mixed && stateAtDeltaTeq0 == B0 ) {
317 if ( !mixed && stateAtDeltaTeq0 == B0B ) {
321 if ( mixed && stateAtDeltaTeq0 == B0 ) {
324 if ( mixed && stateAtDeltaTeq0 == B0B ) {
329 double norm = 1.0 / p1.
d3mag();
330 vertex( 0, norm * osc_amp * p1 * ( p->
eps( 0 ) ) );
331 vertex( 1, norm * osc_amp * p1 * ( p->
eps( 1 ) ) );
332 vertex( 2, norm * osc_amp * p1 * ( p->
eps( 2 ) ) );
343 return "deltaGammaOverGamma";
347 return "qOverPPhase";
363 return "AbarfbarPhase";
std::string getParamName(int i) override
static std::string name(EvtId i)
virtual EvtVector4C eps(int i) const
double getArg(unsigned int j)
void decay(EvtParticle *p) override
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
static double getctau(EvtId i)
void setLifetime(double tau)
void setProbMax(double prbmx)
EvtId getParentId() const
void vertex(const EvtComplex &)
double initializePhaseSpace(unsigned int numdaughter, EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void deleteDaughters(bool keepChannel=false)
void checkNDaug(int d1, int d2=-1)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
double abs(const EvtComplex &c)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
EvtComplex exp(const EvtComplex &c)
void initProbMax() override
EvtParticle * getDaug(int i)
std::string getParamDefault(int i) override
double arg(const EvtComplex &c)
static EvtId chargeConj(EvtId id)
std::string getName() override
EvtDecayBase * clone() override
EvtId getDaug(int i) const