9#ifndef TRKVOLUMES_BOUNDARYSURFACE_H
10#define TRKVOLUMES_BOUNDARYSURFACE_H
20#include "GaudiKernel/MsgStream.h"
59 std::shared_ptr<const VolumeArray> outsideArray)
134 msg <<
"BoundarySurface debug information: " << std::endl;
137 msg <<
" -> pointer to insideVolumeArray = "
141 msg <<
" -> pointer to outsideVolumeArray = "
Define macros for attributes used to control the static checker.
Binned Array for avoiding map searches/.
virtual Surface & surfaceRepresentation()=0
virtual ~BoundarySurface()
Virtual Destructor.
Tvol const * outsideVolume() const
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
BoundarySurface()=default
Default Constructor - needed for pool and inherited classes.
const Tvol * m_insideVolume
std::shared_ptr< const VolumeArray > m_insideVolumeArray
const Tvol * m_outsideVolume
void setInsideVolume(const Tvol *vol)
void debugInfo(MsgStream &msg) const
output debug information
const VolumeArray * insideVolumeArray() const
getters/setters for inside/outside Volume arrays
bool onBoundary(const T &pars) const
templated onBoundary method
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...
const VolumeArray * outsideVolumeArray() const
BoundarySurface(std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray)
Constructor for a Boundary with exact two Volumes attached to it.
void setInsideVolumeArray(std::shared_ptr< const VolumeArray > volArray)
void setOutsideVolumeArray(std::shared_ptr< const VolumeArray > volArray)
BoundarySurface(const Tvol *inside, const Tvol *outside)
Constructor for a Boundary with exact two Volumes attached to it.
std::shared_ptr< const VolumeArray > m_outsideVolumeArray
virtual const Tvol * attachedVolume(const TrackParameters &parms, PropDirection dir) const =0
Get the next Volume depending on the TrackParameters and the requested direction.
void setOutsideVolume(const Tvol *vol)
virtual const Surface & surfaceRepresentation() const =0
The Surface Representation of this.
Tvol const * insideVolume() const
getters/setters for inside/outside Volume
Abstract Base Class for tracking surfaces.
bool onSurface(const T ¶meters, const BoundaryCheck &bchk=BoundaryCheck(true)) const
The templated Parameters OnSurface method - checks on surface pointer first.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParametersBase< TrackParametersDim, Charged > TrackParameters