LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenBase - EvtDiracSpinor.hh (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 15 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 5 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : //
       3             : // Environment:
       4             : //      This software is part of the EvtGen package developed jointly
       5             : //      for the BaBar and CLEO collaborations.  If you use all or part
       6             : //      of it, please give an appropriate acknowledgement.
       7             : //
       8             : // Copyright Information: See EvtGen/COPYRIGHT
       9             : //      Copyright (C) 1998      Caltech, UCSB
      10             : //
      11             : // Module: EvtGen/EvtDiracSpinor.hh
      12             : //
      13             : // Description:Class to manipulate dirac spinors
      14             : //
      15             : // Modification history:
      16             : //
      17             : //    DJL/RYD     September 25, 1996         Module created
      18             : //
      19             : //------------------------------------------------------------------------
      20             : 
      21             : #ifndef EVTDIRACSPINOR_HH
      22             : #define EVTDIRACSPINOR_HH
      23             : 
      24             : #include "EvtGenBase/EvtComplex.hh"
      25             : #include "EvtGenBase/EvtVector4R.hh"
      26             : #include "EvtGenBase/EvtVector3R.hh"
      27             : 
      28             : class EvtTensor4C;
      29             : class EvtVector4C;
      30             : class EvtDiracSpinor ;
      31             : 
      32             : 
      33             : class EvtDiracSpinor {
      34             : 
      35             :   friend EvtDiracSpinor rotateEuler(const EvtDiracSpinor& sp,
      36             :                                  double alpha,double beta,double gamma);
      37             :   friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp,
      38             :                              const EvtVector4R p4);
      39             :   friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp,
      40             :                              const EvtVector3R boost);  
      41             :   friend EvtVector4C EvtLeptonVACurrent
      42             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      43             :   friend EvtVector4C EvtLeptonVCurrent 
      44             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      45             :   friend EvtVector4C EvtLeptonACurrent 
      46             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      47             :   friend EvtComplex  EvtLeptonSCurrent 
      48             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      49             :   friend EvtComplex  EvtLeptonPCurrent 
      50             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      51             :   friend EvtTensor4C  EvtLeptonTCurrent 
      52             :         (const EvtDiracSpinor& d,const EvtDiracSpinor& dp);
      53             :   friend EvtDiracSpinor operator+(const EvtDiracSpinor& u1,
      54             :                                   const EvtDiracSpinor& u2); 
      55             :   friend EvtDiracSpinor operator-(const EvtDiracSpinor& u1,
      56             :                                   const EvtDiracSpinor& u2); 
      57             :   friend EvtDiracSpinor operator*(const EvtComplex& c,
      58             :                                   const EvtDiracSpinor& d);
      59             : 
      60             :   friend EvtComplex operator*(const EvtDiracSpinor& d ,
      61             :                               const EvtDiracSpinor& dp ) ;
      62             :  
      63             :   friend std::ostream& operator<<(std::ostream& s, const EvtDiracSpinor& c);  
      64             : 
      65             : public:
      66             : 
      67             :   inline EvtDiracSpinor();
      68             :   EvtDiracSpinor(const EvtComplex& sp0,const EvtComplex& sp1,
      69             :                  const EvtComplex& sp2,const EvtComplex& sp3);
      70             :   virtual ~EvtDiracSpinor();
      71             :   inline EvtDiracSpinor(const EvtDiracSpinor& dspinor);
      72             :   inline EvtDiracSpinor& operator=(const EvtDiracSpinor& dspinor);
      73             : 
      74             :   inline EvtDiracSpinor& operator+=(const EvtDiracSpinor& u2);
      75             :   inline EvtDiracSpinor& operator-=(const EvtDiracSpinor& u2);
      76             : 
      77             :   void set(const EvtComplex& sp0,const EvtComplex& sp1,
      78             :            const EvtComplex& sp2,const EvtComplex& sp3);
      79             :   void set_spinor(int i,const EvtComplex& sp);
      80             :   const EvtComplex& get_spinor(int i) const; 
      81             :   EvtDiracSpinor conj() const;
      82             :   void applyRotateEuler(double alpha,double beta,double gamma);
      83             :   void applyBoostTo(const EvtVector4R& p4);
      84             :   void applyBoostTo(const EvtVector3R& boost);
      85             :   EvtDiracSpinor adjoint() const;
      86             :   
      87             : private:
      88             : 
      89             :   EvtComplex spinor[4];
      90             : 
      91             : };
      92             : 
      93           0 : EvtDiracSpinor::EvtDiracSpinor(){
      94             : 
      95           0 :   spinor[0]=EvtComplex(); spinor[1]=EvtComplex();
      96           0 :   spinor[2]=EvtComplex(); spinor[3]=EvtComplex();
      97             : 
      98           0 : }
      99             : 
     100           0 : EvtDiracSpinor::EvtDiracSpinor(const EvtDiracSpinor& dspinor){
     101             : 
     102           0 :   spinor[0]=dspinor.spinor[0];
     103           0 :   spinor[1]=dspinor.spinor[1];
     104           0 :   spinor[2]=dspinor.spinor[2];
     105           0 :   spinor[3]=dspinor.spinor[3];
     106             : 
     107           0 : }
     108             : 
     109             : EvtDiracSpinor& EvtDiracSpinor::operator=(const EvtDiracSpinor& dspinor){
     110             : 
     111           0 :   spinor[0]=dspinor.spinor[0];
     112           0 :   spinor[1]=dspinor.spinor[1];
     113           0 :   spinor[2]=dspinor.spinor[2];
     114           0 :   spinor[3]=dspinor.spinor[3];
     115             : 
     116           0 :   return *this;
     117             : 
     118             : }
     119             : 
     120             : inline EvtDiracSpinor& EvtDiracSpinor::operator+=(const EvtDiracSpinor& u2){
     121             : 
     122             :   spinor[0]+=u2.spinor[0];
     123             :   spinor[1]+=u2.spinor[1];
     124             :   spinor[2]+=u2.spinor[2];
     125             :   spinor[3]+=u2.spinor[3];
     126             :   
     127             :   return *this; 
     128             : }
     129             : 
     130             : inline EvtDiracSpinor operator+(const EvtDiracSpinor& u1,
     131             :                                 const EvtDiracSpinor& u2){
     132             :   
     133             :   return EvtDiracSpinor(u1)+=u2;
     134             : 
     135             : }
     136             : 
     137             : inline EvtDiracSpinor& EvtDiracSpinor::operator-=(const EvtDiracSpinor& u2){
     138             : 
     139             :   spinor[0]-=u2.spinor[0];
     140             :   spinor[1]-=u2.spinor[1];
     141             :   spinor[2]-=u2.spinor[2];
     142             :   spinor[3]-=u2.spinor[3];
     143             :   
     144             :   return *this; 
     145             : }
     146             : 
     147             : inline EvtDiracSpinor operator-(const EvtDiracSpinor& u1,
     148             :                                 const EvtDiracSpinor& u2){
     149             :   
     150             :   return EvtDiracSpinor(u1)-=u2;
     151             : 
     152             : }
     153             : 
     154             : #endif
     155             : 
     156             : 

Generated by: LCOV version 1.11