EvtVector3R Class Reference

#include <EvtVector3R.hh>

List of all members.

Public Member Functions

 EvtVector3R ()
 EvtVector3R (double x, double y, double z)
virtual ~EvtVector3R ()
EvtVector3Roperator *= (const double c)
EvtVector3Roperator/= (const double c)
EvtVector3Roperator+= (const EvtVector3R &v2)
EvtVector3Roperator-= (const EvtVector3R &v2)
void set (int i, double d)
void set (double x, double y, double z)
void applyRotateEuler (double phi, double theta, double ksi)
double get (int i) const
double dot (const EvtVector3R &v2)
double d3mag () const

Private Attributes

double v [3]

Friends

EvtVector3R rotateEuler (const EvtVector3R &v, double phi, double theta, double ksi)
EvtVector3R operator * (double c, const EvtVector3R &v2)
double operator * (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator+ (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator- (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator * (const EvtVector3R &v1, double c)
EvtVector3R operator/ (const EvtVector3R &v1, double c)
EvtVector3R cross (const EvtVector3R &v1, const EvtVector3R &v2)
std::ostreamoperator<< (std::ostream &s, const EvtVector3R &v)


Detailed Description

Definition at line 28 of file EvtVector3R.hh.


Constructor & Destructor Documentation

EvtVector3R::EvtVector3R (  ) 

Definition at line 32 of file EvtVector3R.cc.

References v.

00032                         {
00033   
00034   v[0]=v[1]=v[2]=0.0;
00035 }

EvtVector3R::EvtVector3R ( double  x,
double  y,
double  z 
)

Definition at line 38 of file EvtVector3R.cc.

References v.

00038                                                    {
00039   
00040   v[0]=x; v[1]=y; v[2]=z;
00041 }

EvtVector3R::~EvtVector3R (  )  [virtual]

Definition at line 30 of file EvtVector3R.cc.

00030 {}


Member Function Documentation

void EvtVector3R::applyRotateEuler ( double  phi,
double  theta,
double  ksi 
)

Definition at line 53 of file EvtVector3R.cc.

References cos(), sin(), subSeperate::temp, and v.

Referenced by rotateEuler().

00053                                                                     {
00054 
00055   double temp[3];
00056   double sp,st,sk,cp,ct,ck;
00057 
00058   sp=sin(phi);
00059   st=sin(theta);
00060   sk=sin(ksi);
00061   cp=cos(phi);
00062   ct=cos(theta);
00063   ck=cos(ksi);
00064 
00065   temp[0]=( ck*ct*cp-sk*sp)*v[0]+( -sk*ct*cp-ck*sp)*v[1]+st*cp*v[2];
00066   temp[1]=( ck*ct*sp+sk*cp)*v[0]+(-sk*ct*sp+ck*cp)*v[1]+st*sp*v[2];
00067   temp[2]=-ck*st*v[0]+sk*st*v[1]+ct*v[2];
00068 
00069 
00070   v[0]=temp[0];
00071   v[1]=temp[1];
00072   v[2]=temp[2];
00073 }

double EvtVector3R::d3mag (  )  const

Definition at line 95 of file EvtVector3R.cc.

References subSeperate::temp, and v.

Referenced by EvtEulerAngles::EulerAngles().

00098 {
00099   double temp;
00100 
00101   temp = v[0]*v[0]+v[1]*v[1]+v[2]*v[2];
00102   temp = sqrt( temp );
00103 
00104   return temp;
00105 } // r3mag

double EvtVector3R::dot ( const EvtVector3R v2  ) 

Definition at line 107 of file EvtVector3R.cc.

References subSeperate::temp, and v.

00107                                                {
00108 
00109   double temp;
00110 
00111   temp = v[0]*p2.v[0];
00112   temp += v[1]*p2.v[1];  //2010-2-22,pingrg: corrected 
00113   temp += v[2]*p2.v[2];  
00114  
00115   return temp;
00116 } //dot

double EvtVector3R::get ( int  i  )  const [inline]

Definition at line 126 of file EvtVector3R.hh.

References v.

Referenced by EvtVector4R::applyBoostTo(), EvtVector4C::applyBoostTo(), EvtTensor4C::applyBoostTo(), EvtDiracSpinor::applyBoostTo(), directProd(), EvtEulerAngles::EulerAngles(), EvtVector3C::EvtVector3C(), and operator *().

00126                                           {
00127   return v[i];
00128 }

EvtVector3R & EvtVector3R::operator *= ( const double  c  )  [inline]

Definition at line 63 of file EvtVector3R.hh.

References v.

00063                                                          {
00064 
00065   v[0]*=c;
00066   v[1]*=c;
00067   v[2]*=c;
00068   return *this;
00069 }

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

Definition at line 79 of file EvtVector3R.hh.

References v.

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

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

Definition at line 87 of file EvtVector3R.hh.

References v.

00087                                                                 {
00088 
00089   v[0]-=v2.v[0];
00090   v[1]-=v2.v[1];
00091   v[2]-=v2.v[2];
00092   return *this;
00093 }

EvtVector3R & EvtVector3R::operator/= ( const double  c  )  [inline]

Definition at line 71 of file EvtVector3R.hh.

References v.

00071                                                          {
00072 
00073   v[0]/=c;
00074   v[1]/=c;
00075   v[2]/=c;
00076   return *this;
00077 }

void EvtVector3R::set ( double  x,
double  y,
double  z 
) [inline]

Definition at line 135 of file EvtVector3R.hh.

References v.

00135                                                        {
00136 
00137   v[0]=x;
00138   v[1]=y;
00139   v[2]=z;
00140 }

void EvtVector3R::set ( int  i,
double  d 
) [inline]

Definition at line 130 of file EvtVector3R.hh.

References v.

Referenced by EvtEulerAngles::EvtEulerAngles().

00130                                           {
00131   
00132   v[i]=d;
00133 }


Friends And Related Function Documentation

EvtVector3R cross ( const EvtVector3R v1,
const EvtVector3R v2 
) [friend]

Definition at line 84 of file EvtVector3R.cc.

00084                                                                 {
00085 
00086   //Calcs the cross product.  Added by djl on July 27, 1995.
00087   //Modified for real vectros by ryd Aug 28-96
00088 
00089   return EvtVector3R(p1.v[1]*p2.v[2] - p1.v[2]*p2.v[1],
00090                      p1.v[2]*p2.v[0] - p1.v[0]*p2.v[2],
00091                      p1.v[0]*p2.v[1] - p1.v[1]*p2.v[0]);
00092 
00093 }

EvtVector3R operator * ( const EvtVector3R v1,
double  c 
) [friend]

Definition at line 100 of file EvtVector3R.hh.

00100                                                             {
00101   
00102   return EvtVector3R(v1)*=c;
00103 }

double operator * ( const EvtVector3R v1,
const EvtVector3R v2 
) [friend]

Definition at line 110 of file EvtVector3R.hh.

00110                                                                     {
00111 
00112   return v1.v[0]*v2.v[0]+v1.v[1]*v2.v[1]+v1.v[2]*v2.v[2];
00113 }

EvtVector3R operator * ( double  c,
const EvtVector3R v2 
) [friend]

Definition at line 95 of file EvtVector3R.hh.

00095                                                             {
00096   
00097   return EvtVector3R(v2)*=c;
00098 }

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

Definition at line 115 of file EvtVector3R.hh.

00115                                                                           {
00116   
00117   return EvtVector3R(v1)+=v2; 
00118 }

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

Definition at line 120 of file EvtVector3R.hh.

00120                                                                           {
00121   
00122   return EvtVector3R(v1)-=v2; 
00123 
00124 }

EvtVector3R operator/ ( const EvtVector3R v1,
double  c 
) [friend]

Definition at line 105 of file EvtVector3R.hh.

00105                                                             {
00106 
00107   return EvtVector3R(v1)/=c; 
00108 }

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

EvtVector3R rotateEuler ( const EvtVector3R v,
double  phi,
double  theta,
double  ksi 
) [friend]

Definition at line 43 of file EvtVector3R.cc.

00044                                                               {
00045 
00046   EvtVector3R tmp(v);
00047   tmp.applyRotateEuler(alpha,beta,gamma);
00048   return tmp;
00049 
00050 }


Member Data Documentation

double EvtVector3R::v[3] [private]

Definition at line 59 of file EvtVector3R.hh.

Referenced by applyRotateEuler(), cross(), d3mag(), dot(), EvtVector3R(), get(), operator *(), operator *=(), operator+=(), operator-=(), operator/=(), and set().


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