![]() |
ATLAS Offline Software
|
The TrackingGeometry class is the owner of the constructed TrackingVolumes. More...
#include <TrackingGeometry.h>
Public Member Functions | |
| TrackingGeometry (TrackingVolume *highestVolume, NavigationLevel navlevel=globalSearch) | |
| Constructor. | |
| virtual | ~TrackingGeometry () |
| Destructor. | |
| const TrackingVolume * | highestTrackingVolume () const |
| return the world | |
| TrackingVolume * | highestTrackingVolume () |
| const TrackingVolume * | lowestTrackingVolume (const Amg::Vector3D &gp) const |
| return the lowest tracking Volume | |
| std::vector< const Trk::DetachedTrackingVolume * > | lowestDetachedTrackingVolumes (const Amg::Vector3D &gp) const |
| return the vector of lowest detached tracking Volume(->overlaps) | |
| const TrackingVolume * | lowestStaticTrackingVolume (const Amg::Vector3D &gp) const |
| return the lowest static tracking Volume | |
| const TrackingVolume * | trackingVolume (const std::string &name) const |
| return the tracking Volume by name, 0 if it doesn't exist | |
| const Layer * | associatedLayer (const Amg::Vector3D &gp) const |
| Forward the associated Layer information. | |
| const Layer * | nextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool skipNavLayer=false) const |
| Forward the next Layer information. | |
| template<class T> | |
| LayerIntersection< Amg::Vector3D > | closestMaterialLayer (const T &pars, PropDirection pDir=Trk::alongMomentum, const BoundaryCheck &bchk=true) const |
| Closest Material Layer - used for the mapping option. | |
| const std::map< Layer *, int > & | boundaryLayers () |
| Return the unique BoundarySurfaces with MaterialInformation. | |
| auto | boundaryLayers () const |
| size_t | numBoundaryLayers () const |
| NavigationLevel | navigationLevel () const |
| Return the Navigation Level - only one TrackingGeometry can have full association to GeoModel. | |
| void | printVolumeHierarchy (MsgStream &msgstream) const |
| Print the summary of volume Hierarchy of the TrackingGeometry. | |
| void | indexStaticLayers (GeometrySignature geosit, int offset=0) |
| indexLayers : method to re-set the index of the layers, depending on geometrySignature | |
| void | dump (MsgStream &out, const std::string &head) const |
| void | addToGarbage (std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > &&garbageVec) |
| void | addToGarbage (std::vector< std::unique_ptr< Trk::TrackingVolume > > &&garbageVec) |
Static Public Member Functions | |
| static bool | atVolumeBoundary (const Amg::Vector3D &gp, const TrackingVolume *vol, double tol) |
| check position at volume boundary | |
| static bool | atVolumeBoundary (const Amg::Vector3D &gp, const Amg::Vector3D &mom, const TrackingVolume *vol, const TrackingVolume *&nextVol, Trk::PropDirection dir, double tol) |
| check position at volume boundary + navigation link | |
Private Member Functions | |
| void | sign (GeometrySignature geosit, GeometryType geotype=Static) |
| Geometry Builder busineess: the geometry builder has to sign. | |
| void | compactify (MsgStream &msgstream, TrackingVolume *vol=nullptr) |
| Geometry Builder busineess: set all contained surfaces TG owned - this should save memory and avoid surface copying. | |
| void | synchronizeLayers (MsgStream &msgstream, TrackingVolume *vol=nullptr) |
| Geometry Builder business: synchronize all layers to enclosed volume dimensions. | |
| void | registerNavigationLevel (NavigationLevel navlevel) |
| private method the Navigation Level | |
| void | registerTrackingVolumes (TrackingVolume &tvol, TrackingVolume *mvol=nullptr, int lvl=0) |
| private method to register recursively the tracking volumes | |
| TrackingVolume * | checkoutHighestTrackingVolume () |
| private method to be called from GeometryBuilder: return the world with ownership | |
| void | printVolumeInformation (MsgStream &msgstream, const TrackingVolume &tvol, int lvl) const |
| print VolumeInformation with Level | |
Static Private Member Functions | |
| static void | dumpLayer (MsgStream &out, const std::string &head, const Layer *layer) |
Private Attributes | |
| std::unique_ptr< TrackingVolume > | m_world |
| The known world - and the beam. | |
| std::map< Layer *, int > | m_boundaryLayers |
| The unique boundary Layers. | |
| std::map< const std::string, const TrackingVolume * > | m_trackingVolumes |
| The Volumes in a map for later finding. | |
| NavigationLevel | m_navigationLevel |
| The Navigation level for identification. | |
| std::vector< std::unique_ptr< DetachedTrackingVolume > > | m_detachedVolGarbage {} |
| In some cases the Tracking Geometry needs to keep certain objectss alive delete them at the end of its lifetime. | |
| std::vector< std::unique_ptr< TrackingVolume > > | m_trkVolumeGarbage {} |
Friends | |
| class | GeometryBuilder |
| Give the GeometryBuilder friend rights. | |
| class | GeometryBuilderCond |
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
It enables both, a global search for an asociatedVolume (respectively, if existing, a global search of an associated Layer or the next associated Layer), such as a continous navigation by BoundarySurfaces between the confined TrackingVolumes.
Definition at line 66 of file TrackingGeometry.h.
| Trk::TrackingGeometry::TrackingGeometry | ( | TrackingVolume * | highestVolume, |
| NavigationLevel | navlevel = globalSearch ) |
Constructor.
Definition at line 24 of file TrackingGeometry.cxx.
|
virtual |
| void Trk::TrackingGeometry::addToGarbage | ( | std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > && | garbageVec | ) |
Definition at line 35 of file TrackingGeometry.cxx.
| void Trk::TrackingGeometry::addToGarbage | ( | std::vector< std::unique_ptr< Trk::TrackingVolume > > && | garbageVec | ) |
Definition at line 40 of file TrackingGeometry.cxx.
| const Layer * Trk::TrackingGeometry::associatedLayer | ( | const Amg::Vector3D & | gp | ) | const |
Forward the associated Layer information.
|
static |
check position at volume boundary + navigation link
Definition at line 262 of file TrackingGeometry.cxx.
|
static |
check position at volume boundary
Definition at line 244 of file TrackingGeometry.cxx.
| const std::map< Layer *, int > & Trk::TrackingGeometry::boundaryLayers | ( | ) |
Return the unique BoundarySurfaces with MaterialInformation.
| auto Trk::TrackingGeometry::boundaryLayers | ( | ) | const |
|
private |
private method to be called from GeometryBuilder: return the world with ownership
Definition at line 164 of file TrackingGeometry.cxx.
| LayerIntersection< Amg::Vector3D > Trk::TrackingGeometry::closestMaterialLayer | ( | const T & | pars, |
| PropDirection | pDir = Trk::alongMomentum, | ||
| const BoundaryCheck & | bchk = true ) const |
|
private |
Geometry Builder busineess: set all contained surfaces TG owned - this should save memory and avoid surface copying.
Definition at line 136 of file TrackingGeometry.cxx.
| void Trk::TrackingGeometry::dump | ( | MsgStream & | out, |
| const std::string & | head ) const |
Definition at line 288 of file TrackingGeometry.cxx.
|
staticprivate |
Definition at line 323 of file TrackingGeometry.cxx.
| TrackingVolume * Trk::TrackingGeometry::highestTrackingVolume | ( | ) |
| const TrackingVolume * Trk::TrackingGeometry::highestTrackingVolume | ( | ) | const |
return the world
| void Trk::TrackingGeometry::indexStaticLayers | ( | GeometrySignature | geosit, |
| int | offset = 0 ) |
indexLayers : method to re-set the index of the layers, depending on geometrySignature
Definition at line 235 of file TrackingGeometry.cxx.
| std::vector< const Trk::DetachedTrackingVolume * > Trk::TrackingGeometry::lowestDetachedTrackingVolumes | ( | const Amg::Vector3D & | gp | ) | const |
return the vector of lowest detached tracking Volume(->overlaps)
Definition at line 59 of file TrackingGeometry.cxx.
| const Trk::TrackingVolume * Trk::TrackingGeometry::lowestStaticTrackingVolume | ( | const Amg::Vector3D & | gp | ) | const |
return the lowest static tracking Volume
Definition at line 71 of file TrackingGeometry.cxx.
| const Trk::TrackingVolume * Trk::TrackingGeometry::lowestTrackingVolume | ( | const Amg::Vector3D & | gp | ) | const |
return the lowest tracking Volume
Definition at line 47 of file TrackingGeometry.cxx.
| NavigationLevel Trk::TrackingGeometry::navigationLevel | ( | ) | const |
Return the Navigation Level - only one TrackingGeometry can have full association to GeoModel.
| const Layer * Trk::TrackingGeometry::nextLayer | ( | const Amg::Vector3D & | gp, |
| const Amg::Vector3D & | mom, | ||
| bool | skipNavLayer = false ) const |
Forward the next Layer information.
| size_t Trk::TrackingGeometry::numBoundaryLayers | ( | ) | const |
| void Trk::TrackingGeometry::printVolumeHierarchy | ( | MsgStream & | msgstream | ) | const |
Print the summary of volume Hierarchy of the TrackingGeometry.
Definition at line 172 of file TrackingGeometry.cxx.
|
private |
print VolumeInformation with Level
Definition at line 183 of file TrackingGeometry.cxx.
|
private |
private method the Navigation Level
|
private |
private method to register recursively the tracking volumes
should detached tracking volumes be part of the tracking geometry ?
register the boundary layers
Definition at line 84 of file TrackingGeometry.cxx.
|
private |
Geometry Builder busineess: the geometry builder has to sign.
|
private |
Geometry Builder business: synchronize all layers to enclosed volume dimensions.
Definition at line 157 of file TrackingGeometry.cxx.
| const TrackingVolume * Trk::TrackingGeometry::trackingVolume | ( | const std::string & | name | ) | const |
return the tracking Volume by name, 0 if it doesn't exist
|
friend |
Give the GeometryBuilder friend rights.
Definition at line 70 of file TrackingGeometry.h.
|
friend |
Definition at line 72 of file TrackingGeometry.h.
|
private |
The unique boundary Layers.
Definition at line 190 of file TrackingGeometry.h.
|
private |
In some cases the Tracking Geometry needs to keep certain objectss alive delete them at the end of its lifetime.
This should typically happen for objects that can be referenced but are not owned by any other object
Definition at line 204 of file TrackingGeometry.h.
|
private |
The Navigation level for identification.
Definition at line 196 of file TrackingGeometry.h.
|
private |
The Volumes in a map for later finding.
Definition at line 193 of file TrackingGeometry.h.
|
private |
Definition at line 205 of file TrackingGeometry.h.
|
private |
The known world - and the beam.
Definition at line 187 of file TrackingGeometry.h.