00001 #ifndef EMCSHOWER_H 00002 #define EMCSHOWER_H 00003 00004 #include <list> 00005 #include "EmcBhaCalib/EmcShDigi.h" 00006 #include "CLHEP/Geometry/Point3D.h" 00007 #ifndef ENABLE_BACKWARDS_COMPATIBILITY 00008 typedef HepGeom::Point3D<double> HepPoint3D; 00009 #endif 00010 00011 using namespace std; 00012 //------------------------------------ 00013 // Collaborating Class Declarations -- 00014 //------------------------------------ 00015 00016 class EmcShower 00017 { 00018 public: 00019 00020 // Constructors 00021 EmcShower(); 00022 00023 // Destructors 00024 ~EmcShower(); 00025 00026 //Copy and assignment 00027 EmcShower(const EmcShower& aShower); 00028 EmcShower& operator=(const EmcShower& aShower); 00029 00030 // Operators 00031 bool operator==(const EmcShower & otherShower) const; 00032 bool operator!=(const EmcShower & otherShower) const; 00033 bool operator>=(const EmcShower & otherShower) const; 00034 bool operator<=(const EmcShower & otherShower) const; 00035 bool operator>(const EmcShower & otherShower) const; 00036 bool operator<(const EmcShower & otherShower) const; 00037 00038 const double& energy() const {return m_energy;} 00039 const double& theta() const {return m_theta;} 00040 const double& phi() const {return m_phi;} 00041 const unsigned int& module() const {return m_module;} 00042 const unsigned int& thetaIndex() const {return m_thetaIndex;} 00043 const unsigned int& phiIndex() const {return m_phiIndex;} 00044 const long int& numberOfDigis() const {return m_numberOfDigis;} 00045 const std::list<EmcShDigi> digiList() const {return m_digiList;} 00046 const EmcShDigi maxima() const { return m_maxima;} 00047 const HepPoint3D& where() const {return m_where;} 00048 const double& x() const {return m_x;} 00049 const double& y() const {return m_y;} 00050 const double& z() const {return m_z;} 00051 00052 // Modifiers 00053 void addDigi( EmcShDigi d ); 00054 00055 void setEnergy(double energy) {m_energy = energy;} 00056 void setTheta(double theta) {m_theta = theta;} 00057 void setPhi(double phi) {m_phi = phi;} 00058 void setModule(unsigned int module) {m_module = module;} 00059 void setThetaIndex(unsigned int thetaIndex) {m_thetaIndex = thetaIndex;} 00060 void setPhiIndex(unsigned int phiIndex) {m_phiIndex = phiIndex;} 00061 void setNumberOfDigis(long int numberOfDigis ) {m_numberOfDigis = numberOfDigis;} 00062 void setDigiList(std::list<EmcShDigi> digiList) {m_digiList = digiList;} 00063 void setMaxima( EmcShDigi maxima) {m_maxima = maxima;} 00064 void setWhere(HepPoint3D where) {m_where = where;} 00065 void setX(double x) {m_x = x;} 00066 void setY(double y) {m_y = y;} 00067 void setZ(double z) {m_z = z;} 00068 00069 private: 00070 00071 double m_energy; 00072 double m_theta; 00073 double m_phi; 00074 unsigned int m_module; 00075 unsigned int m_thetaIndex; 00076 unsigned int m_phiIndex; 00077 long int m_numberOfDigis; 00078 EmcShDigi m_maxima; 00079 std::list<EmcShDigi> m_digiList; 00080 HepPoint3D m_where; 00081 double m_x; 00082 double m_y; 00083 double m_z; 00084 }; 00085 00086 00087 inline bool EmcShower::operator!=(const EmcShower& otherShower) const { 00088 return !(*this == otherShower); 00089 } 00090 00091 #endif // EMCSHOWER_H 00092