CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/Geometry/ForwardGeometry/interface/CastorHardcodeGeometryLoader.h

Go to the documentation of this file.
00001 #ifndef Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H
00002 #define Geometry_ForwardGeometry_CastorHardcodeGeometryLoader_H 1
00003 
00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h"
00005 #include "Geometry/ForwardGeometry/interface/CastorTopology.h"
00006 
00007 class CaloCellGeometry;
00008 class CaloSubdetectorGeometry;
00009 class HcalCastorDetId;
00010 
00011 
00012 class CastorHardcodeGeometryLoader {
00013 public:
00014   CastorHardcodeGeometryLoader();
00015   explicit CastorHardcodeGeometryLoader(const CastorTopology& ht);
00016   virtual ~CastorHardcodeGeometryLoader() { delete theTopology ; };
00017   
00018   virtual std::auto_ptr<CaloSubdetectorGeometry> load(DetId::Detector det, int subdet);
00019   std::auto_ptr<CaloSubdetectorGeometry> load();
00020   
00021 private:
00022   void init();
00023   void fill(HcalCastorDetId::Section section,CaloSubdetectorGeometry* cg);
00024   void makeCell( const HcalCastorDetId &  detId ,
00025                  CaloSubdetectorGeometry* geom   ) const;
00026 
00027       CastorTopology* theTopology;
00028       const CastorTopology* extTopology;
00029 
00030 
00031   float theEMSectiondX;
00032   float theEMSectiondY;
00033   float theEMSectiondZ;
00034   float theHADSectiondX;
00035   float theHADSectiondY;
00036   float theHADSectiondZ;
00037   
00038 };
00039 
00040 #endif