CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Geometry/HcalTowerAlgo/interface/HcalHardcodeGeometryLoader.h

Go to the documentation of this file.
00001 #ifndef GEOMETRY_HCALTOWERALGO_HCALHARDCODEGEOMETRYLOADER_H
00002 #define GEOMETRY_HCALTOWERALGO_HCALHARDCODEGEOMETRYLOADER_H 1
00003 
00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h"
00005 #include "Geometry/CaloTopology/interface/HcalTopology.h"
00006 
00007 class CaloCellGeometry;
00008 class HcalDetId;
00009 
00019 class HcalHardcodeGeometryLoader 
00020 {
00021    public:
00022 
00023       typedef CaloSubdetectorGeometry* ReturnType ;
00024 
00025       explicit HcalHardcodeGeometryLoader(const HcalTopology& ht);
00026       virtual ~HcalHardcodeGeometryLoader() { delete theTopology ; }
00027   
00028       ReturnType load(DetId::Detector det, int subdet);
00030       ReturnType load();
00031   
00032    private:
00033       void init();
00036 
00037       void fill( HcalSubdetector  subdet, 
00038                  int              firstEtaRing, 
00039                  int              lastEtaRing,
00040                  ReturnType       cg              );
00041   
00042       void makeCell( const HcalDetId& detId,
00043                      ReturnType       geom   ) const;
00044       
00045       HcalTopology*       theTopology;
00046       const HcalTopology* extTopology;
00047   
00048       double theBarrelRadius;
00049       double theOuterRadius;
00050       double theHEZPos[4];
00051       double theHFZPos[2];
00052   
00053       double theHBThickness;
00054       double theHB15aThickness,theHB15bThickness;
00055       double theHB16aThickness,theHB16bThickness;
00056       double theHFThickness;
00057       double theHOThickness;
00058 };
00059 
00060 #endif