ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
TrkGeometry
DetachedTrackingVolume.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// DetachedTrackingVolume.h, (c) ATLAS Detector software
8
9
#ifndef TRKGEOMETRY_DETACHEDTRACKINGVOLUME_H
10
#define TRKGEOMETRY_DETACHEDTRACKINGVOLUME_H
11
12
class
MsgStream;
13
14
#include "
TrkDetDescrUtils/GeometrySignature.h
"
15
#include "
TrkGeometry/Layer.h
"
16
#include "
TrkGeometry/OverlapDescriptor.h
"
17
#include "
TrkGeometry/PlaneLayer.h
"
18
#include "
TrkSurfaces/Surface.h
"
19
// Amg
20
#include "
GeoPrimitives/GeoPrimitives.h
"
21
#include <span>
22
namespace
Trk
{
23
class
TrackingVolume
;
24
class
Surface
;
25
class
MaterialProperties
;
26
class
MagneticFieldProperties
;
27
36
37
class
DetachedTrackingVolume
final{
40
friend
class
TrackingVolume
;
41
friend
class
DetachedTrackingVolumeBuilder
;
42
friend
class
IDetachedTrackingVolumeBuilder
;
43
44
public
:
46
DetachedTrackingVolume
();
47
49
DetachedTrackingVolume
(std::string
name
, std::unique_ptr<TrackingVolume> vol);
50
52
DetachedTrackingVolume
(std::string
name
,
53
std::unique_ptr<TrackingVolume> vol,
54
std::unique_ptr<Layer> layer,
55
std::unique_ptr<
const
std::vector<Layer*>> multilayer =
nullptr
);
56
58
~DetachedTrackingVolume
();
59
61
const
TrackingVolume
*
trackingVolume
()
const
;
62
TrackingVolume
*
trackingVolume
();
63
65
const
std::string&
name
()
const
;
66
68
void
move
(
Amg::Transform3D
& shift);
69
71
DetachedTrackingVolume
*
clone
(
const
std::string&
name
,
72
Amg::Transform3D
& shift)
const
;
73
75
const
Layer
*
layerRepresentation
()
const
;
76
Layer
*
layerRepresentation
();
77
79
std::span<Layer const * const>
multilayerRepresentation
()
const
;
80
std::span<Layer * const>
multilayerRepresentation
();
81
83
void
sign
(
GeometrySignature
signat,
GeometryType
geotype);
84
86
GeometrySignature
geometrySignature
()
const
;
87
89
GeometryType
geometryType
()
const
;
90
93
void
setBaseTransform
(std::unique_ptr<Amg::Transform3D> transf =
nullptr
);
94
95
private
:
97
void
compactify
(
size_t
& cSurfaces,
size_t
& tSurfaces);
98
std::unique_ptr<TrackingVolume>
m_trkVolume
;
99
std::unique_ptr<Layer>
m_layerRepresentation
;
100
//We own also the elements in the vector
101
std::unique_ptr<const std::vector<Layer*>>
m_multilayerRepresentation
=
nullptr
;
102
const
std::string
m_name
{
"undefined"
};
103
// optional use (for alignment purpose)
104
std::unique_ptr<Amg::Transform3D>
m_baseTransform
=
nullptr
;
105
};
106
107
inline
const
TrackingVolume
*
DetachedTrackingVolume::trackingVolume
()
const
{
108
return
m_trkVolume
.get();
109
}
110
111
inline
TrackingVolume
*
DetachedTrackingVolume::trackingVolume
(){
112
return
m_trkVolume
.get();
113
}
114
115
inline
const
std::string&
DetachedTrackingVolume::name
()
const
{
return
(
m_name
); }
116
117
inline
const
Layer
*
DetachedTrackingVolume::layerRepresentation
()
const
{
118
return
m_layerRepresentation
.get();
119
}
120
121
inline
Layer
*
DetachedTrackingVolume::layerRepresentation
() {
122
return
m_layerRepresentation
.get();
123
}
124
125
126
inline
std::span<Layer const* const>
127
DetachedTrackingVolume::multilayerRepresentation
()
const
128
{
129
if
(
m_multilayerRepresentation
) {
130
return
std::span<Layer const* const>(
m_multilayerRepresentation
->begin(),
131
m_multilayerRepresentation
->end());
132
}
133
return
{};
134
}
135
136
inline
std::span<Layer* const>
137
DetachedTrackingVolume::multilayerRepresentation
()
138
{
139
if
(
m_multilayerRepresentation
) {
140
return
std::span<Layer* const>(
m_multilayerRepresentation
->begin(),
141
m_multilayerRepresentation
->end());
142
}
143
return
{};
144
}
145
146
}
// namespace Trk
147
148
#endif
// TRKGEOMETRY_DETACHEDTRACKINGVOLUME_H
149
GeoPrimitives.h
GeometrySignature.h
Layer.h
OverlapDescriptor.h
PlaneLayer.h
Surface.h
Trk::DetachedTrackingVolume::m_layerRepresentation
std::unique_ptr< Layer > m_layerRepresentation
Definition
DetachedTrackingVolume.h:99
Trk::DetachedTrackingVolume::move
void move(Amg::Transform3D &shift)
moving object around
Definition
DetachedTrackingVolume.cxx:44
Trk::DetachedTrackingVolume::clone
DetachedTrackingVolume * clone(const std::string &name, Amg::Transform3D &shift) const
clone with transform
Definition
DetachedTrackingVolume.cxx:58
Trk::DetachedTrackingVolume::geometrySignature
GeometrySignature geometrySignature() const
return the Signature
Definition
DetachedTrackingVolume.cxx:168
Trk::DetachedTrackingVolume::IDetachedTrackingVolumeBuilder
friend class IDetachedTrackingVolumeBuilder
Definition
DetachedTrackingVolume.h:42
Trk::DetachedTrackingVolume::DetachedTrackingVolume
DetachedTrackingVolume()
Default Constructor.
Trk::DetachedTrackingVolume::sign
void sign(GeometrySignature signat, GeometryType geotype)
sign the volume - the geometry builder has to do that
Definition
DetachedTrackingVolume.cxx:162
Trk::DetachedTrackingVolume::name
const std::string & name() const
returns the Name
Definition
DetachedTrackingVolume.h:115
Trk::DetachedTrackingVolume::geometryType
GeometryType geometryType() const
return the Type
Definition
DetachedTrackingVolume.cxx:172
Trk::DetachedTrackingVolume::m_name
const std::string m_name
Definition
DetachedTrackingVolume.h:102
Trk::DetachedTrackingVolume::layerRepresentation
const Layer * layerRepresentation() const
returns layer representation
Definition
DetachedTrackingVolume.h:117
Trk::DetachedTrackingVolume::m_baseTransform
std::unique_ptr< Amg::Transform3D > m_baseTransform
Definition
DetachedTrackingVolume.h:104
Trk::DetachedTrackingVolume::m_multilayerRepresentation
std::unique_ptr< const std::vector< Layer * > > m_multilayerRepresentation
Definition
DetachedTrackingVolume.h:101
Trk::DetachedTrackingVolume::TrackingVolume
friend class TrackingVolume
Declare the IDetachedTrackingVolumeBuilder as a friend, to be able to change the volumelink.
Definition
DetachedTrackingVolume.h:40
Trk::DetachedTrackingVolume::trackingVolume
const TrackingVolume * trackingVolume() const
returns the TrackingVolume
Definition
DetachedTrackingVolume.h:107
Trk::DetachedTrackingVolume::setBaseTransform
void setBaseTransform(std::unique_ptr< Amg::Transform3D > transf=nullptr)
alignment methods: set base transform / default argument to current transform
Definition
DetachedTrackingVolume.cxx:176
Trk::DetachedTrackingVolume::m_trkVolume
std::unique_ptr< TrackingVolume > m_trkVolume
Definition
DetachedTrackingVolume.h:98
Trk::DetachedTrackingVolume::~DetachedTrackingVolume
~DetachedTrackingVolume()
Destructor.
Definition
DetachedTrackingVolume.cxx:35
Trk::DetachedTrackingVolume::DetachedTrackingVolumeBuilder
friend class DetachedTrackingVolumeBuilder
Definition
DetachedTrackingVolume.h:41
Trk::DetachedTrackingVolume::compactify
void compactify(size_t &cSurfaces, size_t &tSurfaces)
Compactify – set TG as owner to surfaces.
Definition
DetachedTrackingVolume.cxx:134
Trk::DetachedTrackingVolume::multilayerRepresentation
std::span< Layer const *const > multilayerRepresentation() const
returns (multi)layer representation
Definition
DetachedTrackingVolume.h:127
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
Trk::MagneticFieldProperties
magnetic field properties to steer the behavior of the extrapolation
Definition
MagneticFieldProperties.h:31
Trk::MaterialProperties
Material with information about thickness of material.
Definition
MaterialProperties.h:40
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition
GeoPrimitives.h:46
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::GeometryType
GeometryType
Definition
GeometrySignature.h:37
Trk::GeometrySignature
GeometrySignature
Definition
GeometrySignature.h:24
Generated on
for ATLAS Offline Software by
1.17.0