00001 /* @version $Revision: 1703 $ * @modifiedby $Author: jacquem $ * @lastmodified $Date: 2012-05-03 10:11:12 +0200 (Thu, 03 May 2012) $ */ 00002 00003 #ifndef DETECTOR_HH 00004 #define DETECTOR_HH 00005 00006 ////////////////////////////////////////////////////////////////////////// 00007 // // 00008 // Detector for MICROMEGAS READOUT // 00009 // // 00010 ////////////////////////////////////////////////////////////////////////// 00011 00012 #include "mTypes.h" 00013 //#include "SteerDesc.hh" 00014 class Chamber; 00015 class SteerDesc; 00016 00017 #include <string> 00018 #include <map> 00019 00020 ////////////////////////////////////////////////////////////////////////// 00021 /// Class Detector // 00022 ////////////////////////////////////////////////////////////////////////// 00023 class Detector { 00024 friend std::ostream& operator << (std::ostream& out, const Detector& x); 00025 public: 00026 Detector(); 00027 ~Detector(); 00028 std::ostream& operator << (std::ostream& out) const; 00029 00030 //------ methods --------// 00031 public: 00032 bool addChamber(Chamber *aChamber); 00033 // inline std::map<ui16 , Chamber *> getChambers(void) const { return chambers; }; 00034 inline ChamberMap_t getChambers(void) const { return chambers; }; 00035 Chamber& getChamberById(const i32 id) const; 00036 inline i64 getNumberOfChambers(void) const { return chambers.size() ; }; 00037 Dif& getDifById(const i32 _id) const; 00038 00039 unsigned int getNumberOfGaziplex96() const; // sum 1 per Gasiplex96 and 4 per gaziplex384 00040 int build(const SteerDesc& sd); // return number of created Chambers 00041 00042 inline void setDescription(std::string aDesc ) { description = aDesc; }; 00043 inline std::string getDescription(void ) const { return description; }; 00044 00045 inline void setName(std::string aName ) { name = aName; }; 00046 inline std::string getName(void ) const { return name; }; 00047 00048 //inline const MonitoringDevice &getMonitoringDevice(void) const; 00049 00050 inline ui16 getMonitoringId(void) const { return monDev; } ; 00051 00052 00053 // ------ data member -------// 00054 private: 00055 std::string name; 00056 std::string description; 00057 // std::map<ui16, Chamber *> chambers; 00058 ChamberMap_t chambers; // ChamberMap_t <=> std::map<i32, Chamber *> 00059 ui16 monDev; // Used for monitoring device 00060 }; 00061 00062 #endif