CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Fireworks/Geometry/interface/FWRecoGeometryESProducer.h

Go to the documentation of this file.
00001 #ifndef GEOMETRY_FWRECO_GEOMETRY_ES_PRODUCER_H
00002 # define GEOMETRY_FWRECO_GEOMETRY_ES_PRODUCER_H
00003 
00004 # include "boost/shared_ptr.hpp"
00005 
00006 # include "FWCore/Framework/interface/ESProducer.h"
00007 # include "FWCore/Framework/interface/ESHandle.h"
00008 # include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00009 
00010 namespace edm
00011 {
00012    class ParameterSet;
00013 }
00014 
00015 class CaloGeometry;
00016 class GlobalTrackingGeometry;
00017 class TrackerGeometry;
00018 class FWRecoGeometry;
00019 class FWRecoGeometryRecord;
00020 class GeomDet;
00021 
00022 class FWRecoGeometryESProducer : public edm::ESProducer
00023 {
00024 public:
00025   FWRecoGeometryESProducer( const edm::ParameterSet& );
00026   virtual ~FWRecoGeometryESProducer( void );
00027   
00028   boost::shared_ptr<FWRecoGeometry> produce( const FWRecoGeometryRecord& );
00029 
00030 private:
00031   FWRecoGeometryESProducer( const FWRecoGeometryESProducer& );
00032   const FWRecoGeometryESProducer& operator=( const FWRecoGeometryESProducer& );
00033   
00034   void addCSCGeometry( void );
00035   void addDTGeometry( void );
00036   void addRPCGeometry( void );
00037   void addPixelBarrelGeometry( void );
00038   void addPixelForwardGeometry( void );
00039   void addTIBGeometry( void );
00040   void addTOBGeometry( void );
00041   void addTIDGeometry( void );
00042   void addTECGeometry( void );
00043   void addCaloGeometry( void );
00044   
00045   unsigned int insert_id( unsigned int id );
00046   void fillPoints( unsigned int id, std::vector<GlobalPoint>::const_iterator begin, std::vector<GlobalPoint>::const_iterator end );
00047   void fillShapeAndPlacement( unsigned int id, const GeomDet *det );
00048   
00049   edm::ESHandle<GlobalTrackingGeometry> m_geomRecord;
00050   edm::ESHandle<CaloGeometry>           m_caloGeom;
00051   const TrackerGeometry*                m_trackerGeom;
00052   boost::shared_ptr<FWRecoGeometry>     m_fwGeometry;
00053   
00054   unsigned int m_current;
00055 };
00056 
00057 #endif // GEOMETRY_FWRECO_GEOMETRY_ES_PRODUCER_H