00001 #ifndef EMCSHDIGI_H 00002 #define EMCSHDIGI_H 00003 00004 #include "CLHEP/Geometry/Point3D.h" 00005 #ifndef ENABLE_BACKWARDS_COMPATIBILITY 00006 typedef HepGeom::Point3D<double> HepPoint3D; 00007 #endif 00008 00009 class EmcShDigi 00010 { 00011 public: 00012 00013 // Constructors 00014 EmcShDigi(); 00015 00016 // Destructors 00017 ~EmcShDigi(); 00018 00019 //Copy and assignment 00020 EmcShDigi(const EmcShDigi& aDigi); 00021 EmcShDigi& operator=(const EmcShDigi& aDigi); 00022 00023 // Operators 00024 bool operator==(const EmcShDigi & otherDigi) const; 00025 bool operator!=(const EmcShDigi & otherDigi) const; 00026 bool operator>=(const EmcShDigi & otherDigi) const; 00027 bool operator<=(const EmcShDigi & otherDigi) const; 00028 bool operator> (const EmcShDigi & otherDigi) const; 00029 bool operator< (const EmcShDigi & otherDigi) const; 00030 00031 const double& energy() const {return m_energy;} 00032 const double& theta() const {return m_theta;} 00033 const double& phi() const {return m_phi;} 00034 const unsigned int& module() const {return m_module;} 00035 const unsigned int& thetaIndex() const {return m_thetaIndex;} 00036 const unsigned int& phiIndex() const {return m_phiIndex;} 00037 const double& time() const {return m_time;} 00038 const double& fraction() const {return m_fraction;} 00039 const HepPoint3D& where() const {return m_where;} 00040 const double& x() const {return m_x;} 00041 const double& y() const {return m_y;} 00042 const double& z() const {return m_z;} 00043 00044 void setEnergy(double energy) {m_energy = energy;} 00045 void setTheta(double theta) {m_theta = theta;} 00046 void setPhi(double phi) {m_phi = phi;} 00047 void setModule(unsigned int module) {m_module = module;} 00048 void setThetaIndex(unsigned int thetaIndex) {m_thetaIndex = thetaIndex;} 00049 void setPhiIndex(unsigned int phiIndex) {m_phiIndex = phiIndex;} 00050 void setTime(double time ) {m_time = time;} 00051 void setFraction(double fraction ) {m_fraction = fraction;} 00052 void setWhere(HepPoint3D where) {m_where = where;} 00053 void setX(double x) {m_x = x;} 00054 void setY(double y) {m_y = y;} 00055 void setZ(double z) {m_z = z;} 00056 00057 private: 00058 00059 double m_energy; 00060 double m_theta; 00061 double m_phi; 00062 unsigned int m_module; 00063 unsigned int m_thetaIndex; 00064 unsigned int m_phiIndex; 00065 double m_time; 00066 double m_fraction; 00067 HepPoint3D m_where; 00068 double m_x; 00069 double m_y; 00070 double m_z; 00071 }; 00072 00073 00074 inline bool EmcShDigi::operator!=(const EmcShDigi& otherDigi) const { 00075 return !(*this == otherDigi); 00076 } 00077 00078 #endif // EMCSHDIGI_H 00079