Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
Trk::TrackingGeometry Class Reference

#include <TrackingGeometry.h>

Collaboration diagram for Trk::TrackingGeometry:

Classes

class  constTransformLayerMap
 

Public Types

using constMapRange_t = boost::iterator_range< iterator_convert_const_t >
 

Public Member Functions

 TrackingGeometry (TrackingVolume *highestVolume, NavigationLevel navlevel=globalSearch)
 Constructor. More...
 
virtual ~TrackingGeometry ()
 Destructor. More...
 
const TrackingVolumehighestTrackingVolume () const
 return the world More...
 
TrackingVolumehighestTrackingVolume ()
 
const TrackingVolumelowestTrackingVolume (const Amg::Vector3D &gp) const
 return the lowest tracking Volume More...
 
std::vector< const Trk::DetachedTrackingVolume * > lowestDetachedTrackingVolumes (const Amg::Vector3D &gp) const
 return the vector of lowest detached tracking Volume(->overlaps) More...
 
const TrackingVolumelowestStaticTrackingVolume (const Amg::Vector3D &gp) const
 return the lowest static tracking Volume More...
 
const TrackingVolumetrackingVolume (const std::string &name) const
 return the tracking Volume by name, 0 if it doesn't exist More...
 
const LayerassociatedLayer (const Amg::Vector3D &gp) const
 Forward the associated Layer information. More...
 
const LayernextLayer (const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool skipNavLayer=false) const
 Forward the next Layer information. More...
 
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. More...
 
const std::map< Layer *, int > & boundaryLayers ()
 Return the unique BoundarySurfaces with MaterialInformation. More...
 
constMapRange_t boundaryLayers () const
 
size_t numBoundaryLayers () const
 
NavigationLevel navigationLevel () const
 Return the Navigation Level - only one TrackingGeometry can have full association to GeoModel. More...
 
void printVolumeHierarchy (MsgStream &msgstream) const
 Print the summary of volume Hierarchy of the TrackingGeometry. More...
 
void indexStaticLayers (GeometrySignature geosit, int offset=0)
 indexLayers : method to re-set the index of the layers, depending on geometrySignature More...
 
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 More...
 
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 More...
 

Private Types

using iterator_convert_const_t = boost::transform_iterator< constTransformLayerMap, std::map< Trk::Layer *, int >::const_iterator >
 

Private Member Functions

void sign (GeometrySignature geosit, GeometryType geotype=Static)
 Geometry Builder busineess: the geometry builder has to sign. More...
 
void compactify (MsgStream &msgstream, TrackingVolume *vol=nullptr)
 Geometry Builder busineess: set all contained surfaces TG owned - this should save memory and avoid surface copying. More...
 
void synchronizeLayers (MsgStream &msgstream, TrackingVolume *vol=nullptr)
 Geometry Builder business: synchronize all layers to enclosed volume dimensions. More...
 
void registerNavigationLevel (NavigationLevel navlevel)
 private method the Navigation Level More...
 
void registerTrackingVolumes (TrackingVolume &tvol, TrackingVolume *mvol=nullptr, int lvl=0)
 private method to register recursively the tracking volumes More...
 
TrackingVolumecheckoutHighestTrackingVolume ()
 private method to be called from GeometryBuilder: return the world with ownership More...
 
void printVolumeInformation (MsgStream &msgstream, const TrackingVolume &tvol, int lvl) const
 print VolumeInformation with Level More...
 

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. More...
 
std::map< Layer *, int > m_boundaryLayers
 The unique boundary Layers. More...
 
std::map< const std::string, const TrackingVolume * > m_trackingVolumes
 The Volumes in a map for later finding. More...
 
NavigationLevel m_navigationLevel
 The Navigation level for identification. More...
 
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. More...
 
std::vector< std::unique_ptr< TrackingVolume > > m_trkVolumeGarbage {}
 

Friends

class GeometryBuilder
 Give the GeometryBuilder friend rights. More...
 
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 66 of file TrackingGeometry.h.

Member Typedef Documentation

◆ constMapRange_t

Definition at line 91 of file TrackingGeometry.h.

◆ iterator_convert_const_t

using Trk::TrackingGeometry::iterator_convert_const_t = boost::transform_iterator<constTransformLayerMap, std::map<Trk::Layer*, int>::const_iterator>
private

Definition at line 85 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 }

◆ ~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 }

◆ 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 }

◆ 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 }

◆ 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]

constMapRange_t 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 }

◆ 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 }

◆ 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 }

◆ 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 }

◆ 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) {
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 }

◆ 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 }

◆ 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 }

◆ 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 }

◆ 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);
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) {
130  if (bLayer) {
131  int& layerCount{m_boundaryLayers[bLayer]};
132  ++layerCount;
133  }
134  }
135 }

◆ 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 }

◆ trackingVolume()

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

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

Friends And Related Function Documentation

◆ GeometryBuilder

friend class GeometryBuilder
friend

Give the GeometryBuilder friend rights.

Definition at line 70 of file TrackingGeometry.h.

◆ GeometryBuilderCond

friend class GeometryBuilderCond
friend

Definition at line 72 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 206 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 220 of file TrackingGeometry.h.

◆ m_navigationLevel

NavigationLevel Trk::TrackingGeometry::m_navigationLevel
private

The Navigation level for identification.

Definition at line 212 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 209 of file TrackingGeometry.h.

◆ m_trkVolumeGarbage

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

Definition at line 221 of file TrackingGeometry.h.

◆ m_world

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

The known world - and the beam.

