1 #ifndef FASTSIM_GEOMETRY_H
2 #define FASTSIM_GEOMETRY_H
23 class InteractionModel;
45 void update(
const edm::EventSetup& iSetup,
const std::map<std::string, InteractionModel*>& interactionModelMap);
93 if (layer ==
nullptr) {
96 unsigned nextLayerIndex = layer->
index() + 1;
107 if (layer ==
nullptr) {
110 unsigned nextLayerIndex = layer->
index() + 1;
121 if (layer ==
nullptr) {
134 if (layer ==
nullptr) {
141 std::vector<std::unique_ptr<BarrelSimplifiedGeometry>>
143 std::vector<std::unique_ptr<ForwardSimplifiedGeometry>>
145 std::unique_ptr<MagneticField>
158 const std::vector<edm::ParameterSet>
160 const std::vector<edm::ParameterSet>
const bool useTrackerRecoGeometryRecord_
Use GeometricSearchTracker (active layers/reco geometry). Can be used to get position/radius of track...
unsigned long long cacheIdentifierTrackerRecoGeometry_
Check interval of validity of the tracker geometry.
Implementation of a forward detector layer (disk).
void update(const edm::EventSetup &iSetup, const std::map< std::string, InteractionModel * > &interactionModelMap)
Initializes the tracker geometry.
friend std::ostream & operator<<(std::ostream &o, const fastsim::Geometry &geometry)
Provides some basic output for e.g. debugging.
double getMaxRadius()
Upper bound of the radius of the whole tracker geometry.
std::vector< std::unique_ptr< BarrelSimplifiedGeometry > > barrelLayers_
The vector of barrel layers (increasing radius)
const GeometricSearchTracker * geometricSearchTracker_
const std::vector< std::unique_ptr< ForwardSimplifiedGeometry > > & forwardLayers() const
Return the vector of forward layers (disks).
const MagneticField * magneticField_
The tracker geometry.
const BarrelSimplifiedGeometry * nextLayer(const BarrelSimplifiedGeometry *layer) const
Helps to navigate through the vector of barrel layers.
const std::vector< edm::ParameterSet > forwardLayerCfg_
The config in which all parameters of the forward layers are defined.
Implementation of a barrel detector layer (cylindrical).
const std::vector< edm::ParameterSet > barrelLayerCfg_
The config in which all parameters of the barrel layers are defined.
const double fixedMagneticFieldZ_
Use a uniform magnetic field or non-uniform from MagneticFieldRecord.
const double maxZ_
Upper bound of the radius of the whole tracker geometry.
constexpr std::array< uint8_t, layerIndexSize > layer
const edm::ParameterSet trackerForwardBoundaryCfg_
Hack to interface "old" calo to "new" tracking.
const ForwardSimplifiedGeometry * nextLayer(const ForwardSimplifiedGeometry *layer) const
Helps to navigate through the vector of forward layers.
const std::string trackerAlignmentLabel_
The tracker alignment label.
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::unique_ptr< MagneticField > ownedMagneticField_
Needed to create a uniform magnetic field if speciefied in config.
edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > geometricSearchTrackerESToken_
std::ostream & operator<<(std::ostream &os, const fastsim::Geometry &geometry)
const bool forwardBoundary_
Hack to interface "old" calo to "new" tracking.
const BarrelSimplifiedGeometry * previousLayer(const BarrelSimplifiedGeometry *layer) const
Helps to navigate through the vector of barrel layers.
double getMaxZ()
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry.
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldESToken_
const edm::ParameterSet trackerBarrelBoundaryCfg_
Hack to interface "old" calo to "new" tracking.
Definition the tracker geometry (vectors of forward/barrel layers).
Geometry(const edm::ParameterSet &, edm::ConsumesCollector &&)
Constructor.
const std::vector< std::unique_ptr< BarrelSimplifiedGeometry > > & barrelLayers() const
Return the vector of barrel layers.
int index() const
Return index of this layer (layers are numbered according to their position in the detector)...
static int position[264][3]
std::vector< std::unique_ptr< ForwardSimplifiedGeometry > > forwardLayers_
The vector of forward layers (increasing Z-position)
const ForwardSimplifiedGeometry * previousLayer(const ForwardSimplifiedGeometry *layer) const
Helps to navigate through the vector of forward layers.
const bool useFixedMagneticFieldZ_
Needed to create a uniform magnetic field if speciefied in config.
~Geometry()
Default destructor.
double getMagneticFieldZ(const math::XYZTLorentzVector &position) const
Initializes the tracker geometry.
const bool barrelBoundary_
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry.
unsigned long long cacheIdentifierIdealMagneticField_
Check interval of validity of the magnetic field.