Definition the tracker geometry (vectors of forward/barrel layers). More...
#include <Geometry.h>
Public Member Functions | |
const std::vector< std::unique_ptr< BarrelSimplifiedGeometry > > & | barrelLayers () const |
Return the vector of barrel layers. More... | |
const std::vector< std::unique_ptr< ForwardSimplifiedGeometry > > & | forwardLayers () const |
Return the vector of forward layers (disks). More... | |
Geometry (const edm::ParameterSet &, edm::ConsumesCollector &&) | |
Constructor. More... | |
double | getMagneticFieldZ (const math::XYZTLorentzVector &position) const |
Initializes the tracker geometry. More... | |
double | getMaxRadius () |
Upper bound of the radius of the whole tracker geometry. More... | |
double | getMaxZ () |
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry. More... | |
const BarrelSimplifiedGeometry * | nextLayer (const BarrelSimplifiedGeometry *layer) const |
Helps to navigate through the vector of barrel layers. More... | |
const ForwardSimplifiedGeometry * | nextLayer (const ForwardSimplifiedGeometry *layer) const |
Helps to navigate through the vector of forward layers. More... | |
const BarrelSimplifiedGeometry * | previousLayer (const BarrelSimplifiedGeometry *layer) const |
Helps to navigate through the vector of barrel layers. More... | |
const ForwardSimplifiedGeometry * | previousLayer (const ForwardSimplifiedGeometry *layer) const |
Helps to navigate through the vector of forward layers. More... | |
void | update (const edm::EventSetup &iSetup, const std::map< std::string, InteractionModel *> &interactionModelMap) |
Initializes the tracker geometry. More... | |
~Geometry () | |
Default destructor. More... | |
Private Attributes | |
const bool | barrelBoundary_ |
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry. More... | |
const std::vector< edm::ParameterSet > | barrelLayerCfg_ |
The config in which all parameters of the barrel layers are defined. More... | |
std::vector< std::unique_ptr< BarrelSimplifiedGeometry > > | barrelLayers_ |
The vector of barrel layers (increasing radius) More... | |
unsigned long long | cacheIdentifierIdealMagneticField_ |
Check interval of validity of the magnetic field. More... | |
unsigned long long | cacheIdentifierTrackerRecoGeometry_ |
Check interval of validity of the tracker geometry. More... | |
const double | fixedMagneticFieldZ_ |
Use a uniform magnetic field or non-uniform from MagneticFieldRecord. More... | |
const bool | forwardBoundary_ |
Hack to interface "old" calo to "new" tracking. More... | |
const std::vector< edm::ParameterSet > | forwardLayerCfg_ |
The config in which all parameters of the forward layers are defined. More... | |
std::vector< std::unique_ptr< ForwardSimplifiedGeometry > > | forwardLayers_ |
The vector of forward layers (increasing Z-position) More... | |
const GeometricSearchTracker * | geometricSearchTracker_ |
edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > | geometricSearchTrackerESToken_ |
const MagneticField * | magneticField_ |
The tracker geometry. More... | |
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > | magneticFieldESToken_ |
const double | maxRadius_ |
const double | maxZ_ |
Upper bound of the radius of the whole tracker geometry. More... | |
std::unique_ptr< MagneticField > | ownedMagneticField_ |
Needed to create a uniform magnetic field if speciefied in config. More... | |
const std::string | trackerAlignmentLabel_ |
The tracker alignment label. More... | |
const edm::ParameterSet | trackerBarrelBoundaryCfg_ |
Hack to interface "old" calo to "new" tracking. More... | |
const edm::ParameterSet | trackerForwardBoundaryCfg_ |
Hack to interface "old" calo to "new" tracking. More... | |
const bool | useFixedMagneticFieldZ_ |
Needed to create a uniform magnetic field if speciefied in config. More... | |
const bool | useTrackerRecoGeometryRecord_ |
Use GeometricSearchTracker (active layers/reco geometry). Can be used to get position/radius of tracker material that reflects active layers. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &o, const fastsim::Geometry &geometry) |
Provides some basic output for e.g. debugging. More... | |
Definition the tracker geometry (vectors of forward/barrel layers).
This class models the material budget of the tracker. Those are reflected by 2 vectors of forward (disks, ordered by increasing Z-position) and barrel layers respectively (cylinders, ordered by increasing radius). Furthermore, initiatilizes the magnetic field used for propagation of particles inside the tracker.
Definition at line 30 of file Geometry.h.
Geometry::Geometry | ( | const edm::ParameterSet & | cfg, |
edm::ConsumesCollector && | iC | ||
) |
Constructor.
Definition at line 22 of file Geometry.cc.
References geometricSearchTrackerESToken_, magneticFieldESToken_, trackerAlignmentLabel_, useFixedMagneticFieldZ_, and useTrackerRecoGeometryRecord_.
Geometry::~Geometry | ( | ) |
|
inline |
Return the vector of barrel layers.
Ordered by increasing radius (0 to +inf).
Definition at line 60 of file Geometry.h.
References barrelLayers_.
|
inline |
Return the vector of forward layers (disks).
Ordered by increasing Z-position (-inf to +inf).
Definition at line 67 of file Geometry.h.
References forwardLayers_.
double Geometry::getMagneticFieldZ | ( | const math::XYZTLorentzVector & | position | ) | const |
Initializes the tracker geometry.
Get the field from the MagneticFieldRecord (or set constant if defined in python config)
position | The position where you want to get the magnetic field (field only in Z direction). |
Definition at line 156 of file Geometry.cc.
References position.
Referenced by FastSimProducer::produce().
|
inline |
Upper bound of the radius of the whole tracker geometry.
Necessary to initialize the magnetic field within this volume.
Definition at line 74 of file Geometry.h.
References maxRadius_.
|
inline |
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry.
Necessary to initialize the magnetic field within this volume.
Definition at line 81 of file Geometry.h.
References maxZ_.
|
inline |
Helps to navigate through the vector of barrel layers.
For a given layer, returns the next layer (as ordered in std::vector<...> barrelLayers_).
layer | A barrel layer |
Definition at line 92 of file Geometry.h.
References barrelLayers_.
|
inline |
Helps to navigate through the vector of forward layers.
For a given layer, returns the next layer (as ordered in std::vector<...> forwardLayers_).
layer | A forward layer |
Definition at line 106 of file Geometry.h.
References forwardLayers_.
|
inline |
Helps to navigate through the vector of barrel layers.
For a given layer, returns the previous layer (as ordered in std::vector<...> barrelLayers_).
layer | A barrel layer |
Definition at line 120 of file Geometry.h.
References barrelLayers_.
|
inline |
Helps to navigate through the vector of forward layers.
For a given layer, returns the previous layer (as ordered in std::vector<...> forwardLayers_).
layer | A forward layer |
Definition at line 133 of file Geometry.h.
References forwardLayers_.
void Geometry::update | ( | const edm::EventSetup & | iSetup, |
const std::map< std::string, InteractionModel *> & | interactionModelMap | ||
) |
Initializes the tracker geometry.
Calls SimplifiedGeometryFactory to initialize the vectors of barrel/forward layers and provides magnetic field and interaction models for those.
iSetup | The Event Setup. |
interactionModelMap | Map of all interaction models considered (for any layer) |
Definition at line 55 of file Geometry.cc.
References barrelBoundary_, barrelLayerCfg_, barrelLayers_, edm::eventsetup::EventSetupRecord::cacheIdentifier(), cacheIdentifierIdealMagneticField_, cacheIdentifierTrackerRecoGeometry_, fastsim::SimplifiedGeometryFactory::createBarrelSimplifiedGeometry(), fastsim::SimplifiedGeometryFactory::createForwardSimplifiedGeometry(), Exception, fixedMagneticFieldZ_, forwardBoundary_, forwardLayerCfg_, forwardLayers_, geometricSearchTracker_, geometricSearchTrackerESToken_, edm::EventSetup::get(), edm::EventSetup::getData(), magneticField_, magneticFieldESToken_, maxRadius_, maxZ_, fastsim::SimplifiedGeometryFactory::NEGFWD, ownedMagneticField_, fastsim::SimplifiedGeometryFactory::POSFWD, trackerBarrelBoundaryCfg_, fastsim::SimplifiedGeometry::TRACKERBOUNDARY, trackerForwardBoundaryCfg_, useFixedMagneticFieldZ_, and useTrackerRecoGeometryRecord_.
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), progressbar.ProgressBar::finish(), MatrixUtil.Steps::overwrite(), and FastSimProducer::produce().
|
friend |
Provides some basic output for e.g. debugging.
|
private |
Upper bound of the length/2 (0 to +Z) of the whole tracker geometry.
Hack to interface "old" calo to "new" tracking
Definition at line 165 of file Geometry.h.
Referenced by update().
|
private |
The config in which all parameters of the barrel layers are defined.
Definition at line 159 of file Geometry.h.
Referenced by update().
|
private |
The vector of barrel layers (increasing radius)
Definition at line 142 of file Geometry.h.
Referenced by barrelLayers(), nextLayer(), previousLayer(), and update().
|
private |
Check interval of validity of the magnetic field.
Definition at line 149 of file Geometry.h.
Referenced by update().
|
private |
Check interval of validity of the tracker geometry.
Definition at line 148 of file Geometry.h.
Referenced by update().
|
private |
Use a uniform magnetic field or non-uniform from MagneticFieldRecord.
Definition at line 154 of file Geometry.h.
Referenced by update().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 166 of file Geometry.h.
Referenced by update().
|
private |
The config in which all parameters of the forward layers are defined.
Definition at line 161 of file Geometry.h.
Referenced by update().
|
private |
The vector of forward layers (increasing Z-position)
Definition at line 144 of file Geometry.h.
Referenced by forwardLayers(), nextLayer(), previousLayer(), and update().
|
private |
Definition at line 151 of file Geometry.h.
Referenced by update().
|
private |
Definition at line 170 of file Geometry.h.
Referenced by Geometry(), and update().
|
private |
The tracker geometry.
The magnetic field
Definition at line 152 of file Geometry.h.
Referenced by update().
|
private |
Definition at line 171 of file Geometry.h.
Referenced by Geometry(), and update().
|
private |
Definition at line 162 of file Geometry.h.
Referenced by getMaxRadius(), and update().
|
private |
Upper bound of the radius of the whole tracker geometry.
Definition at line 163 of file Geometry.h.
|
private |
Needed to create a uniform magnetic field if speciefied in config.
Definition at line 146 of file Geometry.h.
Referenced by update().
|
private |
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 167 of file Geometry.h.
Referenced by update().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 168 of file Geometry.h.
Referenced by update().
|
private |
Needed to create a uniform magnetic field if speciefied in config.
Definition at line 153 of file Geometry.h.
Referenced by Geometry(), and update().
|
private |
Use GeometricSearchTracker (active layers/reco geometry). Can be used to get position/radius of tracker material that reflects active layers.
Definition at line 156 of file Geometry.h.
Referenced by Geometry(), and update().