CMS 3D CMS Logo

CaloGeometryLoader.h

Go to the documentation of this file.
00001 #ifndef GEOMETRY_ECALGEOMETRYLOADER_H
00002 #define GEOMETRY_ECALGEOMETRYLOADER_H 1
00003 
00004 #include "DetectorDescription/Core/interface/DDSolid.h"
00005 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00006 
00007 #include "DetectorDescription/Core/interface/DDFilter.h"
00008 #include "DetectorDescription/Core/interface/DDFilteredView.h"
00009 
00010 #include "CondFormats/Alignment/interface/Alignments.h"
00011 
00012 #include "CLHEP/Geometry/Transform3D.h"
00013 #include <string>
00014 #include <vector>
00015 
00022 class DDCompactView;
00023 
00024 template < class T >
00025 class CaloGeometryLoader
00026 {
00027    public:
00028 
00029       typedef std::vector< double > ParmVec ;
00030 
00031       typedef boost::shared_ptr< CaloSubdetectorGeometry > PtrType ;
00032 
00033       typedef CaloSubdetectorGeometry::ParVec    ParVec ;
00034       typedef CaloSubdetectorGeometry::ParVecVec ParVecVec ;
00035 
00036       CaloGeometryLoader< T >() ;
00037 
00038       virtual ~CaloGeometryLoader< T >() {}
00039  
00040       PtrType load( const DDCompactView* cpv,
00041                     const Alignments*    alignments = 0 ) ;  
00042 
00043    private:
00044 
00045       unsigned int whichTransform( const DetId& id ) const ;
00046 
00047       void makeGeometry( const DDCompactView* cpv  , 
00048                          T*                   geom ,
00049                          const Alignments*    alignments ) ;
00050       
00051       void fillNamedParams( DDFilteredView fv,
00052                             T*             geom ) ;
00053       
00054       void fillGeom( T*                    geom ,
00055                      const ParmVec&        pv ,
00056                      const HepTransform3D& tr ,
00057                      const DetId&          id    ) ;
00058 
00059       void extraStuff( T* geom ) ;
00060 
00061       unsigned int getDetIdForDDDNode( const DDFilteredView& fv ) ;
00062 
00063       typename T::NumberingScheme m_scheme;
00064       DDSpecificsFilter  m_filter;
00065 };
00066 
00067 #endif

Generated on Tue Jun 9 17:37:10 2009 for CMSSW by  doxygen 1.5.4