ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::TrackingGeometry Class Reference

The TrackingGeometry class is the owner of the constructed TrackingVolumes. More...

#include <TrackingGeometry.h>

Collaboration diagram for Trk::TrackingGeometry:

Public Member Functions

 TrackingGeometry (TrackingVolume *highestVolume, NavigationLevel navlevel=globalSearch)
 Constructor.
virtual ~TrackingGeometry ()
 Destructor.
const TrackingVolumehighestTrackingVolume () const
 return the world
TrackingVolumehighestTrackingVolume ()
const TrackingVolumelowestTrackingVolume (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 TrackingVolumelowestStaticTrackingVolume (const Amg::Vector3D &gp) const
 return the lowest static tracking Volume
const TrackingVolumetrackingVolume (const std::string &name) const
 return the tracking Volume by name, 0 if it doesn't exist
const LayerassociatedLayer (const Amg::Vector3D &gp) const
 Forward the associated Layer information.
const LayernextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool skipNavLayer=false) const
 Forward the next Layer information.
template<class T>
LayerIntersection< Amg::Vector3DclosestMaterialLayer (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
TrackingVolumecheckoutHighestTrackingVolume ()
 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

TrackingVolumem_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

Detailed Description

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.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Christos Anastopoulos (Athena MT modifications)

Definition at line 65 of file TrackingGeometry.h.

Constructor & Destructor Documentation

◆ TrackingGeometry()

Trk::TrackingGeometry::TrackingGeometry ( TrackingVolume * highestVolume,
NavigationLevel navlevel = globalSearch )

Constructor.

Definition at line 24 of file TrackingGeometry.cxx.

25 :
26 m_world(highestVolume),
27 m_navigationLevel(navLev) {
28 // for the time being only world
29 if (!m_world) return;
31}
TrackingVolume * m_world
The known world - and the beam.
void registerTrackingVolumes(TrackingVolume &tvol, TrackingVolume *mvol=nullptr, int lvl=0)
private method to register recursively the tracking volumes
NavigationLevel m_navigationLevel
The Navigation level for identification.

◆ ~TrackingGeometry()

Trk::TrackingGeometry::~TrackingGeometry ( )
virtual

Destructor.

Definition at line 33 of file TrackingGeometry.cxx.

33 {
34 if (m_world) delete m_world;
35}

Member Function Documentation

◆ addToGarbage() [1/2]

void Trk::TrackingGeometry::addToGarbage ( std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > && garbageVec)

Definition at line 36 of file TrackingGeometry.cxx.

36 {
38 std::make_move_iterator(garbageVec.begin()),
39 std::make_move_iterator(garbageVec.end()));
40}
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 it...

◆ addToGarbage() [2/2]

void Trk::TrackingGeometry::addToGarbage ( std::vector< std::unique_ptr< Trk::TrackingVolume > > && garbageVec)

Definition at line 41 of file TrackingGeometry.cxx.

41 {
43 std::make_move_iterator(garbageVec.begin()),
44 std::make_move_iterator(garbageVec.end()));
45}
std::vector< std::unique_ptr< TrackingVolume > > m_trkVolumeGarbage

◆ associatedLayer()

const Layer * Trk::TrackingGeometry::associatedLayer ( const Amg::Vector3D & gp) const

Forward the associated Layer information.

◆ atVolumeBoundary() [1/2]

bool Trk::TrackingGeometry::atVolumeBoundary ( const Amg::Vector3D & gp,
const Amg::Vector3D & mom,
const TrackingVolume * vol,
const TrackingVolume *& nextVol,
Trk::PropDirection dir,
double tol )
static

check position at volume boundary + navigation link

Definition at line 264 of file TrackingGeometry.cxx.

270{
271 bool isAtBoundary = false;
272 nextVol = nullptr;
273 if (!vol)
274 return isAtBoundary;
275 const auto& bounds = vol->boundarySurfaces();
276 for (size_t ib = 0; ib < bounds.size(); ++ib) {
277 const Trk::Surface& surf = bounds[ib]->surfaceRepresentation();
278 if (surf.isOnSurface(gp, true, tol, tol)) {
279 isAtBoundary = true;
280 const Trk::TrackingVolume* attachedVol =
281 bounds[ib]->attachedVolume(gp, mom, dir);
282 if (!nextVol && attachedVol)
283 nextVol = attachedVol;
284 }
285 }
286 return isAtBoundary;
287}
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
Definition Surface.cxx:123

