21#include "EvtGenBase/EvtPatches.hh"
23#include "EvtGenBase/EvtParticle.hh"
24#include "EvtGenBase/EvtRandom.hh"
25#include "EvtGenBase/EvtGenKine.hh"
26#include "EvtGenBase/EvtCPUtil.hh"
27#include "EvtGenBase/EvtPDL.hh"
28#include "EvtGenBase/EvtReport.hh"
29#include "EvtGenBase/EvtVector4C.hh"
30#include "EvtGenBase/EvtTensor4C.hh"
31#include "EvtGenModels/EvtSSDCP.hh"
33#include "EvtGenBase/EvtConst.hh"
75 report(
ERROR,
"EvtGen") <<
"EvtSSDCP generator expected "
76 <<
"one of the daugters to be a scalar, the other either scalar, vector, or tensor, found:"
78 report(
ERROR,
"EvtGen") <<
"Will terminate execution!"<<endl;
111 _A_fbar=
conj(_Abar_f);
112 _Abar_fbar=
conj(_A_f);
134 _dgamma=_gamma*_dgog;
137 report(
INFO,
"EvtGen") <<
"SSD_CP will generate CP/CPT violation:"
142 <<
"using parameters:" << endl << endl
143 <<
" delta(m) = " << _dm <<
" hbar/ps" << endl
144 <<
"dGamma = " << _dgamma <<
" ps-1" <<endl
145 <<
" q/p = " << _qoverp << endl
146 <<
" z = " << _z << endl
147 <<
" tau = " << 1./_gamma <<
" ps" << endl;
155 abs(_Abar_f) *
abs(_Abar_f) +
156 abs(_A_fbar) *
abs(_A_fbar) +
157 abs(_Abar_fbar) *
abs(_Abar_fbar);
159 if (_eigenstate) theProbMax*=2;
225 amp=BB*_A_f+BbarB*_Abar_f;
231 amp=barBB*_A_f+barBbarB*_Abar_f;
235 amp=barBB*_A_fbar+barBbarB*_Abar_fbar;
240 amp=BB*_A_fbar+BbarB*_Abar_fbar;
246 double m_parent=p4_parent.
mass();
double sin(const BesAngle a)
double cos(const BesAngle a)
Evt3Rank3C conj(const Evt3Rank3C &t2)
EvtComplex exp(const EvtComplex &c)
double arg(const EvtComplex &c)
ostream & report(Severity severity, const char *facility)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
void vertex(const EvtComplex &)
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 EvtSpinType::spintype getSpinType(EvtId i)
static EvtId getId(const std::string &name)
static double getctau(EvtId i)
virtual EvtVector4C epsParent(int i) const
virtual EvtTensor4C epsTensorParent(int i) const
EvtVector4R getP4Restframe()
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void getName(std::string &name)
void decay(EvtParticle *p)
EvtVector4C cont1(const EvtVector4C &v4) const