Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /** \class ZdcHardcodeGeometryLoader
0012  *
0013  * \author E. Garcia - UIC
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