|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKVOLUMES_BOUNDARYSURFACE_H
10 #define TRKVOLUMES_BOUNDARYSURFACE_H
20 #include "GaudiKernel/MsgStream.h"
124 template <
class Tvol>
126 return m_insideVolume;
128 template <
class Tvol>
130 m_insideVolume = vol;
133 template <
class Tvol>
135 return m_outsideVolume;
137 template <
class Tvol>
139 m_outsideVolume = vol;
142 template <
class Tvol>
145 return m_insideVolumeArray;
147 template <
class Tvol>
150 m_insideVolumeArray = volArray;
153 template <
class Tvol>
156 return m_outsideVolumeArray;
158 template <
class Tvol>
161 m_outsideVolumeArray = volArray;
164 template <
class Tvol>
166 msg <<
"BoundarySurface debug information: " << std::endl;
167 msg <<
" -> pointer to insideVolume = " << m_insideVolume
169 msg <<
" -> pointer to insideVolumeArray = "
170 << m_insideVolumeArray.get() << std::endl;
171 msg <<
" -> pointer to outsideVolume = " << m_outsideVolume
173 msg <<
" -> pointer to outsideVolumeArray = "
174 << m_outsideVolumeArray.get() <<
endmsg;
179 #endif // TRKVOLUMES_BOUNDARYSURFACE_H
Tvol const * outsideVolume() const
SharedObject< VolumeArray > m_insideVolumeArray
virtual Surface & surfaceRepresentation()=0
virtual ~BoundarySurface()
Virtual Destructor.
virtual const Tvol * attachedVolume(const Amg::Vector3D &pos, const Amg::Vector3D &mom, PropDirection dir) const =0
Get the next Volume depending on GlobalPosition, GlobalMomentum, dir on the TrackParameters and the r...
Tvol const * insideVolume() const
getters/setters for inside/outside Volume
virtual const Tvol * attachedVolume(const TrackParameters &parms, PropDirection dir) const =0
Get the next Volume depending on the TrackParameters and the requested direction.
const SharedObject< VolumeArray > & outsideVolumeArray() const
BoundarySurface(const Tvol *inside, const Tvol *outside)
Constructor for a Boundary with exact two Volumes attached to it.
void setOutsideVolumeArray(const SharedObject< VolumeArray > &)
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
bool onBoundary(const T &pars) const
templated onBoundary method
virtual const Surface & surfaceRepresentation() const =0
The Surface Representation of this.
BoundarySurface()
Default Constructor - needed for pool and inherited classes.
BoundarySurface(SharedObject< VolumeArray > insideArray, SharedObject< VolumeArray > outsideArray)
Constructor for a Boundary with exact two Volumes attached to it.
void setInsideVolumeArray(const SharedObject< VolumeArray > &)
void setOutsideVolume(const Tvol *)
SharedObject< VolumeArray > m_outsideVolumeArray
Ensure that the ATLAS eigen extensions are properly loaded.
Eigen::Matrix< double, 3, 1 > Vector3D
std::shared_ptr< T > SharedObject
bool onSurface(const T ¶meters, const BoundaryCheck &bchk=BoundaryCheck(true)) const
The templated Parameters OnSurface method - checks on surface pointer first.
void setInsideVolume(const Tvol *)
void debugInfo(MsgStream &msg) const
output debug information
const SharedObject< VolumeArray > & insideVolumeArray() const
getters/setters for inside/outside Volume arrays
Define macros for attributes used to control the static checker.
const Tvol * m_outsideVolume
const Tvol * m_insideVolume