Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Geometry_HcalTowerAlgo_HcalDDDGeometryLoader_H
0002 #define Geometry_HcalTowerAlgo_HcalDDDGeometryLoader_H
0003 
0004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h"
0005 #include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h"
0006 #include "Geometry/HcalTowerAlgo/interface/HcalDDDGeometry.h"
0007 #include "Geometry/CaloTopology/interface/HcalTopology.h"
0008 
0009 class CaloCellGeometry;
0010 class HcalDetId;
0011 class HcalDDDGeometry;
0012 
0013 /** \class HcalDDDGeometryLoader
0014  *
0015  *
0016  * \note The Geometry as loaded from DDD
0017  *   
0018  * \author S. Banerjee
0019 */
0020 
0021 class HcalDDDGeometryLoader {
0022 public:
0023   explicit HcalDDDGeometryLoader(const HcalDDDRecConstants* hcons);
0024   virtual ~HcalDDDGeometryLoader();
0025 
0026   typedef CaloSubdetectorGeometry* ReturnType;
0027   ReturnType load(const HcalTopology& topo, DetId::Detector, int);
0028   /// Load all of HCAL
0029   ReturnType load(const HcalTopology& topo);
0030 
0031   HcalDDDGeometryLoader() = delete;
0032 
0033 private:
0034   /// helper functions to make all the ids and cells, and put them into the
0035   /// vectors and mpas passed in.
0036   void fill(HcalSubdetector, HcalDDDGeometry*);
0037 
0038   void makeCell(const HcalDetId&, const HcalCellType&, double, double, HcalDDDGeometry* geom) const;
0039 
0040   const HcalDDDRecConstants* hcalConstants_;
0041 
0042   bool isBH_;
0043 };
0044 
0045 #endif