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