◆ atVolumeBoundary() [2/2]

bool Trk::TrackingGeometry::atVolumeBoundary ( const Amg::Vector3D & gp,
const TrackingVolume * vol,
double tol )
static

check position at volume boundary

Definition at line 246 of file TrackingGeometry.cxx.

249{
250 bool isAtBoundary = false;
251 if (!vol)
252 return isAtBoundary;
253 const auto& bounds = vol->boundarySurfaces();
254 for (size_t ib = 0; ib < bounds.size(); ++ib) {
255 const Trk::Surface& surf = bounds[ib]->surfaceRepresentation();
256 if (surf.isOnSurface(gp, true, tol, tol))
257 isAtBoundary = true;
258 }
259 return isAtBoundary;
260}

◆ boundaryLayers() [1/2]

const std::map< Layer *, int > & Trk::TrackingGeometry::boundaryLayers ( )

Return the unique BoundarySurfaces with MaterialInformation.

◆ boundaryLayers() [2/2]

auto Trk::TrackingGeometry::boundaryLayers ( ) const

◆ checkoutHighestTrackingVolume()

Trk::TrackingVolume * Trk::TrackingGeometry::checkoutHighestTrackingVolume ( )
private

private method to be called from GeometryBuilder: return the world with ownership

Definition at line 165 of file TrackingGeometry.cxx.

165 {
166 Trk::TrackingVolume* checkoutVolume{nullptr};
167 std::swap(m_world, checkoutVolume);
168 // clear the boundary layers they go with the highest volume
169 m_boundaryLayers.clear();
170 return checkoutVolume;
171}
std::map< Layer *, int > m_boundaryLayers
The unique boundary Layers.
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)

◆ closestMaterialLayer()

template<class T>
LayerIntersection< Amg::Vector3D > Trk::TrackingGeometry::closestMaterialLayer ( const T & pars,
PropDirection pDir = Trk::alongMomentum,
const BoundaryCheck & bchk = true ) const

Closest Material Layer - used for the mapping option.

◆ compactify()

void Trk::TrackingGeometry::compactify ( MsgStream & msgstream,
TrackingVolume * vol = nullptr )
private

Geometry Builder busineess: set all contained surfaces TG owned - this should save memory and avoid surface copying.

  • prints compactification statistics

Definition at line 137 of file TrackingGeometry.cxx.

138{
139 msg << MSG::VERBOSE
140 << "====== Calling TrackingGeometry::compactify() ===== " << std::endl;
141 Trk::TrackingVolume* tVolume = vol ? vol : highestTrackingVolume();
142 size_t cSurfaces = 0;
143 size_t tSurfaces = 0;
144 if (tVolume) {
145 tVolume->compactify(cSurfaces, tSurfaces);
146 }
147 msg << MSG::VERBOSE << " --> set TG ownership of " << cSurfaces << " out of "
148 << tSurfaces << std::endl;
149 for (const auto& bLayerIter : m_boundaryLayers) {
150 bLayerIter.first->surfaceRepresentation().setOwner(Trk::TGOwn);
151 }
152 msg << MSG::VERBOSE << " --> set TG ownership of " << m_boundaryLayers.size()
153 << " boundary layers." << std::endl;
154 msg << MSG::VERBOSE << endmsg;
155}
#define endmsg
const TrackingVolume * highestTrackingVolume() const
return the world
void compactify(size_t &rSurfaces, size_t &tSurfaces)
compactify the memory usage in the event by setting ownership to TackingGeometry the referenced types...
MsgStream & msg
Definition testRead.cxx:32

◆ dump()

void Trk::TrackingGeometry::dump ( MsgStream & out,
const std::string & head ) const

Definition at line 290 of file TrackingGeometry.cxx.

