Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
15 #include "TrkVolumes/Volume.h"
16 
17 class MsgStream;
18 
19 namespace Trk {
20 
21 class AreaExcluder;
22 
31 
32  public:
37  virtual ~VolumeExcluder() = default;
38 
40  VolumeExcluder(std::unique_ptr<Volume> vol);
42  VolumeExcluder(const VolumeExcluder& ex);
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 
73  return (m_vol.get());
74 }
75 
76 } // end of namespace Trk
77 
78 #endif // TRKVOLUMES_VOLUMEEXCLUDER
79 
Trk::VolumeExcluder::clone
VolumeExcluder * clone() const
Polymorphic constructor.
Definition: VolumeExcluder.cxx:38
AreaExcluder.h
Trk::VolumeExcluder::VolumeExcluder
VolumeExcluder(VolumeExcluder &&)=default
Trk::VolumeExcluder::operator=
VolumeExcluder & operator=(VolumeExcluder &&)=default
Trk::VolumeExcluder::dump
std::ostream & dump(std::ostream &sl) const
Output Method for std::ostream, to be overloaded by child classes.
GeoPrimitives.h
Volume.h
Trk::VolumeExcluder::VolumeExcluder
VolumeExcluder()
Defaults.
Trk::AreaExcluder
Definition: AreaExcluder.h:26
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::VolumeExcluder::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
First bin from global position.
Definition: VolumeExcluder.h:64
Trk::VolumeExcluder::volume
const Volume * volume() const
Acces the subtracted volume.
Definition: VolumeExcluder.h:68
Trk::VolumeExcluder::m_vol
std::unique_ptr< Volume > m_vol
Definition: VolumeExcluder.h:61
Trk::VolumeExcluder::~VolumeExcluder
virtual ~VolumeExcluder()=default
Trk::VolumeExcluder
Definition: VolumeExcluder.h:30
Trk::VolumeExcluder::dump
MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Trk::Volume
Definition: Volume.h:36