File indexing completed on 2024-04-06 12:14:38
0001 #ifndef Geometry_ForwardGeometry_ZdcHardcodeGeometryLoader_H
0002 #define Geometry_ForwardGeometry_ZdcHardcodeGeometryLoader_H 1
0003
0004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h"
0005 #include "Geometry/ForwardGeometry/interface/ZdcTopology.h"
0006
0007 class CaloCellGeometry;
0008 class CaloSubdetectorGeometry;
0009 class HcalZDCDetId;
0010
0011
0012
0013
0014
0015
0016 class ZdcHardcodeGeometryLoader {
0017 public:
0018 typedef CaloSubdetectorGeometry* ReturnType;
0019
0020 ZdcHardcodeGeometryLoader();
0021 explicit ZdcHardcodeGeometryLoader(const ZdcTopology& ht);
0022 virtual ~ZdcHardcodeGeometryLoader() { delete theTopology; }
0023
0024 virtual ReturnType load(DetId::Detector det, int subdet);
0025 ReturnType load();
0026 void setAddRPD(bool flag) { m_zdcAddRPD = flag; }
0027
0028 private:
0029 void init();
0030 void fill(HcalZDCDetId::Section section, CaloSubdetectorGeometry* cg);
0031 void makeCell(const HcalZDCDetId& detId, CaloSubdetectorGeometry* geom) const;
0032
0033 ZdcTopology* theTopology;
0034 const ZdcTopology* extTopology;
0035 bool m_zdcAddRPD;
0036 float theEMSectiondX;
0037 float theEMSectiondY;
0038 float theEMSectiondZ;
0039 float theLUMSectiondX;
0040 float theLUMSectiondY;
0041 float theLUMSectiondZ;
0042 float theHADSectiondX;
0043 float theHADSectiondY;
0044 float theHADSectiondZ;
0045 float theRPDSectiondX;
0046 float theRPDSectiondY;
0047 float theRPDSectiondZ;
0048 };
0049
0050 #endif