291{
292 out << MSG::ALWAYS;
293 for (const auto& bound_layers : m_boundaryLayers) {
294 out << head << " [" << bound_layers.second << "] ";
295 dumpLayer(out, "", bound_layers.first);
296 }
297 int counter = 0;
298 for (const std::pair<const std::string, const TrackingVolume*>& volume : m_trackingVolumes) {
299 out << head << " [" << counter++ << "] " << volume.first << " volumeBound=";
300 volume.second->volumeBounds().dump(out);
301 out << std::endl;
303 volume.second->confinedArbitraryLayers();
304 if (!confArbLayers.empty()) {
305 int j = 0;
306 for (const Layer* confined_layer : confArbLayers) {
307 out << head << " [" << counter++ << "] " << volume.first
308 << " confinedArbitrary layer " << j++ << " ";
309 dumpLayer(out, "", confined_layer);
310 }
311 }
312 if (volume.second->confinedLayers()) {
313 int j = 0;
314 for (const Layer* confined_layer :
315 volume.second->confinedLayers()->arrayObjects()) {
316 out << head << " [" << counter++ << "] " << volume.first
317 << " confined layer" << j++ << " ";
318 dumpLayer(out, "", confined_layer);
319 }
320 }
321 }
322 out << endmsg;
323}
static void dumpLayer(MsgStream &out, const std::string &head, const Layer *layer)
std::map< const std::string, const TrackingVolume * > m_trackingVolumes
The Volumes in a map for later finding.
std::string head(std::string s, const std::string &pattern)
head of a string
std::span< T > ArraySpan

◆ dumpLayer()

void Trk::TrackingGeometry::dumpLayer ( MsgStream & out,
const std::string & head,
const Layer * layer )
staticprivate

Definition at line 325 of file TrackingGeometry.cxx.

328{
329 if (!layer) {
330 return;
331 }
332 out << head << layer->layerIndex().value() << " [t=" << layer->layerType()
333 << "] d=" << layer->thickness();
334 out << layer->surfaceRepresentation();
335 out << std::endl;
336}
@ layer
Definition HitInfo.h:79

◆ highestTrackingVolume() [1/2]

TrackingVolume * Trk::TrackingGeometry::highestTrackingVolume ( )

◆ highestTrackingVolume() [2/2]

const TrackingVolume * Trk::TrackingGeometry::highestTrackingVolume ( ) const

return the world

◆ indexStaticLayers()

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.

238{
239 if (m_world) {
240 m_world->indexContainedStaticLayers(geosit, offset);
241 m_world->indexContainedMaterialLayers(geosit, offset);
242 }
243}

◆ lowestDetachedTrackingVolumes()

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.

62{
63 double tol = 0.001;
64 const Trk::TrackingVolume* currentVolume = lowestStaticTrackingVolume(gp);
65 if (currentVolume){
66 return currentVolume->assocDetachedSubVolumes(gp, tol);
67 }
68 return {};
69}
const TrackingVolume * lowestStaticTrackingVolume(const Amg::Vector3D &gp) const
return the lowest static tracking Volume
std::vector< const DetachedTrackingVolume * > assocDetachedSubVolumes(const Amg::Vector3D &gp, double tol) const
Return the associated detached subvolumes.

◆ lowestStaticTrackingVolume()

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.

73{
74 const Trk::TrackingVolume* searchVolume = highestTrackingVolume();
75 const Trk::TrackingVolume* currentVolume = nullptr;
76 while (currentVolume != searchVolume && searchVolume) {
77 currentVolume = searchVolume;
78 if (searchVolume->confinedDetachedVolumes().empty())
79 searchVolume = searchVolume->associatedSubVolume(gp);
80 }
81 return (currentVolume);
82}
const TrackingVolume * associatedSubVolume(const Amg::Vector3D &gp) const
Return the associated sub Volume, returns THIS if no subVolume exists.
ArraySpan< DetachedTrackingVolume const *const > confinedDetachedVolumes() const
Return detached subVolumes - not the ownership.

◆ lowestTrackingVolume()

const Trk::TrackingVolume * Trk::TrackingGeometry::lowestTrackingVolume ( const Amg::Vector3D & gp) const

return the lowest tracking Volume

Definition at line 48 of file TrackingGeometry.cxx.

49{
50 const Trk::TrackingVolume* searchVolume = highestTrackingVolume();
51 const Trk::TrackingVolume* currentVolume = nullptr;
52 while (currentVolume != searchVolume && searchVolume) {
53 currentVolume = searchVolume;
54 searchVolume = searchVolume->associatedSubVolume(gp);
55 }
56 return (currentVolume);
57}

