00001 00002 #ifndef CALGEOMETRYSVC_H 00003 #define CALGEOMETRYSVC_H 1 00004 00005 #include "GaudiKernel/Service.h" 00006 #include "CalRecon/ICalGeometrySvc.h" 00007 00008 00009 //---------------------------------------------- 00010 // 00011 // CalGeometrySvc 00012 // 00013 // It stores the calorimeter geometry. 00014 // 00015 // A.Chekhtman, NRL, 3/30/01 00016 // 00017 // 00018 00019 00020 00021 00022 00023 00024 //########################################################## 00025 class CalGeometrySvc : public Service , virtual public ICalGeometrySvc 00026 //########################################################## 00027 { 00028 public: 00029 00030 00032 CalGeometrySvc(const std::string& name, ISvcLocator* pSvcLocator); 00033 virtual ~CalGeometrySvc() {} 00034 00035 StatusCode initialize(); 00036 StatusCode finalize(); 00037 00038 00039 00040 int numModulesX() {return m_nmodx;} 00041 int numModulesY() {return m_nmody;} 00042 int numViews() {return m_nviews;} 00043 int numLayers() {return m_nlayers;} 00044 int numLogs() {return m_nLogs;} 00045 00046 double moduleWidth() {return m_modWidth;} 00047 double Z0() {return m_Z0;} 00048 double layerWidth() {return m_layerWidth;} 00049 double layerHeight() {return m_layerHeight;} 00050 00051 double logWidth() {return m_logWidth;} 00052 double logHeight() {return m_logHeight;} 00053 double logLength() {return m_logLength;} 00054 double logGap() {return m_logGap;} 00055 double light_att() {return m_latt;} 00056 00057 CalDetGeo getLayer(int ilayer, CalDetGeo::axis a); 00058 CalDetGeo getLog(int ilayer, CalDetGeo::axis a, int ilog); 00059 CalDetGeo getLog(int ilayer, CalDetGeo::axis a, int ilog, idents::ModuleId mod); 00060 00062 StatusCode queryInterface(const IID& riid, void** ppvUnknown); 00063 00065 const IID& type() const; 00066 00067 static const InterfaceID& interfaceID() { return ICalGeometrySvc::interfaceID(); } 00068 00069 00070 00071 private: 00072 00073 int m_geoType; 00074 int m_balloonFlight; 00075 00076 int m_nmodx; 00077 int m_nmody; 00078 int m_nviews; 00079 int m_nlayers; 00080 int m_nLogs; 00081 00082 double m_modWidth; 00083 00084 double m_Z0; 00085 00086 double m_layerWidth; 00087 double m_layerHeight; 00088 00089 double m_logWidth; 00090 double m_logLength; 00091 double m_logHeight; 00092 double m_logGap; 00093 double m_latt; 00094 }; 00095 00096 #endif