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 &cfg) | |
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_ |
const MagneticField * | magneticField_ |
The tracker geometry. More... | |
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 34 of file Geometry.h.
Geometry::Geometry | ( | const edm::ParameterSet & | cfg | ) |
Constructor.
Definition at line 25 of file Geometry.cc.
Geometry::~Geometry | ( | ) |
|
inline |
Return the vector of barrel layers.
Ordered by increasing radius (0 to +inf).
Definition at line 66 of file Geometry.h.
Referenced by fastsim::LayerNavigator::moveParticleToNextLayer().
|
inline |
Return the vector of forward layers (disks).
Ordered by increasing Z-position (-inf to +inf).
Definition at line 73 of file Geometry.h.
Referenced by fastsim::LayerNavigator::moveParticleToNextLayer().
double fastsim::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 161 of file Geometry.cc.
References MagneticField::inTesla(), magneticField_, and PV3DBase< T, PVType, FrameType >::z().
Referenced by fastsim::LayerNavigator::moveParticleToNextLayer(), and 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 80 of file Geometry.h.
|
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 87 of file Geometry.h.
References connectstrParser::o, and edm::operator<<().
|
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 98 of file Geometry.h.
References fastsim::SimplifiedGeometry::index().
Referenced by fastsim::LayerNavigator::moveParticleToNextLayer().
|
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 114 of file Geometry.h.
References fastsim::SimplifiedGeometry::index().
|
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 130 of file Geometry.h.
References fastsim::SimplifiedGeometry::index().
Referenced by fastsim::LayerNavigator::moveParticleToNextLayer().
|
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 145 of file Geometry.h.
References fastsim::SimplifiedGeometry::index().
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 44 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_, edm::EventSetup::get(), diffTreeTool::index, seedCreatorFromRegionConsecutiveHitsEDProducer_cff::magneticField, magneticField_, maxRadius_, maxZ_, fastsim::SimplifiedGeometryFactory::NEGFWD, ownedMagneticField_, fastsim::SimplifiedGeometryFactory::POSFWD, trackerAlignmentLabel_, trackerBarrelBoundaryCfg_, fastsim::SimplifiedGeometry::TRACKERBOUNDARY, trackerForwardBoundaryCfg_, useFixedMagneticFieldZ_, and useTrackerRecoGeometryRecord_.
Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), FastSimProducer::produce(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().
|
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 174 of file Geometry.h.
Referenced by update().
|
private |
The config in which all parameters of the barrel layers are defined.
Definition at line 169 of file Geometry.h.
Referenced by update().
|
private |
The vector of barrel layers (increasing radius)
Definition at line 156 of file Geometry.h.
Referenced by fastsim::operator<<(), and update().
|
private |
Check interval of validity of the magnetic field.
Definition at line 161 of file Geometry.h.
Referenced by update().
|
private |
Check interval of validity of the tracker geometry.
Definition at line 160 of file Geometry.h.
Referenced by update().
|
private |
Use a uniform magnetic field or non-uniform from MagneticFieldRecord.
Definition at line 166 of file Geometry.h.
Referenced by update().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 175 of file Geometry.h.
Referenced by update().
|
private |
The config in which all parameters of the forward layers are defined.
Definition at line 170 of file Geometry.h.
Referenced by update().
|
private |
The vector of forward layers (increasing Z-position)
Definition at line 157 of file Geometry.h.
Referenced by fastsim::operator<<(), and update().
|
private |
Definition at line 163 of file Geometry.h.
Referenced by update().
|
private |
The tracker geometry.
The magnetic field
Definition at line 164 of file Geometry.h.
Referenced by getMagneticFieldZ(), and update().
|
private |
Definition at line 171 of file Geometry.h.
Referenced by update().
|
private |
Upper bound of the radius of the whole tracker geometry.
Definition at line 172 of file Geometry.h.
Referenced by update().
|
private |
Needed to create a uniform magnetic field if speciefied in config.
Definition at line 158 of file Geometry.h.
Referenced by update().
|
private |
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 176 of file Geometry.h.
Referenced by update().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 177 of file Geometry.h.
Referenced by update().
|
private |
Needed to create a uniform magnetic field if speciefied in config.
Definition at line 165 of file Geometry.h.
Referenced by 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 167 of file Geometry.h.
Referenced by update().