ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkVolumes
TrkVolumes
VolumeExcluder.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
// VolumeExcluder.h, (c) ATLAS Detector software
8
9
#ifndef TRKVOLUMES_VOLUMEEXCLUDER_H
10
#define TRKVOLUMES_VOLUMEEXCLUDER_H
11
12
// Trk
13
#include "
GeoPrimitives/GeoPrimitives.h
"
14
#include "
TrkDetDescrUtils/AreaExcluder.h
"
15
#include "
TrkVolumes/Volume.h
"
16
17
class
MsgStream;
18
19
namespace
Trk
{
20
21
class
AreaExcluder
;
22
29
30
class
VolumeExcluder
final :
public
AreaExcluder
{
31
32
public
:
34
VolumeExcluder
();
35
VolumeExcluder
(
VolumeExcluder
&&) =
default
;
36
VolumeExcluder
&
operator=
(
VolumeExcluder
&&) =
default
;
37
virtual
~VolumeExcluder
() =
default
;
38
40
VolumeExcluder
(std::unique_ptr<Volume> vol);
42
VolumeExcluder
(
const
VolumeExcluder
& ex);
44
VolumeExcluder
&
operator=
(
const
VolumeExcluder
& vol);
46
VolumeExcluder
*
clone
()
const
;
47
49
bool
inside
(
const
Amg::Vector3D
& gp,
double
tol = 0.)
const
;
50
52
const
Volume
*
volume
()
const
;
53
Volume
*
volume
();
55
MsgStream&
dump
(MsgStream& sl)
const
;
56
58
std::ostream&
dump
(std::ostream& sl)
const
;
59
60
private
:
61
std::unique_ptr<Volume>
m_vol
;
62
};
63
64
inline
bool
VolumeExcluder::inside
(
const
Amg::Vector3D
& gp,
double
tol)
const
{
65
return
(
m_vol
->inside(gp, tol));
66
}
67
68
inline
const
Volume
*
VolumeExcluder::volume
()
const
{
69
return
(
m_vol
.get());
70
}
71
72
inline
Volume
*
VolumeExcluder::volume
() {
73
return
(
m_vol
.get());
74
}
75
76
}
// end of namespace Trk
77
78
#endif
// TRKVOLUMES_VOLUMEEXCLUDER
79
AreaExcluder.h
GeoPrimitives.h
Volume.h
Trk::AreaExcluder
Pure abstract base class.
Definition
AreaExcluder.h:26
Trk::AreaExcluder::AreaExcluder
AreaExcluder()=default
Trk::VolumeExcluder::clone
VolumeExcluder * clone() const
Polymorphic constructor.
Definition
VolumeExcluder.cxx:38
Trk::VolumeExcluder::m_vol
std::unique_ptr< Volume > m_vol
Definition
VolumeExcluder.h:61
Trk::VolumeExcluder::dump
std::ostream & dump(std::ostream &sl) const
Output Method for std::ostream, to be overloaded by child classes.
Trk::VolumeExcluder::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
First bin from global position.
Definition
VolumeExcluder.h:64
Trk::VolumeExcluder::VolumeExcluder
VolumeExcluder()
Defaults.
Trk::VolumeExcluder::~VolumeExcluder
virtual ~VolumeExcluder()=default
Trk::VolumeExcluder::volume
const Volume * volume() const
Acces the subtracted volume.
Definition
VolumeExcluder.h:68
Trk::VolumeExcluder::operator=
VolumeExcluder & operator=(VolumeExcluder &&)=default
Trk::VolumeExcluder::dump
MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Trk::VolumeExcluder::VolumeExcluder
VolumeExcluder(VolumeExcluder &&)=default
Trk::Volume
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition
Volume.h:36
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::inside
@ inside
Definition
PropDirection.h:29
Generated on
for ATLAS Offline Software by
1.17.0