ATLAS Offline Software
TrackingVolume.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TrackingVolume.h, (b) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_TRACKINGVOLUME_H
10 #define TRKGEOMETRY_TRACKINGVOLUME_H
11 
12 // Amg
14 // Trk
23 #include "TrkGeometry/Material.h"
25 #include "TrkSurfaces/Surface.h"
31 #include "TrkVolumes/Volume.h"
32 // STL
33 #include <string>
34 #include <span>
35 // ATH_MSG macros
37 
40 #ifndef TRKGEOMETRY_MAXLAYERATTEMPTS
41 #define TRKGEOMETRY_MAXLAYERATTEMPTS 100
42 #endif
43 
44 class MsgStream;
45 
46 namespace Trk {
47 
48 // classes
49 class Layer;
50 class PlaneLayer;
51 class TrackingVolume;
52 class DetachedTrackingVolume;
53 class VolumeBounds;
54 
55 //Binned Array arrayObjects returns a span
56 typedef BinnedArray<Layer> LayerArray;
57 typedef BinnedArray<TrackingVolume> TrackingVolumeArray;
58 
59 // For local spans (typedef to make it easier for C++20 std:: one)
60 template<class T>
61 using ArraySpan = std::span<T>;
62 
63 //Helper for const correct access to boundary surfaces via a span
64 //We want const correct access to the underlying plain ptrs.
65 template<class T>
67 {
68 public:
69  ConstSharedPtrSpan(const std::vector<std::shared_ptr<T>>& m_var)
70  : m_span(&*(m_var.begin()), &*(m_var.end()))
71  {
72  }
73  // access the ptr
74  const T * operator[](size_t i) const { return m_span[i].get(); }
75  constexpr bool empty() const noexcept { return m_span.empty(); }
76  constexpr size_t size() const noexcept { return m_span.size(); }
77 
78 private:
80 };
81 
82 
83 template<class T>
85 template<class T>
88 
119  : public Volume
120  , public Material
121 {
122 
125 
127  friend class TrackingGeometry;
128 
131 
132 public:
134  TrackingVolume();
135 
139  VolumeBounds* volbounds,
140  LayerArray* subLayers = nullptr,
141  TrackingVolumeArray* subVolumes = nullptr,
142  const std::string& volumeName = "undefined");
143 
146  TrackingVolume(const Volume& volume,
147  const Material& matprop,
148  LayerArray* subLayers = nullptr,
149  TrackingVolumeArray* subVolumes = nullptr,
150  const std::string& volumeName = "undefined");
151 
155  VolumeBounds* volbounds,
156  const Material& matprop,
157  LayerArray* subLayers = nullptr,
158  TrackingVolumeArray* subVolumes = nullptr,
159  const std::string& volumeName = "undefined");
160 
164  Amg::Transform3D* htrans,
165  VolumeBounds* volbounds,
166  const Material& matprop,
167  std::vector<DetachedTrackingVolume*>* detachedSubVolumes,
168  const std::string& volumeName = "undefined");
169 
173  const Volume& volume,
174  const Material& matprop,
175  std::vector<DetachedTrackingVolume*>* detachedSubVolumes,
176  const std::string& volumeName = "undefined");
177 
181  VolumeBounds* volbounds,
182  const Material& matprop,
183  const std::vector<TrackingVolume*>* unorderedSubVolumes,
184  const std::string& volumeName = "undefined");
185 
188  TrackingVolume(const Volume& volume,
189  const Material& matprop,
190  const std::vector<TrackingVolume*>* unorderedSubVolumes,
191  const std::string& volumeName = "undefined");
192 
196  VolumeBounds* volbounds,
197  const Material& matprop,
198  const std::vector<Layer*>* arbitraryLayers,
199  const std::string& volumeName = "undefined");
200 
203  TrackingVolume(const Volume& volume,
204  const Material& matprop,
205  const std::vector<Layer*>* arbitraryLayers,
206  const std::string& volumeName = "undefined");
207 
212  VolumeBounds* volbounds,
213  const std::vector<Layer*>* arbitraryLayers,
214  const std::vector<TrackingVolume*>* unorderedSubVolumes,
215  const Material& matprop,
216  const std::string& volumeName = "undefined");
217 
221  TrackingVolume(const Volume& volume,
222  const std::vector<Layer*>* arbitraryLayers,
223  const std::vector<TrackingVolume*>* unorderedSubVolumes,
224  const Material& matprop,
225  const std::string& volumeName = "undefined");
226 
229 
231  ~TrackingVolume() override;
232 
234  const Layer* associatedLayer(const Amg::Vector3D& gp) const;
235  Layer* associatedLayer(const Amg::Vector3D& gp);
236 
237 
239  const Layer* nextLayer(const Amg::Vector3D& gp,
240  const Amg::Vector3D& mom,
241  bool asres = true,
242  bool skipNavLayer = false) const;
243 
246  const Layer* entryLayer(const Amg::Vector3D& gp,
247  const Amg::Vector3D& dir) const;
248 
250  const Layer* exitLayer(const Amg::Vector3D& gp,
251  const Amg::Vector3D& dir) const;
252 
256  template<class T>
257  std::vector<LayerIntersection<T>> materialLayersOrdered(
258  const Layer* sLayer,
259  const Layer* eLayer,
260  const T& parameters,
262  const BoundaryCheck& bchk = true,
263  bool resolveSubSurfaces = false) const;
264 
271  const Amg::Vector3D& gp,
272  const Amg::Vector3D& dir,
274  const BoundaryCheck& bchk = true) const;
275 
277  const TrackingVolume* associatedSubVolume(const Amg::Vector3D& gp) const;
279 
281  const TrackingVolume* nextVolume(const Amg::Vector3D& gp,
282  const Amg::Vector3D& dir,
283  PropDirection pDir = alongMomentum) const;
284 
287  const TrackingVolume* nextSubVolume(const Amg::Vector3D& gp,
288  const Amg::Vector3D& dir) const;
289 
291  std::vector<const DetachedTrackingVolume*> assocDetachedSubVolumes(
292  const Amg::Vector3D& gp,
293  double tol) const;
294 
296  unsigned int layerAttempts(BoundarySurfaceFace exitFace) const;
297 
299  unsigned int maxLayerAttempts() const;
300 
302  const LayerArray* confinedLayers() const;
303 
306 
309 
312 
314  const LayerArray* checkoutConfinedLayers() const;
315 
318 
321 
325 
329 
331  const std::string& volumeName() const;
332 
334  std::vector<SharedObject<BoundarySurface<TrackingVolume>>>&
335  boundarySurfaces() ;
339  template<class T>
340  std::vector<BoundaryIntersection<T>> boundarySurfacesOrdered(
341  const T& parameters,
343  bool startOffBoundary = false) const;
344 
347  const ObjectAccessor::value_type& oa) const;
348 
350  template<class T>
351  bool onVolumeBoundary(const T& pars) const;
352 
361 
364 
366  void sign(GeometrySignature signat, GeometryType gtype = Static);
367 
370 
373 
375  void registerColorCode(unsigned int icolor);
376 
378  unsigned int colorCode() const;
379 
382 
384  bool redoNavigation() const;
385 
388 
390  void setMotherVolume(const TrackingVolume* mvol);
391 
393  void moveVolume(Amg::Transform3D& shift);
394 
396  void addMaterial(const Material& mat, float fact = 1.);
397 
398  virtual bool isAlignable() const;
400  void clear();
401 
402  void screenDump(MsgStream& msg) const;
403 
404 protected:
407 
408 private:
411 
414 
416  void createBoundarySurfaces();
417 
420 
425  void compactify(size_t& rSurfaces, size_t& tSurfaces);
426 
431  void synchronizeLayers (MsgStream& msgstream, double envelope = 1.);
432 
434  void interlinkLayers ();
435 
437  static const Layer* closest(const Amg::Vector3D& pos,
438  const Amg::Vector3D& dir,
439  const Layer& first,
440  const Layer& second);
441 
444 
446  TrackingVolume(const TrackingVolume&) = delete;
447 
450 
452 
454  std::vector<SharedObject<BoundarySurface<TrackingVolume>>> m_boundarySurfaces{};
460  const std::vector<DetachedTrackingVolume*>* m_confinedDetachedVolumes;
461 
462 
464  const std::vector<TrackingVolume*>* m_confinedDenseVolumes;
465  //(b)
467  const std::vector<Layer*>* m_confinedArbitraryLayers;
468 
471 
474 
479 
480  std::string m_name;
481  unsigned int m_colorCode;
483 };
485 
486 } // end of namespace
488 #endif // TRKGEOMETRY_TRACKINGVOLUME_H
489 
Trk::TrackingVolumeManipulator
Definition: TrackingVolumeManipulator.h:32
Trk::ConstSharedPtrSpan::ConstSharedPtrSpan
ConstSharedPtrSpan(const std::vector< std::shared_ptr< T >> &m_var)
Definition: TrackingVolume.h:69
Trk::TrackingVolume::m_confinedVolumes
TrackingVolumeArray * m_confinedVolumes
Detached subvolumes.
Definition: TrackingVolume.h:458
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::TrackingVolume::closest
static const Layer * closest(const Amg::Vector3D &pos, const Amg::Vector3D &dir, const Layer &first, const Layer &second)
Helper method - find closest of two layers.
Definition: TrackingVolume.cxx:1370
Trk::TrackingVolume::glueVolumesDescriptor
GlueVolumesDescriptor & glueVolumesDescriptor()
Definition: TrackingVolume.cxx:1205
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
AbstractVolume.h
Trk::Static
@ Static
Definition: GeometrySignature.h:38
Trk::TrackingVolume::nextSubVolume
const TrackingVolume * nextSubVolume(const Amg::Vector3D &gp, const Amg::Vector3D &dir) const
Return the next sub Volume if existing, returns THIS if no subVolume exists.
Definition: TrackingVolume.cxx:791
Trk::BoundarySurface
Definition: BoundarySurface.h:50
Trk::TrackingVolume::addMaterial
void addMaterial(const Material &mat, float fact=1.)
add Material
Definition: TrackingVolume.cxx:911
Trk::TrackingVolume::createBoundarySurfaces
void createBoundarySurfaces()
Create Boundary Surface.
Definition: TrackingVolume.cxx:1001
Trk::TrackingVolume::nextLayer
const Layer * nextLayer(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool asres=true, bool skipNavLayer=false) const
Return the next Layer if existing, NULL if no next layer corresponds.
Definition: TrackingVolume.cxx:605
ObjectAccessor.h
Trk::TrackingVolume::moveVolume
void moveVolume(Amg::Transform3D &shift)
move Volume
Definition: TrackingVolume.cxx:1223
Trk::TrackingVolume::m_layerAttemptsCalculator
LayerAttemptsCalculator * m_layerAttemptsCalculator
The Signature done by the GeometryBuilder.
Definition: TrackingVolume.h:473
GeometrySignature.h
AthMsgStreamMacros.h
Surface.h
GeometrySignature
Trk::TrackingVolume::closestMaterialLayer
LayerIntersection< Amg::Vector3D > closestMaterialLayer(const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum, const BoundaryCheck &bchk=true) const
Return the closest layer with material description.
Definition: TrackingVolume.cxx:628
Trk::TrackingVolume::geometrySignature
GeometrySignature geometrySignature() const
return the Signature
Trk::TrackingVolume::boundarySurfaces
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
Definition: TrackingVolume.cxx:982
Trk::TrackingVolume::~TrackingVolume
~TrackingVolume() override
Destructor.
Definition: TrackingVolume.cxx:521
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
BinnedArray.h
Trk::TrackingVolume::confinedVolumes
TrackingVolumeArray * confinedVolumes()
Return the subLayer array.
Trk::ConstSharedPtrSpan::size
constexpr size_t size() const noexcept
Definition: TrackingVolume.h:76
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
Trk::TrackingVolume::geometryType
GeometryType geometryType() const
return the Signature
Trk::TrackingVolume::getMotherVolume
const TrackingVolume * getMotherVolume() const
Return the MotherVolume - if it exists.
Trk::TrackingVolume::m_redoNavigation
bool m_redoNavigation
Navigation boolean.
Definition: TrackingVolume.h:482
Trk::TrackingVolume::m_confinedDenseVolumes
const std::vector< TrackingVolume * > * m_confinedDenseVolumes
Definition: TrackingVolume.h:464
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:710
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
Trk::TrackingVolume::entryLayer
const Layer * entryLayer(const Amg::Vector3D &gp, const Amg::Vector3D &dir) const
Return the entry Layer to a TrackingVolume depending on the entry point.
Trk::TrackingVolume::confinedDetachedVolumes
ArraySpan< DetachedTrackingVolume const *const > confinedDetachedVolumes() const
Return detached subVolumes - not the ownership.
PropDirection.h
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::TrackingVolume::m_confinedLayers
LayerArray * m_confinedLayers
Array of Volumes inside the Volume.
Definition: TrackingVolume.h:456
Trk::TrackingVolume::checkoutConfinedLayers
const LayerArray * checkoutConfinedLayers() const
Return the subLayerarray including the ownership.
Definition: TrackingVolume.cxx:1192
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::TrackingVolume::confinedDenseVolumes
ArraySpan< TrackingVolume *const > confinedDenseVolumes()
Trk::TrackingVolume::indexContainedMaterialLayers
void indexContainedMaterialLayers(GeometrySignature geoSig, int &offset)
reIndex the material layers of the TrackingVolume
Definition: TrackingVolume.cxx:864
Trk::TrackingVolume::layerAttempts
unsigned int layerAttempts(BoundarySurfaceFace exitFace) const
Layer attempts - as provided by the LayerAttemptCreator.
Trk::TrackingVolume::registerColorCode
void registerColorCode(unsigned int icolor)
Register the color code.
Trk::BoundarySurfaceFace
BoundarySurfaceFace
Definition: BoundarySurfaceFace.h:31
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::ObjectAccessor::value_type
int value_type
Definition: ObjectAccessor.h:17
Trk::TrackingVolume::m_confinedArbitraryLayers
const std::vector< Layer * > * m_confinedArbitraryLayers
< Additionally, Unordered Layers inside the Volume (we own them)
Definition: TrackingVolume.h:467
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
Trk::TrackingVolume::confinedLayers
const LayerArray * confinedLayers() const
Return the subLayer array.
Trk::TrackingVolume::m_confinedDetachedVolumes
const std::vector< DetachedTrackingVolume * > * m_confinedDetachedVolumes
Additionally, Unordered subvolumes (we ownd them)
Definition: TrackingVolume.h:460
Trk::TrackingVolume::onVolumeBoundary
bool onVolumeBoundary(const T &pars) const
show if you are on a boundary surface
GeoPrimitives.h
Trk::TrackingVolume::materialLayersOrdered
std::vector< LayerIntersection< T > > materialLayersOrdered(const Layer *sLayer, const Layer *eLayer, const T &parameters, PropDirection pDir=alongMomentum, const BoundaryCheck &bchk=true, bool resolveSubSurfaces=false) const
Return the material layers ordered based on straight line intersections:
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::TrackingVolume::TrackingVolume
TrackingVolume()
Default Constructor.
Definition: TrackingVolume.cxx:48
LayerAttemptsCalculator.h
Trk::TrackingVolume::cloneTV
TrackingVolume * cloneTV(Amg::Transform3D &transform) const
clone at new position
Definition: TrackingVolume.cxx:1235
Trk::TrackingVolume::colorCode
unsigned int colorCode() const
Get the color code.
Volume.h
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::TrackingVolume::indexContainedStaticLayers
void indexContainedStaticLayers(GeometrySignature geoSig, int &offset)
reIndex the static layers of the TrackingVolume
Definition: TrackingVolume.cxx:817
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::TrackingVolume::assocDetachedSubVolumes
std::vector< const DetachedTrackingVolume * > assocDetachedSubVolumes(const Amg::Vector3D &gp, double tol) const
Return the associated detached subvolumes.
Definition: TrackingVolume.cxx:800
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::ArraySpan
std::span< T > ArraySpan
Definition: DetachedTrackingVolume.h:34
Trk::TrackingVolume::confinedArbitraryLayers
ArraySpan< Layer const *const > confinedArbitraryLayers() const
Return the confined subLayer array.
Trk::TrackingGeometry
Definition: TrackingGeometry.h:67
Trk::TrackingVolume::confinedDenseVolumes
ArraySpan< TrackingVolume const *const > confinedDenseVolumes() const
Return unordered subVolumes - not the ownership.
Trk::TrackingVolume::boundarySurface
const BoundarySurface< TrackingVolume > * boundarySurface(const ObjectAccessor::value_type &oa) const
Get the BoundarySurface to the appointed Accessor state.
Definition: TrackingVolume.cxx:995
Trk::TrackingVolume::m_name
std::string m_name
Volume name for debug reasons.
Definition: TrackingVolume.h:480
Trk::TrackingVolume::m_geometrySignature
GeometrySignature m_geometrySignature
defines how the Extrapolator propagates through this
Definition: TrackingVolume.h:476
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::TrackingVolume::registerOutsideGlueVolumes
void registerOutsideGlueVolumes(GlueVolumesDescriptor *gvd)
Register the outside glue volumes - ordering is in the TrackingVolume Frame:
Definition: TrackingVolume.cxx:1199
CachedUniquePtr.h
Cached unique_ptr with atomic update.
Trk::TrackingVolume::synchronizeLayers
void synchronizeLayers(MsgStream &msgstream, double envelope=1.)
method to synchronize the layers with potentially updated volume bounds:
Definition: TrackingVolume.cxx:1427
Trk::TrackingVolume::m_colorCode
unsigned int m_colorCode
Color code for displaying.
Definition: TrackingVolume.h:481
Trk::TrackingVolumeArray
BinnedArray< TrackingVolume > TrackingVolumeArray
Definition: ITrackingVolumeArrayCreator.h:29
Trk::TrackingVolume::exitLayer
const Layer * exitLayer(const Amg::Vector3D &gp, const Amg::Vector3D &dir) const
Return the exit Layer from a TrackingVolume.
Trk::TrackingVolume::clear
void clear()
remove content
Definition: TrackingVolume.cxx:542
TrackingVolume.icc
SharedObject.h
Trk::ConstSharedPtrSpan::operator[]
const T * operator[](size_t i) const
Definition: TrackingVolume.h:74
DetachedTrackingVolume.h
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::TrackingVolume::confinedDetachedVolumes
ArraySpan< DetachedTrackingVolume *const > confinedDetachedVolumes()
Trk::ConstSharedPtrSpan
Definition: TrackingVolume.h:67
Trk::ConstSharedPtrSpan::m_span
ArraySpan< const std::shared_ptr< T > > m_span
Definition: TrackingVolume.h:79
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrackingVolume::volumeName
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
BoundaryDiscSurface.h
GlueVolumesDescriptor.h
Trk::TrackingVolume::operator=
TrackingVolume & operator=(const TrackingVolume &)=delete
Forbid assignment.
BoundarySurfaceFace.h
Trk::TrackingVolume::moveTV
void moveTV(Amg::Transform3D &transform)
move the Tracking Volume
Definition: TrackingVolume.cxx:1387
Trk::TrackingVolume::confinedArbitraryLayers
ArraySpan< Layer *const > confinedArbitraryLayers()
Return the confined subLayer array.
Trk::TrackingVolume::boundarySurfacesOrdered
std::vector< BoundaryIntersection< T > > boundarySurfacesOrdered(const T &parameters, PropDirection pDir=alongMomentum, bool startOffBoundary=false) const
Returns the boundary surfaces ordered in probability to hit them based on straight line intersection.
Trk::Volume::transform
const Amg::Transform3D & transform() const
Return methods for geometry transform.
Definition: Volume.h:81
Trk::TrackingVolume::m_geometryType
GeometryType m_geometryType
Definition: TrackingVolume.h:478
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::TrackingVolume::m_motherVolume
const TrackingVolume * m_motherVolume
mother volume of this volume
Definition: TrackingVolume.h:451
Trk::GlueVolumesDescriptor
Definition: GlueVolumesDescriptor.h:40
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
BoundarySurface.h
Trk::TrackingVolume::createLayerAttemptsCalculator
void createLayerAttemptsCalculator()
Create Layer Attempts Caluclator.
Definition: TrackingVolume.cxx:1140
Trk::LayerArray
BinnedArray< Layer > LayerArray
Definition: ILayerArrayCreator.h:30
Trk::ConstSharedPtrSpan::empty
constexpr bool empty() const noexcept
Definition: TrackingVolume.h:75
Trk::TrackingVolume::redoNavigation
bool redoNavigation() const
Boolean, if true navigation needs to be redone when hitting this volume.
Trk::TrackingVolume::TrackingVolume
TrackingVolume(const TrackingVolume &)=delete
Forbidden copy constructor.
BoundaryCylinderSurface.h
Trk::TrackingVolume::nextVolume
const TrackingVolume * nextVolume(const Amg::Vector3D &gp, const Amg::Vector3D &dir, PropDirection pDir=alongMomentum) const
Return the next volume along the navigation stream.
Definition: TrackingVolume.cxx:760
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::TrackingVolume::sign
void sign(GeometrySignature signat, GeometryType gtype=Static)
sign the volume - the geometry builder has to do that
Definition: TrackingVolume.cxx:941
Trk::TrackingVolume::confinedVolumes
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
Trk::TrackingVolume::setMotherVolume
void setMotherVolume(const TrackingVolume *mvol)
set the MotherVolume
Trk::TrackingVolume::forceNavigationCheck
void forceNavigationCheck()
force a navigation check
DeMoScan.first
bool first
Definition: DeMoScan.py:536
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:1455
BoundaryCheck.h
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
Trk::TrackingVolume::isAlignable
virtual bool isAlignable() const
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::GeometryType
GeometryType
Definition: GeometrySignature.h:37
Trk::FullIntersection
Class extension to return the object, a represenation & the result.
Definition: Intersection.h:64
Trk::Material
Definition: Material.h:116
Trk::TrackingVolume::interlinkLayers
void interlinkLayers()
Register Next - Previous for Layers, set volumelink.
Definition: TrackingVolume.cxx:1156
Trk::BinnedArray
Definition: BinnedArray.h:38
Trk::TrackingVolume::m_outsideGlueVolumes
CxxUtils::CachedUniquePtrT< GlueVolumesDescriptor > m_outsideGlueVolumes
provided the number of layer attempts
Definition: TrackingVolume.h:470
Trk::DetachedTrackingVolume
Definition: DetachedTrackingVolume.h:46
Trk::TrackingVolume::m_boundarySurfaces
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > m_boundarySurfaces
Definition: TrackingVolume.h:454
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::Volume
Definition: Volume.h:35
Trk::LayerAttemptsCalculator
Definition: LayerAttemptsCalculator.h:23
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::TrackingVolume::associatedLayer
const Layer * associatedLayer(const Amg::Vector3D &gp) const
Return the associated Layer.
Definition: TrackingVolume.cxx:569
Trk::TrackingVolume::confinedLayers
LayerArray * confinedLayers()
Return the subLayer array.
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::TrackingVolume::maxLayerAttempts
unsigned int maxLayerAttempts() const
Layer attempts - as provided by the LayerAttemptCreator.
Material.h
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
Trk::TrackingVolume::screenDump
void screenDump(MsgStream &msg) const
Definition: TrackingVolume.cxx:1506
Trk::Layer
Definition: Layer.h:73