00001 #ifndef GEOMETRY_HCALTOWERALGO_HCALHARDCODEGEOMETRYLOADER_H 00002 #define GEOMETRY_HCALTOWERALGO_HCALHARDCODEGEOMETRYLOADER_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h" 00005 #include "Geometry/CaloTopology/interface/HcalTopology.h" 00006 00007 class CaloCellGeometry; 00008 class HcalDetId; 00009 00019 class HcalHardcodeGeometryLoader 00020 { 00021 public: 00022 00023 typedef CaloSubdetectorGeometry* ReturnType ; 00024 00025 HcalHardcodeGeometryLoader(); 00026 explicit HcalHardcodeGeometryLoader(const HcalTopology& ht); 00027 virtual ~HcalHardcodeGeometryLoader() { delete theTopology ; } 00028 00029 ReturnType load(DetId::Detector det, int subdet); 00031 ReturnType load(); 00032 00033 private: 00034 void init(); 00037 00038 void fill( HcalSubdetector subdet, 00039 int firstEtaRing, 00040 int lastEtaRing, 00041 ReturnType cg ); 00042 00043 CaloCellGeometry* makeCell( const HcalDetId& detId, 00044 ReturnType geom ) const; 00045 00046 HcalTopology* theTopology; 00047 const HcalTopology* extTopology; 00048 00049 double theBarrelRadius; 00050 double theOuterRadius; 00051 double theHEZPos[4]; 00052 double theHFZPos[2]; 00053 00054 double theHBThickness; 00055 double theHB15aThickness,theHB15bThickness; 00056 double theHB16aThickness,theHB16bThickness; 00057 double theHFThickness; 00058 double theHOThickness; 00059 }; 00060 00061 #endif