CMS 3D CMS Logo

SimplifiedGeometryFactory.h
Go to the documentation of this file.
1 #ifndef FASTSIM_SIMPLIFIEDGEOMETRYFACTORY
2 #define FASTSIM_SIMPLIFIEDGEOMETRYFACTORY
3 
5 class MagneticField;
6 class DetLayer;
7 class BarrelDetLayer;
8 class ForwardDetLayer;
9 
10 #include <memory>
11 #include <map>
12 #include <vector>
13 #include <string>
14 
16 // Author: L. Vanelderen
17 // Date: 13 May 2014
18 //
19 // Revision: Class structure modified to match SimplifiedGeometryPropagator
20 // S. Kurz, 29 May 2017
22 
23 namespace edm {
24  class ParameterSet;
25 }
26 
27 namespace fastsim {
28  class SimplifiedGeometry;
29  class BarrelSimplifiedGeometry;
30  class ForwardSimplifiedGeometry;
31  class InteractionModel;
32 
34 
41  public:
43 
50  SimplifiedGeometryFactory(const GeometricSearchTracker *geometricSearchTracker,
52  const std::map<std::string, fastsim::InteractionModel *> &interactionModelMap,
53  double magneticFieldHistMaxR,
54  double magneticFieldHistMaxZ);
55 
58 
60 
65  std::unique_ptr<SimplifiedGeometry> createSimplifiedGeometry(LayerType type, const edm::ParameterSet &cfg) const;
66 
68 
73  std::unique_ptr<ForwardSimplifiedGeometry> createForwardSimplifiedGeometry(LayerType type,
74  const edm::ParameterSet &cfg) const;
75 
77 
81  std::unique_ptr<BarrelSimplifiedGeometry> createBarrelSimplifiedGeometry(const edm::ParameterSet &cfg) const;
82 
83  private:
85 
93  const DetLayer *getDetLayer(const std::string &detLayerName,
94  const GeometricSearchTracker &geometricSearchTracker) const;
95 
98  const std::map<std::string, fastsim::InteractionModel *> *interactionModelMap_;
99  const double magneticFieldHistMaxR_;
100  const double magneticFieldHistMaxZ_;
101  std::map<std::string, const std::vector<BarrelDetLayer const *> *>
103  std::map<std::string, const std::vector<ForwardDetLayer const *> *>
105  };
106 } // namespace fastsim
107 
108 #endif
std::map< std::string, const std::vector< BarrelDetLayer const * > * > barrelDetLayersMap_
A map of strings and pointers to detLayers.
const double magneticFieldHistMaxZ_
Limit in +-Z for histogram of magnetic field.
const MagneticField *const magneticField_
The full magnetic field.
std::unique_ptr< ForwardSimplifiedGeometry > createForwardSimplifiedGeometry(LayerType type, const edm::ParameterSet &cfg) const
Helper method for createSimplifiedGeometry(..) to create a forward layer (ForwardSimplifiedGeometry)...
const DetLayer * getDetLayer(const std::string &detLayerName, const GeometricSearchTracker &geometricSearchTracker) const
Method returns a pointer to a DetLayer according to the string that was passed.
const GeometricSearchTracker *const geometricSearchTracker_
The full tracker geometry.
Constructs a tracker layer according to entry in python config (incl interaction models).
std::map< std::string, const std::vector< ForwardDetLayer const * > * > forwardDetLayersMap_
A map of strings and pointers to detLayers.
HLT enums.
std::unique_ptr< BarrelSimplifiedGeometry > createBarrelSimplifiedGeometry(const edm::ParameterSet &cfg) const
Helper method for createSimplifiedGeometry(..) to create a barrel layer (BarrelSimplifiedGeometry).
std::unique_ptr< SimplifiedGeometry > createSimplifiedGeometry(LayerType type, const edm::ParameterSet &cfg) const
Main method of this class. Creates a new detector layer (SimplifiedGeometry).
const std::map< std::string, fastsim::InteractionModel * > * interactionModelMap_
Map of interaction models.
SimplifiedGeometryFactory(const GeometricSearchTracker *geometricSearchTracker, const MagneticField &magneticField, const std::map< std::string, fastsim::InteractionModel *> &interactionModelMap, double magneticFieldHistMaxR, double magneticFieldHistMaxZ)
Constructor.
LayerType
Each layer is either a barrel layer, or a forward layer (either at ppositive or negative Z)...
const double magneticFieldHistMaxR_
Limit in R for histogram of magnetic field.