EvtVector4C Class Reference

#include <EvtVector4C.hh>

List of all members.

Public Member Functions

 EvtVector4C ()
 EvtVector4C (const EvtComplex &, const EvtComplex &, const EvtComplex &, const EvtComplex &)
virtual ~EvtVector4C ()
void set (int, const EvtComplex &)
void set (const EvtComplex &, const EvtComplex &, const EvtComplex &, const EvtComplex &)
void set (double, double, double, double)
 EvtVector4C (const EvtVector4R &v1)
const EvtComplexget (int) const
EvtComplex cont (const EvtVector4C &v4) const
EvtVector4C conj () const
EvtVector3C vec () const
EvtVector4Coperator= (const EvtVector4C &v2)
EvtVector4Coperator-= (const EvtVector4C &v2)
EvtVector4Coperator+= (const EvtVector4C &v2)
EvtVector4Coperator *= (const EvtComplex &c)
void applyRotateEuler (double alpha, double beta, double gamma)
void applyBoostTo (const EvtVector4R &p4)
void applyBoostTo (const EvtVector3R &boost)
double dot (const EvtVector4C &p2)

Private Attributes

EvtComplex v [4]

Friends

EvtVector4C rotateEuler (const EvtVector4C &e, double alpha, double beta, double gamma)
EvtVector4C boostTo (const EvtVector4C &e, const EvtVector4R p4)
EvtVector4C boostTo (const EvtVector4C &e, const EvtVector3R boost)
EvtVector4C operator * (double d, const EvtVector4C &v2)
EvtVector4C operator * (const EvtComplex &c, const EvtVector4C &v2)
EvtVector4C operator * (const EvtVector4C &v2, const EvtComplex &c)
EvtVector4C operator * (const EvtComplex &c, const EvtVector4R &v2)
EvtComplex operator * (const EvtVector4R &v1, const EvtVector4C &v2)
EvtComplex operator * (const EvtVector4C &v1, const EvtVector4R &v2)
EvtComplex operator * (const EvtVector4C &v1, const EvtVector4C &v2)
EvtVector4C operator+ (const EvtVector4C &v1, const EvtVector4C &v2)
EvtVector4C operator- (const EvtVector4C &v1, const EvtVector4C &v2)
std::ostreamoperator<< (std::ostream &s, const EvtVector4C &v)


Detailed Description

Definition at line 31 of file EvtVector4C.hh.


Constructor & Destructor Documentation

EvtVector4C::EvtVector4C (  ) 

Definition at line 30 of file EvtVector4C.cc.

References v.

Referenced by conj().

00030                         {
00031 
00032   v[0]=EvtComplex(0.0); v[1]=EvtComplex(0.0); 
00033   v[2]=EvtComplex(0.0); v[3]=EvtComplex(0.0);
00034 
00035 }

EvtVector4C::EvtVector4C ( const EvtComplex ,
const EvtComplex ,
const EvtComplex ,
const EvtComplex  
)

Definition at line 39 of file EvtVector4C.cc.

References v.

00040                                                                    {
00041 
00042   v[0]=e0; v[1]=e1; v[2]=e2; v[3]=e3;
00043 }

EvtVector4C::~EvtVector4C (  )  [virtual]

Definition at line 37 of file EvtVector4C.cc.

00037 {}

EvtVector4C::EvtVector4C ( const EvtVector4R v1  )  [inline]

Definition at line 182 of file EvtVector4C.hh.

References EvtVector4R::get(), and v.

00182                                                     {
00183  
00184   v[0]=EvtComplex(v1.get(0)); v[1]=EvtComplex(v1.get(1));
00185   v[2]=EvtComplex(v1.get(2)); v[3]=EvtComplex(v1.get(3));
00186 }


Member Function Documentation

void EvtVector4C::applyBoostTo ( const EvtVector3R boost  ) 

Definition at line 85 of file EvtVector4C.cc.

References EvtVector3R::get(), and v.

