00001 #ifndef ROOT_MTDetector 00002 #define ROOT_MTDetector 00003 00004 00005 #include "TObject.h" 00006 #include "TClonesArray.h" 00007 #include <vector> 00008 #include <map> 00009 00010 class MTChamber; 00011 class Detector; 00012 00013 //////////////////////////////////////////////////////////////////////////////////////// 00014 /// CLASS MTDetector(containing detector indormations) 00015 //////////////////////////////////////////////////////////////////////////////////////// 00016 class MTDetector : public TObject { 00017 00018 public: 00019 MTDetector(); 00020 MTDetector(const Detector& aDetector); 00021 virtual ~MTDetector(); 00022 MTDetector& operator=(const Detector& aDetector); 00023 private: 00024 // Detector informations 00025 UInt_t id; // XML or in filename for XDaq 00026 TString name; // XML 00027 TString description; // XML 00028 00029 // Chamber configuration information 00030 std::map<UInt_t,MTChamber*> chambers; // Map key is dif id 00031 00032 public: 00033 00034 00035 UInt_t GetId(void) const { return id; } ; 00036 void SetId(UInt_t value) { id = value; } ; 00037 00038 TString GetDetectorName(void) const { return name; } ; 00039 void SeDetectortName(TString aValue) { name = aValue;}; 00040 00041 TString GetDescription(void) const { return description; } ; 00042 void SetDescription(TString aValue) { description = aValue;}; 00043 00044 // Chamber configuration information 00045 const std::map<UInt_t,MTChamber*>& GetChambers(void) { return chambers; } ; 00046 const MTChamber& GetChamber(UInt_t id) const { return *(chambers.find(id)->second); }; 00047 00048 void Info(void) const; 00049 00050 ClassDef(MTDetector, 34) //MTDetector structure 00051 }; 00052 00053 00054 #endif