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() {}; 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 const CaloCellGeometry * makeCell(const HcalCastorDetId & detId, 00025 CaloSubdetectorGeometry* geom) const; 00026 00027 CastorTopology theTopology; 00028 00029 00030 float theEMSectiondX; 00031 float theEMSectiondY; 00032 float theEMSectiondZ; 00033 float theHADSectiondX; 00034 float theHADSectiondY; 00035 float theHADSectiondZ; 00036 00037 }; 00038 00039 #endif