00001 #ifndef Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H 00002 #define Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h" 00005 #include "Geometry/ForwardGeometry/interface/CastorTopology.h" 00006 00007 class CaloCellGeometry; 00008 class CaloSubdetectorGeometry; 00009 class HcalCastorDetId; 00010 00011 00012 class CastorHardcodeGeometryLoader { 00013 public: 00014 CastorHardcodeGeometryLoader(); 00015 explicit CastorHardcodeGeometryLoader(const CastorTopology& ht); 00016 virtual ~CastorHardcodeGeometryLoader() { delete theTopology ; }; 00017 00018 virtual std::auto_ptr<CaloSubdetectorGeometry> load(DetId::Detector det, int subdet); 00019 std::auto_ptr<CaloSubdetectorGeometry> load(); 00020 00021 private: 00022 void init(); 00023 void fill(HcalCastorDetId::Section section,CaloSubdetectorGeometry* cg); 00024 CaloCellGeometry* makeCell( const HcalCastorDetId & detId , 00025 CaloSubdetectorGeometry* geom ) const; 00026 00027 CastorTopology* theTopology; 00028 const CastorTopology* extTopology; 00029 00030 00031 float theEMSectiondX; 00032 float theEMSectiondY; 00033 float theEMSectiondZ; 00034 float theHADSectiondX; 00035 float theHADSectiondY; 00036 float theHADSectiondZ; 00037 00038 }; 00039 00040 #endif