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 
15 
17 // Author: L. Vanelderen
18 // Date: 13 May 2014
19 //
20 // Revision: Class structure modified to match SimplifiedGeometryPropagator
21 // S. Kurz, 29 May 2017
23 
24 
25 namespace edm
26 {
27  class ParameterSet;
28 }
29 
30 namespace fastsim
31 {
32  class SimplifiedGeometry;
33  class BarrelSimplifiedGeometry;
34  class ForwardSimplifiedGeometry;
35  class InteractionModel;
36 
38 
45  {
46  public:
48 
55  SimplifiedGeometryFactory(const GeometricSearchTracker * geometricSearchTracker,
57  const std::map<std::string,fastsim::InteractionModel *> & interactionModelMap,
58  double magneticFieldHistMaxR,
59  double magneticFieldHistMaxZ);
60 
62  enum LayerType {BARREL, POSFWD, NEGFWD};
63 
65 
70  std::unique_ptr<SimplifiedGeometry> createSimplifiedGeometry(LayerType type, const edm::ParameterSet & cfg) const;
71 
73 
78  std::unique_ptr<ForwardSimplifiedGeometry> createForwardSimplifiedGeometry(LayerType type, const edm::ParameterSet & cfg) const;
79 
81 
85  std::unique_ptr<BarrelSimplifiedGeometry> createBarrelSimplifiedGeometry(const edm::ParameterSet & cfg) const;
86 
87  private:
89 
97  const DetLayer * getDetLayer(const std::string & detLayerName, const GeometricSearchTracker & geometricSearchTracker) const;
98 
101  const std::map<std::string,fastsim::InteractionModel *> * interactionModelMap_;
102  const double magneticFieldHistMaxR_;
103  const double magneticFieldHistMaxZ_;
104  std::map<std::string, const std::vector<BarrelDetLayer const *> *> barrelDetLayersMap_;
105  std::map<std::string, const std::vector<ForwardDetLayer const *> *> forwardDetLayersMap_;
106  };
107 }
108 
109 #endif
type
Definition: HCALResponse.h:21
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.
DetLayer getDetLayer(DetId detId, const TrackerTopology *tTopo)
Definition: TrackQuality.cc:90
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.
const std::map< std::string, fastsim::InteractionModel * > * interactionModelMap_
Map of interaction models.
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.