00001 #ifndef ROOT_MTChamber 00002 #define ROOT_MTChamber 00003 00004 00005 #include "TObject.h" 00006 #include "TClonesArray.h" 00007 #include "TRefArray.h" 00008 #include "TRef.h" 00009 #include "TH1.h" 00010 #include "TMath.h" 00011 #include <vector> 00012 #include <map> 00013 00014 class Chamber; 00015 //class MTDif; 00016 class MTBoard; 00017 00018 //////////////////////////////////////////////////////////////////////////////////////// 00019 /// CLASS MTChamber(containing chamber configuration) 00020 /////////////////////////////////////////////////////////////////////////////////////// 00021 class MTChamber : public TObject { 00022 00023 public: 00024 MTChamber( ); 00025 MTChamber(const Chamber& aChamber ); 00026 virtual ~MTChamber(); 00027 MTChamber& operator=(const Chamber& aChamber); 00028 void Info(void) const; 00029 00030 TString GetType() const { return type; } ; 00031 Int_t GetId() const { return id; } ; 00032 void SetId(UInt_t value) { id = value; } ; 00033 00034 // Dif configuration information 00035 // const std::map<UInt_t,MTDif*>& GetDifs(void) const { return difs; } ; 00036 // MTDif& GetDif(UInt_t id) const { return *(difs.find(id)->second); }; 00037 00038 // Board configuration information 00039 const std::map<UInt_t,MTBoard*>& GetBoards(void) const { return boards; } ; 00040 MTBoard& GetBoard(UInt_t id) const { return *(boards.find(id)->second); }; 00041 00042 const float GetXLength() const { return xLength; } ; 00043 const float GetYLength() const { return yLength; } ; 00044 00045 00046 const float GetLeftBottomX() const ; 00047 const float GetLeftBottomY() const ; 00048 const float GetRightUpperX() const ; 00049 const float GetRightUpperY() const ; 00050 00051 private: 00052 Int_t id; 00053 TString type; 00054 // Dif configuration information 00055 // std::map<UInt_t,MTDif*> difs; // Map key is dif id 00056 // Board configuration information 00057 std::map<UInt_t,MTBoard*> boards; // Map key is board id 00058 00059 float xPos, yPos, zPos; /** the chamber position **/ 00060 bool xRotation; 00061 bool yRotation; 00062 Int_t zRotation; 00063 00064 float xLength; 00065 float yLength; 00066 00067 00068 ClassDef(MTChamber, 30) //MTChamber structure 00069 }; 00070 00071 #endif