00085                                                       {
00086 
00087   double bx,by,bz,gamma,b2;
00088 
00089   bx=boost.get(0);
00090   by=boost.get(1);
00091   bz=boost.get(2);
00092 
00093   double bxx=bx*bx;
00094   double byy=by*by;
00095   double bzz=bz*bz;
00096 
00097   b2=bxx+byy+bzz;
00098 
00099 
00100   if (b2==0.0){
00101     return;
00102   }
00103 
00104   assert(b2<1.0);
00105 
00106   gamma=1.0/sqrt(1-b2);
00107 
00108 
00109   double gb2=(gamma-1.0)/b2;
00110 
00111   double gb2xy=gb2*bx*by;
00112   double gb2xz=gb2*bx*bz;
00113   double gb2yz=gb2*by*bz;
00114 
00115   double gbx=gamma*bx;
00116   double gby=gamma*by;
00117   double gbz=gamma*bz;
00118 
00119   EvtComplex e2=v[0];
00120   EvtComplex px2=v[1];
00121   EvtComplex py2=v[2];
00122   EvtComplex pz2=v[3];
00123 
00124   v[0]=gamma*e2+gbx*px2+gby*py2+gbz*pz2;
00125 
00126   v[1]=gbx*e2+gb2*bxx*px2+px2+gb2xy*py2+gb2xz*pz2;
00127 
00128   v[2]=gby*e2+gb2*byy*py2+py2+gb2xy*px2+gb2yz*pz2;
00129 
00130   v[3]=gbz*e2+gb2*bzz*pz2+pz2+gb2yz*py2+gb2xz*px2;
00131 
00132   return;
00133 
00134 }

void EvtVector4C::applyBoostTo ( const EvtVector4R p4  ) 

Definition at line 73 of file EvtVector4C.cc.

References EvtVector4R::get().

Referenced by EvtRaritaSchwinger::applyBoostTo(), and boostTo().

00073                                                    {
00074 
00075   double e=p4.get(0);
00076 
00077   EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e);
00078 
00079   applyBoostTo(boost);
00080 
00081   return;
00082 
00083 }

void EvtVector4C::applyRotateEuler ( double  alpha,
double  beta,
double  gamma 
)

Definition at line 136 of file EvtVector4C.cc.

References cos(), sin(), v, and x.

Referenced by EvtRaritaSchwinger::applyRotateEuler(), EvtPhotonParticle::epsParentPhoton(), rotateEuler(), EvtVectorParticle::rotateToHelicityBasis(), EvtTensorParticle::rotateToHelicityBasis(), and EvtPhotonParticle::rotateToHelicityBasis().

00136                                                                     {
00137 
00138   double sp=sin(phi);
00139   double st=sin(theta);
00140   double sk=sin(ksi);
00141   double cp=cos(phi);
00142   double ct=cos(theta);
00143   double ck=cos(ksi);
00144 
00145   EvtComplex x=( ck*ct*cp-sk*sp)*v[1]+( -sk*ct*cp-ck*sp)*v[2]+st*cp*v[3];
00146   EvtComplex y=( ck*ct*sp+sk*cp)*v[1]+(-sk*ct*sp+ck*cp)*v[2]+st*sp*v[3];
00147   EvtComplex z=-ck*st*v[1]+sk*st*v[2]+ct*v[3];
00148 
00149   v[1]=x;
00150   v[2]=y;
00151   v[3]=z;
00152   
00153 }

EvtVector4C EvtVector4C::conj (  )  const [inline]

Definition at line 206 of file EvtVector4C.hh.

References EvtVector4C(), and v.

Referenced by EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtVVPIPI_WEIGHTED::decay(), EvtVSPPwave::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtLNuGamma::decay(), EvtKstarnunu::decay(), EvtBHadronic::decay(), EvtGoityRoberts::DecayBDstarpilnuGR(), EvtVectorParticle::rotateToHelicityBasis(), and EvtPhotonParticle::rotateToHelicityBasis().

00206                                            { 
00207 
00208   return EvtVector4C(::conj(v[0]),::conj(v[1]),
00209                   ::conj(v[2]),::conj(v[3]));
00210 }

EvtComplex EvtVector4C::cont ( const EvtVector4C v4  )  const [inline]

Definition at line 146 of file EvtVector4C.hh.

