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/EvtPhotonParticle.hh 00012 // 00013 // Description:Class to describe photons 00014 // 00015 // Modification history: 00016 // 00017 // DJL/RYD Sept. 25, 1996 Module created 00018 // 00019 //------------------------------------------------------------------------ 00020 00021 #ifndef EVTPHOTONPARTICLE_HH 00022 #define EVTPHOTONPARTICLE_HH 00023 00024 #include "EvtGenBase/EvtVector4C.hh" 00025 #include "EvtGenBase/EvtParticle.hh" 00026 //#include "EvtGenBase/EvtId.hh" 00027 class EvtId; 00028 00029 //Class to handle massless spin 1 particles. 00030 00031 class EvtPhotonParticle: public EvtParticle { 00032 00033 public: 00034 00035 EvtPhotonParticle(){} 00036 virtual ~EvtPhotonParticle(); 00037 00038 void init(EvtId part_n,double e,double px,double py,double pz); 00039 void init(EvtId part_n,const EvtVector4R& p4); 00040 00041 //Return polarization vectors 00042 EvtVector4C epsParentPhoton(int i); 00043 EvtVector4C epsPhoton(int i); 00044 00045 00046 EvtSpinDensity rotateToHelicityBasis() const; 00047 EvtSpinDensity rotateToHelicityBasis(double alpha, 00048 double beta, 00049 double gamma) const; 00050 00051 private: 00052 00053 EvtVector4C eps1,eps2; 00054 int _evalBasis; 00055 00056 EvtPhotonParticle(const EvtPhotonParticle& photon); 00057 EvtPhotonParticle& operator=(const EvtPhotonParticle& photon); 00058 00059 }; 00060 00061 #endif 00062