File indexing completed on 2024-04-06 12:14:38
0001 #ifndef Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H
0002 #define Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H 1
0003
0004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h"
0005 #include "Geometry/ForwardGeometry/interface/CastorTopology.h"
0006
0007 class CaloCellGeometry;
0008 class CaloSubdetectorGeometry;
0009 class HcalCastorDetId;
0010
0011 class CastorHardcodeGeometryLoader {
0012 public:
0013 CastorHardcodeGeometryLoader();
0014 explicit CastorHardcodeGeometryLoader(const CastorTopology& ht);
0015 virtual ~CastorHardcodeGeometryLoader() { delete theTopology; };
0016
0017 virtual std::unique_ptr<CaloSubdetectorGeometry> load(DetId::Detector det, int subdet);
0018 std::unique_ptr<CaloSubdetectorGeometry> load();
0019
0020 private:
0021 void init();
0022 void fill(HcalCastorDetId::Section section, CaloSubdetectorGeometry* cg);
0023 void makeCell(const HcalCastorDetId& detId, CaloSubdetectorGeometry* geom) const;
0024
0025 CastorTopology* theTopology;
0026 const CastorTopology* extTopology;
0027
0028 float theEMSectiondX;
0029 float theEMSectiondY;
0030 float theEMSectiondZ;
0031 float theHADSectiondX;
0032 float theHADSectiondY;
0033 float theHADSectiondZ;
0034 };
0035
0036 #endif