00001 00002 #ifndef DETECTOR_HH 00003 #define DETECTOR_HH 00004 00005 ////////////////////////////////////////////////////////////////////////// 00006 // // 00007 // Detector for MICROMEGAS READOUT // 00008 // // 00009 ////////////////////////////////////////////////////////////////////////// 00010 00011 #include "mTypes.h" 00012 class Chamber; 00013 class SteerDesc; 00014 00015 #include <string> 00016 #include <map> 00017 00018 ////////////////////////////////////////////////////////////////////////// 00019 /// Class Detector // 00020 ////////////////////////////////////////////////////////////////////////// 00021 class Detector { 00022 friend std::ostream& operator << (std::ostream& out, const Detector& x); 00023 public: 00024 Detector(); 00025 ~Detector(); 00026 std::ostream& operator << (std::ostream& out) const; 00027 00028 //------ methods --------// 00029 public: 00030 bool addChamber(Chamber *aChamber); 00031 // inline std::map<ui16 , Chamber *> getChambers(void) const { return chambers; }; 00032 inline ChamberMap_t getChambers(void) const { return chambers; }; 00033 Chamber& getChamberById(const i32 id) const; 00034 inline i64 getNumberOfChambers(void) const { return chambers.size() ; }; 00035 00036 unsigned int getNumberOfGaziplex96() const; // sum 1 per Gasiplex96 and 4 per gaziplex384 00037 void build(const SteerDesc& sd); 00038 00039 inline void setDescription(std::string aDesc ) { description = aDesc; }; 00040 00041 // ------ data member -------// 00042 private: 00043 std::string description; 00044 // std::map<ui16, Chamber *> chambers; 00045 ChamberMap_t chambers; 00046 }; 00047 00048 #endif