References v.

Referenced by EvtSemiLeptonicVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtLNuGamma::decay(), and EvtGoityRoberts::DecayBDstarpilnuGR().

00146                                                                {
00147 
00148   return v[0]*v4.v[0]-v[1]*v4.v[1]-
00149          v[2]*v4.v[2]-v[3]*v4.v[3];
00150 }

double EvtVector4C::dot ( const EvtVector4C p2  ) 

const EvtComplex & EvtVector4C::get ( int   )  const [inline]

Definition at line 131 of file EvtVector4C.hh.

References v.

Referenced by EvtTensor4C::cont1(), EvtTensor4C::cont2(), directProd(), EvtDecayPlaneNormalAngle(), EvtVector4R::scalartripler3(), and slash().

00131                                                      {
00132 
00133    return v[i];
00134 }

EvtVector4C & EvtVector4C::operator *= ( const EvtComplex c  )  [inline]

Definition at line 152 of file EvtVector4C.hh.

References v.

00152                                                                {
00153 
00154   v[0]*=c;
00155   v[1]*=c;
00156   v[2]*=c;
00157   v[3]*=c;
00158 
00159   return *this;
00160 }

EvtVector4C & EvtVector4C::operator+= ( const EvtVector4C v2  )  [inline]

Definition at line 89 of file EvtVector4C.hh.

References v.

00089                                                                 {
00090 
00091   v[0]+=v2.v[0];
00092   v[1]+=v2.v[1];
00093   v[2]+=v2.v[2];
00094   v[3]+=v2.v[3];
00095 
00096   return *this;
00097 }

EvtVector4C & EvtVector4C::operator-= ( const EvtVector4C v2  )  [inline]

Definition at line 99 of file EvtVector4C.hh.

References v.

00099                                                                 {
00100 
00101   v[0]-=v2.v[0];
00102   v[1]-=v2.v[1];
00103   v[2]-=v2.v[2];
00104   v[3]-=v2.v[3];
00105 
00106   return *this;
00107 }

EvtVector4C & EvtVector4C::operator= ( const EvtVector4C v2  )  [inline]

Definition at line 79 of file EvtVector4C.hh.

References v.

00079                                                                {
00080 
00081   v[0]=v2.v[0];
00082   v[1]=v2.v[1];
00083   v[2]=v2.v[2];
00084   v[3]=v2.v[3];
00085 
00086   return *this;
00087 }

void EvtVector4C::set ( double  ,
double  ,
double  ,
double   
) [inline]

Definition at line 125 of file EvtVector4C.hh.

References v.

00126                                               {
00127 
00128    v[0]=EvtComplex(e); v[1]=EvtComplex(p1); v[2]=EvtComplex(p2); v[3]=EvtComplex(p3);
00129 }

void EvtVector4C::set ( const EvtComplex ,
const EvtComplex ,
const EvtComplex ,
const EvtComplex  
) [inline]

Definition at line 119 of file EvtVector4C.hh.

References v.

00120                                                                        {
00121 
00122    v[0]=e; v[1]=p1; v[2]=p2; v[3]=p3;
00123 }

void EvtVector4C::set ( int  ,
const EvtComplex  
) [inline]

Definition at line 109 of file EvtVector4C.hh.

References v.

Referenced by EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtPhotonParticle::epsParentPhoton(), and EvtVectorParticle::init().

00109                                                      {
00110 
00111   v[i]=c;
00112 }

EvtVector3C EvtVector4C::vec (  )  const [inline]

Definition at line 114 of file EvtVector4C.hh.

References v.

Referenced by EvtVVP::decay(), and EvtSVVHelAmp::SVVHel().

00114                                           {
00115 
00116   return EvtVector3C(v[1],v[2],v[3]);
00117 }


Friends And Related Function Documentation

EvtVector4C boostTo ( const EvtVector4C e,
const EvtVector3R  boost 
) [friend]

Definition at line 64 of file EvtVector4C.cc.

00065                                             {
00066 
00067   EvtVector4C tmp(rs);
00068   tmp.applyBoostTo(boost);
00069   return tmp;
00070 
00071 }

