00001 // 00002 // Bes Emc barrel part and endcap Geometry service 00003 // Virtual interface class 00004 // 00005 // Created by Zhe Wang, May, 29 2004 00006 // 00007 00008 #ifndef I_EMC_REC_GEO_SVC_H 00009 #define I_EMC_REC_GEO_SVC_H 00010 00011 #include "GaudiKernel/IInterface.h" 00012 #include "CLHEP/Geometry/Point3D.h" 00013 #ifndef ENABLE_BACKWARDS_COMPATIBILITY 00014 typedef HepGeom::Point3D<double> HepPoint3D; 00015 #endif 00016 00017 #include "Identifier/Identifier.h" 00018 #include "EmcRecGeoSvc/EmcRecCrystal.h" 00019 using namespace CLHEP; 00020 00021 static const InterfaceID IID_IEmcRecGeoSvc("IEmcRecGeoSvc",1,0); 00022 00023 class IEmcRecGeoSvc:virtual public IInterface 00024 { 00025 //access to geometry 00026 public: 00027 virtual EmcRecCrystal GetCrystal(const Identifier& id) const =0; 00028 virtual HepPoint3D GetCrystalPoint(const Identifier& id, const int i) const =0; 00029 virtual HepPoint3D GetCCenter(const Identifier& id) const =0; 00030 virtual HepPoint3D GetCFrontCenter(const Identifier& id) const =0; 00031 00032 virtual double GetBarrelR() const = 0; 00033 virtual double GetBarrelOffset1() const = 0; 00034 virtual double GetBarrelOffset2() const = 0; 00035 virtual double GetBarrelh1() const = 0; 00036 virtual double GetBarrelh2() const = 0; 00037 virtual double GetBarrelh3() const = 0; 00038 virtual double GetBarrelL() const = 0; 00039 virtual int GetBarrelNPhiMax() const = 0; 00040 virtual int GetBarrelNThetaMax() const = 0; 00041 00042 static const InterfaceID& interfaceID() { return IID_IEmcRecGeoSvc; } 00043 }; 00044 00045 #endif //I_EMC_REC_GEO_SVC_H 00046