CMS 3D CMS Logo

CaloGeometryLoader.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_ECALGEOMETRYLOADER_H
2 #define GEOMETRY_ECALGEOMETRYLOADER_H 1
3 
6 
9 
11 
12 #include "CLHEP/Geometry/Transform3D.h"
13 #include <string>
14 #include <vector>
15 
21 class DDCompactView;
22 
23 template < class T >
25 {
26 public:
27 
28  typedef std::vector< double > ParmVec ;
29 
30  using PtrType = std::unique_ptr<CaloSubdetectorGeometry>;
31 
34 
35  static const double k_ScaleFromDDDtoGeant ;
36 
38 
40 
41  PtrType load( const DDCompactView* cpv,
42  const Alignments* alignments = nullptr ,
43  const Alignments* globals = nullptr ) ;
44 
45 private:
46 
47  void makeGeometry( const DDCompactView* cpv ,
48  T* geom ,
49  const Alignments* alignments ,
50  const Alignments* globals ) ;
51 
52  void fillNamedParams( const DDFilteredView& fv,
53  T* geom ) ;
54 
55  void fillGeom( T* geom ,
56  const ParmVec& pv ,
57  const HepGeom::Transform3D& tr ,
58  const DetId& id ) ;
59 
60  unsigned int getDetIdForDDDNode( const DDFilteredView& fv ) ;
61 
62  typename T::NumberingScheme m_scheme;
64  DDSpecificsMatchesValueFilter> m_filter;
65 };
66 
67 #endif
std::unique_ptr< CaloSubdetectorGeometry > PtrType
unsigned int getDetIdForDDDNode(const DDFilteredView &fv)
std::vector< double > ParmVec
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
CaloSubdetectorGeometry::ParVecVec ParVecVec
def pv(vc)
Definition: MetAnalyzer.py:7
T::NumberingScheme m_scheme
Definition: DetId.h:18
CaloSubdetectorGeometry::ParVec ParVec
CaloCellGeometry::ParVecVec ParVecVec
void fillGeom(T *geom, const ParmVec &pv, const HepGeom::Transform3D &tr, const DetId &id)
void fillNamedParams(const DDFilteredView &fv, T *geom)
static const double k_ScaleFromDDDtoGeant
DDAndFilter< DDSpecificsMatchesValueFilter, DDSpecificsMatchesValueFilter > m_filter
PtrType load(const DDCompactView *cpv, const Alignments *alignments=0, const Alignments *globals=0)
void makeGeometry(const DDCompactView *cpv, T *geom, const Alignments *alignments, const Alignments *globals)
long double T