00001 #ifndef XANACluster_h 00002 #define XANACluster_h 00003 00011 #include <CLHEP/Geometry/Point3D.h> 00012 #include <TObject.h> 00013 #include <TClonesArray.h> 00014 #include <TRefArray.h> 00015 #include <TRef.h> 00016 #include <Rtypes.h> 00017 #include <vector> 00018 #include <string> 00019 00020 class XANACaloRecHit; 00021 class XANASuperCluster; 00022 00023 using namespace HepGeom; 00024 00025 class XANACluster : public TObject { 00026 00027 public: 00028 00029 XANACluster(); 00031 XANACluster(Float_t energy, HepPoint3D position); 00032 XANACluster(const XANACluster &right); 00033 virtual ~XANACluster(); 00034 00035 // data access methods 00036 Float_t getEnergy() const {return energy_;} 00037 HepPoint3D getPosition() const {return position_;} 00038 Short_t getNumberOfRecHits() const {return numberOfRecHits_;} 00039 TRefArray *getEmClusterHits() const { return recHits_; } 00040 00041 // set methods 00042 void setEnergy(Float_t energy) {energy_=energy;} 00043 void setPosition(HepPoint3D position) {position_=position;} 00044 void setNumberOfRecHits(Short_t numberOfRecHits) {numberOfRecHits_=numberOfRecHits;} 00045 00046 // relationships 00047 void addHit(XANACaloRecHit *rhit); 00048 void clear(); 00049 00051 Bool_t IsUsed() const {return locked_;} 00052 00053 // operators 00054 const XANACluster & operator=(const XANACluster &right); 00055 Bool_t operator==(const XANACluster&) const; 00056 Bool_t operator<(const XANACluster&) const; 00057 00058 00059 protected: 00060 00062 Float_t energy_; 00064 HepPoint3D position_; 00066 Short_t numberOfRecHits_; 00068 TRefArray *recHits_; // 00069 00070 void lock() {locked_ = true;} 00071 void unlock() { locked_ = false;} 00072 00073 00074 private: 00075 00076 Bool_t locked_; 00077 00078 ClassDef(XANACluster,1) 00079 00080 }; 00081 00082 #endif 00083 00084 00085 00086 00087 00088 00089