◆ navigationLevel()

NavigationLevel Trk::TrackingGeometry::navigationLevel ( ) const

Return the Navigation Level - only one TrackingGeometry can have full association to GeoModel.

◆ nextLayer()

const Layer * Trk::TrackingGeometry::nextLayer ( const Amg::Vector3D & gp,
const Amg::Vector3D & mom,
bool skipNavLayer = false ) const

Forward the next Layer information.

◆ numBoundaryLayers()

size_t Trk::TrackingGeometry::numBoundaryLayers ( ) const

◆ printVolumeHierarchy()

void Trk::TrackingGeometry::printVolumeHierarchy ( MsgStream & msgstream) const

Print the summary of volume Hierarchy of the TrackingGeometry.

Definition at line 174 of file TrackingGeometry.cxx.

175{
176 msg << "TrackingGeometry Summary : " << std::endl;
177 const Trk::TrackingVolume* highestVolume = highestTrackingVolume();
178 int level = 0;
179 if (highestVolume)
180 printVolumeInformation(msg, *highestVolume, level);
181 msg << endmsg;
182}
void printVolumeInformation(MsgStream &msgstream, const TrackingVolume &tvol, int lvl) const
print VolumeInformation with Level

◆ printVolumeInformation()

void Trk::TrackingGeometry::printVolumeInformation ( MsgStream & msgstream,
const TrackingVolume & tvol,
int lvl ) const
private

print VolumeInformation with Level

Definition at line 185 of file TrackingGeometry.cxx.

188{
189 int sublevel = lvl + 1;
190
191 for (int indent = 0; indent < sublevel; ++indent)
192 msg << " ";
193 msg << "TrackingVolume ( at : " << (&tvol) << ") name: " << tvol.volumeName()
194 << std::endl;
195
196 const Trk::BinnedArray<Trk::Layer>* confinedLayers = tvol.confinedLayers();
197 if (confinedLayers) {
198 std::span<Trk::Layer const* const> layers =
199 confinedLayers->arrayObjects();
200 for (int indent = 0; indent < sublevel; ++indent)
201 msg << " ";
202 msg << "- found : " << layers.size() << " confined Layers" << std::endl;
203 }
204
205 const Trk::BinnedArray<Trk::TrackingVolume>* confinedVolumes =
206 tvol.confinedVolumes();
207 if (confinedVolumes) {
208 std::span<Trk::TrackingVolume const* const> volumes =
209 confinedVolumes->arrayObjects();
210
211 for (int indent = 0; indent < sublevel; ++indent)
212 msg << " ";
213 msg << "- found : " << volumes.size() << " confined TrackingVolumes"
214 << std::endl;
215
216 for (const auto& volumesIter : volumes)
217 if (volumesIter)
218 printVolumeInformation(msg, *volumesIter, sublevel);
219 }
220
222 tvol.confinedDenseVolumes();
223 if (!confinedDenseVolumes.empty()) {
224 for (int indent = 0; indent < sublevel; ++indent) {
225 msg << " ";
226 }
227 msg << "- found : " << confinedDenseVolumes.size()
228 << " confined unordered (dense) TrackingVolumes" << std::endl;
229
230 for (const auto& volumesIter : (confinedDenseVolumes))
231 if (volumesIter) {
232 printVolumeInformation(msg, *volumesIter, sublevel);
233 }
234 }
235}
virtual std::span< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
layers(flags, cells_name, *args, **kw)
Here we define wrapper functions to set up all of the standard corrections.

◆ registerNavigationLevel()

void Trk::TrackingGeometry::registerNavigationLevel ( NavigationLevel navlevel)
private

private method the Navigation Level

◆ registerTrackingVolumes()

void Trk::TrackingGeometry::registerTrackingVolumes ( Trk::TrackingVolume & tvol,
Trk::TrackingVolume * mvol = nullptr,
int lvl = 0 )
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.

