CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/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       HcalHardcodeGeometryLoader();
00026       explicit HcalHardcodeGeometryLoader(const HcalTopology& ht);
00027       virtual ~HcalHardcodeGeometryLoader() { delete theTopology ; }
00028   
00029       ReturnType load(DetId::Detector det, int subdet);
00031       ReturnType load();
00032   
00033    private:
00034       void init();
00037 
00038       void fill( HcalSubdetector  subdet, 
00039                  int              firstEtaRing, 
00040                  int              lastEtaRing,
00041                  ReturnType       cg              );
00042   
00043       void makeCell( const HcalDetId& detId,
00044                      ReturnType       geom   ) const;
00045       
00046       HcalTopology*       theTopology;
00047       const HcalTopology* extTopology;
00048   
00049       double theBarrelRadius;
00050       double theOuterRadius;
00051       double theHEZPos[4];
00052       double theHFZPos[2];
00053   
00054       double theHBThickness;
00055       double theHB15aThickness,theHB15bThickness;
00056       double theHB16aThickness,theHB16bThickness;
00057       double theHFThickness;
00058       double theHOThickness;
00059 };
00060 
00061 #endif