![]() |
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 | |
| 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 65 of file TrackingGeometry.h.
| Trk::TrackingGeometry::TrackingGeometry | ( | TrackingVolume * | highestVolume, |
| NavigationLevel | navlevel = globalSearch ) |
Constructor.
Definition at line 24 of file TrackingGeometry.cxx.
|
virtual |
Destructor.
Definition at line 33 of file TrackingGeometry.cxx.
| void Trk::TrackingGeometry::addToGarbage | ( | std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > && | garbageVec | ) |
Definition at line 36 of file TrackingGeometry.cxx.
| void Trk::TrackingGeometry::addToGarbage | ( | std::vector< std::unique_ptr< Trk::TrackingVolume > > && | garbageVec | ) |
Definition at line 41 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 264 of file TrackingGeometry.cxx.
|
static |
check position at volume boundary
Definition at line 246 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 165 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 137 of file TrackingGeometry.cxx.
| void Trk::TrackingGeometry::dump | ( | MsgStream & | out, |
| const std::string & | head ) const |
Definition at line 290 of file TrackingGeometry.cxx.
|
staticprivate |
Definition at line 325 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 237 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 60 of file TrackingGeometry.cxx.
| const Trk::TrackingVolume * Trk::TrackingGeometry::lowestStaticTrackingVolume | ( | const Amg::Vector3D & | gp | ) | const |
return the lowest static tracking Volume
Definition at line 72 of file TrackingGeometry.cxx.
| const Trk::TrackingVolume * Trk::TrackingGeometry::lowestTrackingVolume | ( | const Amg::Vector3D & | gp | ) | const |
return the lowest tracking Volume
Definition at line 48 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 174 of file TrackingGeometry.cxx.
|
private |
print VolumeInformation with Level
Definition at line 185 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 85 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 158 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 69 of file TrackingGeometry.h.
|
friend |
Definition at line 71 of file TrackingGeometry.h.
|
private |
The unique boundary Layers.
Definition at line 189 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 203 of file TrackingGeometry.h.
|
private |
The Navigation level for identification.
Definition at line 195 of file TrackingGeometry.h.
|
private |
The Volumes in a map for later finding.
Definition at line 192 of file TrackingGeometry.h.
|
private |
Definition at line 204 of file TrackingGeometry.h.
|
private |