CMS 3D CMS Logo

CaloGeometryLoader.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_ECALGEOMETRYLOADER_H
2 #define GEOMETRY_ECALGEOMETRYLOADER_H
3 
6 
7 #include "CLHEP/Geometry/Transform3D.h"
8 #include <string>
9 #include <vector>
10 
16 template <class T, class D>
18 public:
19  using ParmVec = std::vector<double>;
20  using PtrType = std::unique_ptr<CaloSubdetectorGeometry>;
23 
24  static const double k_ScaleFromDDDtoGeant;
25 
27 
29 
30  PtrType load(const D* cpv, const Alignments* alignments = nullptr, const Alignments* globals = nullptr);
31 
32 private:
33  void makeGeometry(const D* cpv, T* geom, const Alignments* alignments, const Alignments* globals);
34 
35  template <class F>
36  void fillNamedParams(const F& fv, T* geom);
37 
38  void fillGeom(T* geom, const ParmVec& pv, const HepGeom::Transform3D& tr, const DetId& id);
39 
40  template <class F>
41  unsigned int getDetIdForDDDNode(const F& fv);
42 
43  typename T::NumberingScheme m_scheme;
44 };
45 
46 #endif
void fillGeom(T *geom, const ParmVec &pv, const HepGeom::Transform3D &tr, const DetId &id)
std::unique_ptr< CaloSubdetectorGeometry > PtrType
PtrType load(const D *cpv, const Alignments *alignments=0, const Alignments *globals=0)
void fillNamedParams(const F &fv, T *geom)
def pv(vc)
Definition: MetAnalyzer.py:7
CaloSubdetectorGeometry::ParVecVec ParVecVec
CaloCellGeometry::ParVec ParVec
static const double k_ScaleFromDDDtoGeant
Definition: DetId.h:17
unsigned int getDetIdForDDDNode(const F &fv)
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
CaloCellGeometry::ParVecVec ParVecVec
std::vector< double > ParmVec
T::NumberingScheme m_scheme
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
void makeGeometry(const D *cpv, T *geom, const Alignments *alignments, const Alignments *globals)
long double T