ATLAS Offline Software
Loading...
Searching...
No Matches
GlueVolumesDescriptor.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// GlueVolumesDescriptor.h, (c) ATLAS Detector software
8
9#ifndef TRKGEOMETRY_GLUEVOLUMESDESCRIPTOR_H
10#define TRKGEOMETRY_GLUEVOLUMESDESCRIPTOR_H
11
12// Trk include
14// Gaudi
15#include "GaudiKernel/MsgStream.h"
16// STL
17#include <map>
18#include <vector>
19
20
21namespace Trk {
22
23class TrackingVolume;
24
25typedef std::map<BoundarySurfaceFace,
26 std::vector<TrackingVolume*> >::iterator
28typedef std::map<BoundarySurfaceFace,
29 std::vector<TrackingVolume*> >::const_iterator
39
41 public:
44
47 const std::map<BoundarySurfaceFace, std::vector<TrackingVolume*> >&
48 glv);
49
52
55 std::vector<TrackingVolume*>&);
56
58 const std::vector<TrackingVolume*>& glueVolumes(
60
62 const std::vector<BoundarySurfaceFace>& glueFaces() const;
63
64 private:
65 std::map<BoundarySurfaceFace, std::vector<TrackingVolume*> >
67 std::vector<BoundarySurfaceFace> m_glueFaces;
68 static const std::vector<TrackingVolume*> s_emptyVector;
69};
70
71inline const std::vector<BoundarySurfaceFace>&
75
78MsgStream& operator<<(MsgStream& sl, GlueVolumesDescriptor& mprop);
79std::ostream& operator<<(std::ostream& sl, GlueVolumesDescriptor& mprop);
80
81} // namespace Trk
82
83#endif
Descriptor class to hold GlueVolumes of a TrackingGeometry object.
const std::vector< TrackingVolume * > & glueVolumes(BoundarySurfaceFace)
retrieve them again
const std::vector< BoundarySurfaceFace > & glueFaces() const
retrieve the available Glue Faces
void registerGlueVolumes(BoundarySurfaceFace, std::vector< TrackingVolume * > &)
register the volumes
std::vector< BoundarySurfaceFace > m_glueFaces
std::map< BoundarySurfaceFace, std::vector< TrackingVolume * > > m_glueVolumes
static const std::vector< TrackingVolume * > s_emptyVector
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
BoundarySurfaceFace
Enum to describe the position of the BoundarySurface respectively to the frame orientatin of the volu...
std::map< BoundarySurfaceFace, std::vector< TrackingVolume * > >::const_iterator GlueVolumeConstIterator
std::map< BoundarySurfaceFace, std::vector< TrackingVolume * > >::iterator GlueVolumeIterator