/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenBase/EvtRaritaSchwinger.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of the EvtGen package developed jointly
00005 //      for the BaBar and CLEO collaborations.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/COPYRIGHT
00009 //      Copyright (C) 2000      Caltech, UCSB
00010 //
00011 // Module: EvtGen/EvtRaritaSchwing.hh
00012 //
00013 // Description:Class to handle spin 3/2
00014 //
00015 // Modification history:
00016 //
00017 //    RYD     April 23, 2000         Module created
00018 //
00019 //------------------------------------------------------------------------
00020 
00021 #ifndef EVTRARITASCHWINGER_HH
00022 #define EVTRARITASCHWINGER_HH
00023 
00024 #include "EvtGenBase/EvtComplex.hh"
00025 #include "EvtGenBase/EvtVector4C.hh"
00026 #include "EvtGenBase/EvtVector4R.hh"
00027 #include "EvtGenBase/EvtDiracSpinor.hh"
00028 
00029 class EvtRaritaSchwinger ;
00030 EvtRaritaSchwinger rotateEuler(const EvtRaritaSchwinger& rs,
00031                                double alpha,double beta,double gamma);
00032 EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs,
00033                            const EvtVector4R p4);
00034 EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs,
00035                            const EvtVector3R boost);
00036 EvtRaritaSchwinger dirProd(EvtVector4R v,EvtDiracSpinor u);
00037 EvtRaritaSchwinger dirProd(EvtVector4C v,EvtDiracSpinor u);
00038 EvtRaritaSchwinger conj(const EvtRaritaSchwinger& u2);  //pangcy add 
00039 EvtRaritaSchwinger operator+(const EvtRaritaSchwinger& u1,
00040                              const EvtRaritaSchwinger& u2); 
00041 EvtRaritaSchwinger operator-(const EvtRaritaSchwinger& u1,
00042                              const EvtRaritaSchwinger& u2); 
00043 EvtComplex operator*(const EvtRaritaSchwinger& u1,
00044                      const EvtRaritaSchwinger& u2);
00045 
00046 //========================
00047 class EvtRaritaSchwinger{
00048 
00049   friend EvtRaritaSchwinger rotateEuler(const EvtRaritaSchwinger& rs,
00050                                         double alpha,double beta,double gamma);
00051   friend EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs,
00052                                     const EvtVector4R p4);
00053   friend EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs,
00054                                     const EvtVector3R boost);
00055 
00056   friend EvtRaritaSchwinger dirProd(EvtVector4R v,EvtDiracSpinor u);
00057   friend EvtRaritaSchwinger dirProd(EvtVector4C v,EvtDiracSpinor u);
00058   friend EvtRaritaSchwinger conj(const EvtRaritaSchwinger& u2);//pangcy add  
00059   friend EvtRaritaSchwinger operator+(const EvtRaritaSchwinger& u1,
00060                                   const EvtRaritaSchwinger& u2); 
00061   friend EvtRaritaSchwinger operator-(const EvtRaritaSchwinger& u1,
00062                                   const EvtRaritaSchwinger& u2); 
00063 
00064   friend EvtComplex operator*(const EvtRaritaSchwinger& u1,
00065                                   const EvtRaritaSchwinger& u2); 
00066 
00067 public:
00068 
00069   inline EvtRaritaSchwinger();
00070   virtual ~EvtRaritaSchwinger();
00071   inline EvtRaritaSchwinger(const EvtRaritaSchwinger& rs);
00072   inline EvtRaritaSchwinger& operator=(const EvtRaritaSchwinger& rs);
00073 
00074   void set(int i,int j,const EvtComplex& sp);
00075 //  inline const EvtComplex& get(int i, int j) const;  //pangcy add
00076 
00077   void applyRotateEuler(double alpha,double beta,double gamma);
00078   void applyBoostTo(const EvtVector4R p4);
00079   void applyBoostTo(const EvtVector3R boost);
00080   EvtRaritaSchwinger conj() const;   //pangcy add
00081 
00082   EvtRaritaSchwinger& operator+=(const EvtRaritaSchwinger& u2);
00083   EvtRaritaSchwinger& operator-=(const EvtRaritaSchwinger& u2);
00084 
00085   EvtComplex get(int i,int j) const; 
00086   friend std::ostream& operator<<(std::ostream& s, const EvtRaritaSchwinger& rs); 
00087 
00088   EvtVector4C getVector(int i) const;
00089   EvtDiracSpinor getSpinor(int i) const;
00090 
00091   void setVector(int i,const EvtVector4C& v);
00092   void setSpinor(int i,const EvtDiracSpinor& sp);
00093 
00094 
00095   
00096 private:
00097   
00098   //First index in spinor index, second is Lorentz index.
00099   EvtComplex _rs[4][4];
00100 
00101 };
00102 
00103 EvtRaritaSchwinger::EvtRaritaSchwinger(){
00104 
00105   int i,j;
00106   for(i=0;i<4;i++){
00107     for(j=0;j<4;j++){
00108       _rs[i][j]=0.0;
00109     }
00110   }
00111 
00112 }
00113 
00114 EvtRaritaSchwinger::EvtRaritaSchwinger(const EvtRaritaSchwinger& rs){
00115 
00116   int i,j;
00117   for(i=0;i<4;i++){
00118     for(j=0;j<4;j++){
00119       _rs[i][j]=rs._rs[i][j];
00120     }
00121   }
00122 
00123 }
00124 
00125 EvtRaritaSchwinger& EvtRaritaSchwinger::operator=(const EvtRaritaSchwinger& rs){
00126 
00127   int i,j;
00128   for(i=0;i<4;i++){
00129     for(j=0;j<4;j++){
00130       _rs[i][j]=rs._rs[i][j];
00131     }
00132   }
00133 
00134   return *this;
00135 
00136 }
00137 
00138 #endif
00139 
00140 

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