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) 1998 Caltech, UCSB 00010 // 00011 // Module: EvtGen/EvtDiracParticle.hh 00012 // 00013 // Description:EvtDiracParticle particles i.e. spin 1/2 particles. 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD September 25, 1996 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 00021 #ifndef EVTDIRACPARTICLE_HH 00022 #define EVTDIRACPARTICLE_HH 00023 00024 #include "EvtGenBase/EvtDiracSpinor.hh" 00025 #include "EvtGenBase/EvtParticle.hh" 00026 //#include "EvtGenBase/EvtId.hh" 00027 00028 class EvtId; 00029 class EvtVector4R; 00030 00031 class EvtDiracParticle:public EvtParticle { 00032 00033 public: 00034 00035 00036 EvtDiracParticle(); 00037 virtual ~EvtDiracParticle(); 00038 void init(EvtId part_n,const EvtVector4R& p4); 00039 EvtDiracSpinor spParent(int i) const {return _spinorParent[i];} 00040 EvtDiracSpinor sp(int i) const {return _spinorRest[i];} 00041 EvtSpinDensity rotateToHelicityBasis() const; 00042 EvtSpinDensity rotateToHelicityBasis(double alpha, 00043 double beta, 00044 double gamma) const; 00045 00046 private: 00047 00048 EvtDiracSpinor _spinorRest[2]; 00049 EvtDiracSpinor _spinorParent[2]; 00050 EvtDiracParticle(const EvtDiracParticle& d); 00051 EvtDiracParticle& operator=(const EvtDiracParticle& d); 00052 00053 }; 00054 #endif 00055