21 #ifndef EVTVECTOR4C_HH
22 #define EVTVECTOR4C_HH
24 #include "EvtGenBase/EvtComplex.hh"
25 #include "EvtGenBase/EvtVector3C.hh"
26 #include "EvtGenBase/EvtVector4R.hh"
33 double alpha,
double beta,
double gamma);
57 inline void set(
double,
double,
double,
double);
67 void applyRotateEuler(
double alpha,
double beta,
double gamma);
70 friend std::ostream& operator<<(std::ostream& s,
const EvtVector4C& v);
108 inline void EvtVector4C::set(
int i,
const EvtComplex& c){
121 v[0]=e; v[1]=p1; v[2]=p2; v[3]=p3;
124 inline void EvtVector4C::set(
double e,
double p1,
125 double p2,
double p3){
130 inline const EvtComplex& EvtVector4C::get(
int i)
const {
147 return v[0]*v4.v[0]-v[1]*v4.v[1]-
148 v[2]*v4.v[2]-v[3]*v4.v[3];
163 return EvtVector4C(v2.v[0]*d,v2.v[1]*d,v2.v[2]*d,v2.v[3]*d);
178 return EvtVector4C(c*v2.get(0),c*v2.get(1),c*v2.get(2),c*v2.get(3));
181 inline EvtVector4C::EvtVector4C(
const EvtVector4R& v1){
189 return v1.get(0)*v2.v[0]-v1.get(1)*v2.v[1]-
190 v1.get(2)*v2.v[2]-v1.get(3)*v2.v[3];
195 return v1.v[0]*v2.get(0)-v1.v[1]*v2.get(1)-
196 v1.v[2]*v2.get(2)-v1.v[3]*v2.get(3);
201 return v1.v[0]*v2.v[0]-v1.v[1]*v2.v[1]-
202 v1.v[2]*v2.v[2]-v1.v[3]*v2.v[3];
208 ::conj(v[2]),::conj(v[3]));