00001 #ifndef ICALGEOMETRYSVC_H 00002 #define ICALGEOMETRYSVC_H 1 00003 00004 #include "CalRecon/CalDetGeo.h" 00005 #include "idents/ModuleId.h" 00006 #include "GaudiKernel/IInterface.h" 00007 00008 //---------------------------------------------- 00009 // 00010 // CalGeometrySvc 00011 // 00012 // It stores the calorimeter geometry. 00013 // 00014 // A.Chekhtman, NRL, 3/30/01 00015 // 00016 // 00017 00018 00019 00020 00021 static const InterfaceID IID_ICalGeometrySvc(906, 1 , 0); 00022 00023 00024 //########################################################## 00025 class ICalGeometrySvc : virtual public IInterface 00026 //########################################################## 00027 { 00028 public: 00029 00030 00031 00032 00033 virtual int numModulesX()=0; 00034 virtual int numModulesY()=0; 00035 virtual int numViews()=0; 00036 virtual int numLayers()=0; 00037 virtual int numLogs()=0; 00038 00039 virtual double moduleWidth()=0; 00040 virtual double Z0()=0; 00041 virtual double layerWidth()=0; 00042 virtual double layerHeight()=0; 00043 00044 virtual double logWidth()=0; 00045 virtual double logHeight()=0; 00046 virtual double logLength()=0; 00047 virtual double logGap() =0; 00048 virtual double light_att() =0; 00049 00050 virtual CalDetGeo getLayer(int ilayer, CalDetGeo::axis a) =0; 00051 virtual CalDetGeo getLog(int ilayer, CalDetGeo::axis a, int ilog)=0; 00052 virtual CalDetGeo getLog(int ilayer, CalDetGeo::axis a, int ilog, idents::ModuleId mod) =0; 00053 static const InterfaceID& interfaceID() { return IID_ICalGeometrySvc; } 00054 00055 00056 }; 00057 00058 #endif