ATLAS Offline Software
VolumeExcluder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 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
14 #include "TrkVolumes/Volume.h"
16 
17 class MsgStream;
18 
19 namespace Trk {
20 
21  class AreaExcluder;
22 
29  class VolumeExcluder: public AreaExcluder {
30 
31  public:
34 
36  VolumeExcluder(Volume* vol);
37 
39  VolumeExcluder(const VolumeExcluder& ex);
40 
42  virtual ~VolumeExcluder();
43 
46 
48  VolumeExcluder* clone() const;
49 
51  bool inside(const Amg::Vector3D& gp, double tol=0.) const;
52 
54  const Volume* volume() const;
55  Volume* volume();
57  MsgStream& dump(MsgStream& sl) const ;
58 
60  std::ostream& dump(std::ostream& sl) const;
61 
62  private:
64 
65  };
66 
67  inline bool VolumeExcluder::inside(const Amg::Vector3D& gp, double tol) const
68  { return( m_vol->inside(gp,tol) ); }
69 
70  inline const Volume* VolumeExcluder::volume() const
71  { return( m_vol ); }
72 
74  { return( m_vol ); }
75 
76 
77 } // end of namespace Trk
78 
79 #endif // TRKVOLUMES_VOLUMEEXCLUDER
80 
Trk::VolumeExcluder::clone
VolumeExcluder * clone() const
Pseudo-constructor.
Definition: VolumeExcluder.cxx:49
AreaExcluder.h
Trk::Volume::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
Definition: Volume.cxx:90
Trk::VolumeExcluder::dump
std::ostream & dump(std::ostream &sl) const
Output Method for std::ostream, to be overloaded by child classes.
Trk::VolumeExcluder::~VolumeExcluder
virtual ~VolumeExcluder()
Destructor.
Definition: VolumeExcluder.cxx:31
GeoPrimitives.h
Volume.h
Trk::VolumeExcluder::VolumeExcluder
VolumeExcluder()
Default constructor.
Definition: VolumeExcluder.cxx:15
Trk::VolumeExcluder::operator=
VolumeExcluder & operator=(const VolumeExcluder &vol)
Assignment operator.
Definition: VolumeExcluder.cxx:38
Trk::AreaExcluder
Definition: AreaExcluder.h:26
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:67
Trk::VolumeExcluder::volume
const Volume * volume() const
Acces the subtracted volume.
Definition: VolumeExcluder.h:70
Trk::VolumeExcluder::m_vol
Volume * m_vol
Definition: VolumeExcluder.h:63
Trk::VolumeExcluder
Definition: VolumeExcluder.h:29
Trk::VolumeExcluder::dump
MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Trk::Volume
Definition: Volume.h:35