Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:08:07

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 
0027 private:
0028   void init();
0029   void fill(HcalZDCDetId::Section section, CaloSubdetectorGeometry* cg);
0030   void makeCell(const HcalZDCDetId& detId, CaloSubdetectorGeometry* geom) const;
0031 
0032   ZdcTopology* theTopology;
0033   const ZdcTopology* extTopology;
0034 
0035   float theEMSectiondX;
0036   float theEMSectiondY;
0037   float theEMSectiondZ;
0038   float theLUMSectiondX;
0039   float theLUMSectiondY;
0040   float theLUMSectiondZ;
0041   float theHADSectiondX;
0042   float theHADSectiondY;
0043   float theHADSectiondZ;
0044   float theRPDSectiondX;
0045   float theRPDSectiondY;
0046   float theRPDSectiondZ;
0047 };
0048 
0049 #endif