EvtVector4C boostTo ( const EvtVector4C e,
const EvtVector4R  p4 
) [friend]

Definition at line 55 of file EvtVector4C.cc.

00056                                          {
00057 
00058   EvtVector4C tmp(rs);
00059   tmp.applyBoostTo(p4);
00060   return tmp;
00061 
00062 }

EvtComplex operator * ( const EvtVector4C v1,
const EvtVector4C v2 
) [friend]

Definition at line 200 of file EvtVector4C.hh.

00200                                                                         {
00201  
00202   return v1.v[0]*v2.v[0]-v1.v[1]*v2.v[1]-
00203          v1.v[2]*v2.v[2]-v1.v[3]*v2.v[3];
00204 }

EvtComplex operator * ( const EvtVector4C v1,
const EvtVector4R v2 
) [friend]

Definition at line 194 of file EvtVector4C.hh.

00194                                                                         {
00195  
00196   return v1.v[0]*v2.get(0)-v1.v[1]*v2.get(1)-
00197          v1.v[2]*v2.get(2)-v1.v[3]*v2.get(3);
00198 }

EvtComplex operator * ( const EvtVector4R v1,
const EvtVector4C v2 
) [friend]

Definition at line 188 of file EvtVector4C.hh.

00188                                                                         {
00189  
00190   return v1.get(0)*v2.v[0]-v1.get(1)*v2.v[1]-
00191          v1.get(2)*v2.v[2]-v1.get(3)*v2.v[3];
00192 }

EvtVector4C operator * ( const EvtComplex c,
const EvtVector4R v2 
) [friend]

Definition at line 177 of file EvtVector4C.hh.

00177                                                                        {
00178 
00179   return EvtVector4C(c*v2.get(0),c*v2.get(1),c*v2.get(2),c*v2.get(3));
00180 }

EvtVector4C operator * ( const EvtVector4C v2,
const EvtComplex c 
) [friend]

Definition at line 172 of file EvtVector4C.hh.

00172                                                                        {
00173 
00174   return EvtVector4C(v2)*=c;
00175 }

EvtVector4C operator * ( const EvtComplex c,
const EvtVector4C v2 
) [friend]

Definition at line 167 of file EvtVector4C.hh.

00167                                                                        {
00168 
00169   return EvtVector4C(v2)*=c;
00170 }

EvtVector4C operator * ( double  d,
const EvtVector4C v2 
) [friend]

Definition at line 162 of file EvtVector4C.hh.

00162                                                             {
00163 
00164   return EvtVector4C(v2.v[0]*d,v2.v[1]*d,v2.v[2]*d,v2.v[3]*d);
00165 }

EvtVector4C operator+ ( const EvtVector4C v1,
const EvtVector4C v2 
) [friend]

Definition at line 136 of file EvtVector4C.hh.

00136                                                                           {
00137 
00138   return EvtVector4C(v1)+=v2;
00139 }

EvtVector4C operator- ( const EvtVector4C v1,
const EvtVector4C v2 
) [friend]

Definition at line 141 of file EvtVector4C.hh.

00141                                                                           {
00142 
00143   return EvtVector4C(v1)-=v2;
00144 }

std::ostream& operator<< ( std::ostream s,
const EvtVector4C v 
) [friend]

EvtVector4C rotateEuler ( const EvtVector4C e,
double  alpha,
double  beta,
double  gamma 
) [friend]

Definition at line 46 of file EvtVector4C.cc.

00047                                                               {
00048 
00049   EvtVector4C tmp(rs);
00050   tmp.applyRotateEuler(alpha,beta,gamma);
00051   return tmp;
00052 
00053 }


Member Data Documentation

EvtComplex EvtVector4C::v[4] [private]

Definition at line 75 of file EvtVector4C.hh.

Referenced by applyBoostTo(), applyRotateEuler(), conj(), cont(), EvtVector4C(), get(), operator *(), operator *=(), operator+=(), operator-=(), operator=(), set(), and vec().


Generated on Tue Nov 29 23:19:29 2016 for BOSS_7.0.2 by  doxygen 1.4.7