00001 #ifndef Geometry_ForwardGeometry_ZdcHardcodeGeometryLoader_H 00002 #define Geometry_ForwardGeometry_ZdcHardcodeGeometryLoader_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h" 00005 #include "Geometry/ForwardGeometry/interface/ZdcTopology.h" 00006 #include <boost/shared_ptr.hpp> 00007 00008 class CaloCellGeometry; 00009 class CaloSubdetectorGeometry; 00010 class HcalZDCDetId; 00011 00019 class ZdcHardcodeGeometryLoader { 00020 public: 00021 00022 typedef CaloSubdetectorGeometry* ReturnType ; 00023 00024 ZdcHardcodeGeometryLoader(); 00025 explicit ZdcHardcodeGeometryLoader(const ZdcTopology& ht); 00026 virtual ~ZdcHardcodeGeometryLoader() { delete theTopology ; } 00027 00028 virtual ReturnType load(DetId::Detector det, int subdet); 00029 ReturnType load(); 00030 00031 private: 00032 void init(); 00033 void fill(HcalZDCDetId::Section section,CaloSubdetectorGeometry* cg); 00034 void makeCell(const HcalZDCDetId & detId, 00035 CaloSubdetectorGeometry* geom) const; 00036 00037 ZdcTopology* theTopology; 00038 const ZdcTopology* extTopology; 00039 00040 float theEMSectiondX; 00041 float theEMSectiondY; 00042 float theEMSectiondZ; 00043 float theLUMSectiondX; 00044 float theLUMSectiondY; 00045 float theLUMSectiondZ; 00046 float theHADSectiondX; 00047 float theHADSectiondY; 00048 float theHADSectiondZ; 00049 00050 }; 00051 00052 #endif