71 double e = p4.
get( 0 );
82 double bx, by, bz, gamma, b2;
94 if ( b2 == 0.0 ) {
return; }
98 gamma = 1.0 / sqrt( 1 - b2 );
100 double gb2 = ( gamma - 1.0 ) / b2;
102 double gb2xy = gb2 * bx * by;
103 double gb2xz = gb2 * bx * bz;
104 double gb2yz = gb2 * by * bz;
106 double gbx = gamma * bx;
107 double gby = gamma * by;
108 double gbz = gamma * bz;
115 v[0] = gamma *
e2 + gbx * px2 + gby * py2 + gbz * pz2;
117 v[1] = gbx *
e2 + gb2 * bxx * px2 + px2 + gb2xy * py2 + gb2xz * pz2;
119 v[2] = gby *
e2 + gb2 * byy * py2 + py2 + gb2xy * px2 + gb2yz * pz2;
121 v[3] = gbz *
e2 + gb2 * bzz * pz2 + pz2 + gb2yz * py2 + gb2xz * px2;
128 double sp =
sin( phi );
129 double st =
sin( theta );
130 double sk =
sin( ksi );
131 double cp =
cos( phi );
132 double ct =
cos( theta );
133 double ck =
cos( ksi );
136 ( ck * ct * cp - sk * sp ) * v[1] + ( -sk * ct * cp - ck * sp ) * v[2] + st * cp * v[3];
138 ( ck * ct * sp + sk * cp ) * v[1] + ( -sk * ct * sp + ck * cp ) * v[2] + st * sp * v[3];
139 EvtComplex z = -ck * st * v[1] + sk * st * v[2] + ct * v[3];
148 s <<
"(" <<
v.v[0] <<
"," <<
v.v[1] <<
"," <<
v.v[2] <<
"," <<
v.v[3] <<
")";
ostream & operator<<(ostream &s, const EvtVector4C &v)
EvtVector4C rotateEuler(const EvtVector4C &rs, double alpha, double beta, double gamma)
EvtVector4C boostTo(const EvtVector4C &rs, const EvtVector4R p4)
double sin(const BesAngle a)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
void applyRotateEuler(double alpha, double beta, double gamma)
void applyBoostTo(const EvtVector4R &p4)