Definition at line 203 of file TrackingGeometry.h.


The documentation for this class was generated from the following files:
Trk::Surface::materialLayer
const Trk::MaterialLayer * materialLayer() const
return the material Layer
Trk::TrackingGeometry::m_world
TrackingVolume * m_world
The known world - and the beam.
Definition: TrackingGeometry.h:203
Trk::TrackingGeometry::m_boundaryLayers
std::map< Layer *, int > m_boundaryLayers
The unique boundary Layers.
Definition: TrackingGeometry.h:206
Trk::Volume::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
Definition: Volume.cxx:72
Trk::TrackingVolume::associatedSubVolume
const TrackingVolume * associatedSubVolume(const Amg::Vector3D &gp) const
Return the associated sub Volume, returns THIS if no subVolume exists.
Definition: TrackingVolume.cxx:530
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:114
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
PlotCalibFromCool.ib
ib
Definition: PlotCalibFromCool.py:419
Trk::TrackingGeometry::registerTrackingVolumes
void registerTrackingVolumes(TrackingVolume &tvol, TrackingVolume *mvol=nullptr, int lvl=0)
private method to register recursively the tracking volumes
Definition: TrackingGeometry.cxx:85
Trk::TrackingVolume::confinedDetachedVolumes
ArraySpan< DetachedTrackingVolume const *const > confinedDetachedVolumes() const
Return detached subVolumes - not the ownership.
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
Trk::MaterialLayer::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const override=0
Transforms the layer into a Surface representation for extrapolation.
Trk::TrackingVolume::indexContainedMaterialLayers
void indexContainedMaterialLayers(GeometrySignature geoSig, int &offset)
reIndex the material layers of the TrackingVolume
Definition: TrackingVolume.cxx:689
Trk::TrackingGeometry::m_trkVolumeGarbage
std::vector< std::unique_ptr< TrackingVolume > > m_trkVolumeGarbage
Definition: TrackingGeometry.h:221
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
Trk::TrackingGeometry::dumpLayer
static void dumpLayer(MsgStream &out, const std::string &head, const Layer *layer)
Definition: TrackingGeometry.cxx:325
Trk::TrackingGeometry::highestTrackingVolume
const TrackingVolume * highestTrackingVolume() const
return the world
Trk::Surface::isOnSurface
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
Trk::TrackingVolume::indexContainedStaticLayers
void indexContainedStaticLayers(GeometrySignature geoSig, int &offset)
reIndex the static layers of the TrackingVolume
Definition: TrackingVolume.cxx:642
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
geometry_dat_to_json.indent
indent
Definition: geometry_dat_to_json.py:37
Trk::TrackingVolume::assocDetachedSubVolumes
std::vector< const DetachedTrackingVolume * > assocDetachedSubVolumes(const Amg::Vector3D &gp, double tol) const
Return the associated detached subvolumes.
Definition: TrackingVolume.cxx:624
TrigConf::MSGTC::ALWAYS
@ ALWAYS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:29
Trk::ArraySpan
std::span< T > ArraySpan
Definition: TrackingVolume.h:59
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::TrackingVolume::confinedDenseVolumes
ArraySpan< TrackingVolume const *const > confinedDenseVolumes() const
Return unordered subVolumes - not the ownership.
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Trk::TrackingGeometry::lowestStaticTrackingVolume
const TrackingVolume * lowestStaticTrackingVolume(const Amg::Vector3D &gp) const
return the lowest static tracking Volume
Definition: TrackingGeometry.cxx:72
Trk::TrackingVolume::synchronizeLayers
void synchronizeLayers(MsgStream &msgstream, double envelope=1.)
method to synchronize the layers with potentially updated volume bounds:
Definition: TrackingVolume.cxx:1103
Trk::TrackingVolume::boundarySurfaces
std::vector< std::shared_ptr< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
Definition: TrackingVolume.cxx:809
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
Trk::BinnedArray::arrayObjects
virtual std::span< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::TGOwn
@ TGOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:58
head
std::string head(std::string s, const std::string &pattern)
head of a string
Definition: computils.cxx:311
Trk::TrackingVolume::volumeName
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
Trk::TrackingGeometry::m_navigationLevel
NavigationLevel m_navigationLevel
The Navigation level for identification.
Definition: TrackingGeometry.h:212
Trk::TrackingGeometry::m_detachedVolGarbage
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...
Definition: TrackingGeometry.h:220
Trk::TrackingVolume::confinedVolumes
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
Trk::TrackingVolume::setMotherVolume
void setMotherVolume(const TrackingVolume *mvol)
set the MotherVolume
Trk::TrackingVolume::compactify
void compactify(size_t &rSurfaces, size_t &tSurfaces)
compactify the memory usage in the event by setting ownership to TackingGeometry the referenced types...
Definition: TrackingVolume.cxx:1131
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
Trk::TrackingGeometry::printVolumeInformation
void printVolumeInformation(MsgStream &msgstream, const TrackingVolume &tvol, int lvl) const
print VolumeInformation with Level
Definition: TrackingGeometry.cxx:185
Trk::MaterialLayer
Definition: MaterialLayer.h:42
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:13
Trk::BinnedArray
Definition: BinnedArray.h:36
test_pyathena.counter
counter
Definition: test_pyathena.py:15
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::TrackingVolume
Definition: TrackingVolume.h:119
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::TrackingGeometry::m_trackingVolumes
std::map< const std::string, const TrackingVolume * > m_trackingVolumes
The Volumes in a map for later finding.
Definition: TrackingGeometry.h:209