00001 00002 #ifndef _Q_TOWER_HH_ 00003 #define _Q_TOWER_HH_ 00004 00005 #include <map> 00006 #include <string> 00007 00008 #include "QGeomVector.hh" 00009 00010 class QCrystal; 00011 class QError; 00012 00018 class QTower 00019 { 00020 public: 00021 00023 QTower(); 00024 00026 virtual ~QTower(); 00027 00036 const QGeomVector& GetPosition() const { return fPosition; } 00037 00043 bool AddCrystal(int channel, const QCrystal& crystal); 00044 00049 const QCrystal* GetCrystal(int channel) const; 00050 00052 const std::map<int,QCrystal>& GetCrystals() const { return fCrystals; } 00053 00065 QError LoadMap(const std::string& fileName); 00066 00067 private: 00068 std::map<int,QCrystal> fCrystals; 00069 00071 QGeomVector fPosition; 00072 00102 QError LoadFromFile(const std::string& fileName); 00103 00105 QError LoadFromDb(); 00106 }; 00107 #endif