88{
89 int sublvl = lvl + 1;
90 std::string indent = "";
91 for (int l = 0; l < lvl; ++l){
92 indent += " ";
93 }
94
95 tvol.setMotherVolume(mvol);
96 m_trackingVolumes[tvol.volumeName()] = (&tvol);
97 Trk::BinnedArray<Trk::TrackingVolume>* confinedVolumes = tvol.confinedVolumes();
98 if (confinedVolumes) {
99 std::span<Trk::TrackingVolume* const> volumes = confinedVolumes->arrayObjects();
100 for (const auto& volumesIter : volumes){
101 if (volumesIter){
102 registerTrackingVolumes(*volumesIter, &tvol, sublvl);
103 }
104 }
105 }
106
108 if (!confinedDenseVolumes.empty()) {
109 for (const auto& volumesIter : confinedDenseVolumes){
110 if (volumesIter){
111 registerTrackingVolumes(*volumesIter, &tvol, sublvl);
112 }
113 }
114 }
117 if (!confinedDetachedVolumes.empty()) {
118 for (const auto& volumesIter : confinedDetachedVolumes){
119 if (volumesIter &&
120 tvol.inside(volumesIter->trackingVolume()->center(), 0.)){
121 registerTrackingVolumes( *(volumesIter->trackingVolume()), &tvol, sublvl);
122 }
123 }
124 }
126 // boundary layers
127 const auto& bounds = tvol.boundarySurfaces();
128 for (const auto & bound : bounds) {
129 Trk::MaterialLayer* bLayer = bound->surfaceRepresentation().materialLayer();
130 if (bLayer) {
131 int& layerCount{m_boundaryLayers[bLayer]};
132 ++layerCount;
133 }
134 }
135}
void setMotherVolume(const TrackingVolume *mvol)
set the MotherVolume
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
ArraySpan< TrackingVolume const *const > confinedDenseVolumes() const
Return unordered subVolumes - not the ownership.
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
Definition Volume.cxx:72
l
Printing final latex table to .tex output file.

◆ sign()

void Trk::TrackingGeometry::sign ( GeometrySignature geosit,
GeometryType geotype = Static )
private

Geometry Builder busineess: the geometry builder has to sign.

◆ synchronizeLayers()

void Trk::TrackingGeometry::synchronizeLayers ( MsgStream & msgstream,
TrackingVolume * vol = nullptr )
private

Geometry Builder business: synchronize all layers to enclosed volume dimensions.

Definition at line 158 of file TrackingGeometry.cxx.

159{
160 Trk::TrackingVolume* tVolume = vol ? vol : highestTrackingVolume();
161 tVolume->synchronizeLayers(msg);
162}
void synchronizeLayers(MsgStream &msgstream, double envelope=1.)
method to synchronize the layers with potentially updated volume bounds:

◆ trackingVolume()

const TrackingVolume * Trk::TrackingGeometry::trackingVolume ( const std::string & name) const

return the tracking Volume by name, 0 if it doesn't exist

◆ GeometryBuilder

friend class GeometryBuilder
friend

Give the GeometryBuilder friend rights.

Definition at line 69 of file TrackingGeometry.h.

◆ GeometryBuilderCond

friend class GeometryBuilderCond
friend

Definition at line 71 of file TrackingGeometry.h.

Member Data Documentation

◆ m_boundaryLayers

std::map<Layer*, int> Trk::TrackingGeometry::m_boundaryLayers
private

The unique boundary Layers.

Definition at line 189 of file TrackingGeometry.h.

◆ m_detachedVolGarbage

std::vector<std::unique_ptr<DetachedTrackingVolume> > Trk::TrackingGeometry::m_detachedVolGarbage {}
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.

203{};

◆ m_navigationLevel

NavigationLevel Trk::TrackingGeometry::m_navigationLevel
private

The Navigation level for identification.

Definition at line 195 of file TrackingGeometry.h.

◆ m_trackingVolumes

std::map<const std::string, const TrackingVolume*> Trk::TrackingGeometry::m_trackingVolumes
private

The Volumes in a map for later finding.

Definition at line 192 of file TrackingGeometry.h.

◆ m_trkVolumeGarbage

std::vector<std::unique_ptr<TrackingVolume> > Trk::TrackingGeometry::m_trkVolumeGarbage {}
private

Definition at line 204 of file TrackingGeometry.h.

204{};

◆ m_world

TrackingVolume* Trk::TrackingGeometry::m_world {}
private

The known world - and the beam.

Definition at line 186 of file TrackingGeometry.h.

186{};

The documentation for this class was generated from the following files: