ATLAS Offline Software
Public Member Functions | Protected Attributes | Private Types | List of all members
Trk::BoundarySurface< Tvol > Class Template Referenceabstract

#include <BoundarySurface.h>

Inheritance diagram for Trk::BoundarySurface< Tvol >:
Collaboration diagram for Trk::BoundarySurface< Tvol >:

Public Member Functions

 BoundarySurface ()
 Default Constructor - needed for pool and inherited classes. More...
 
 BoundarySurface (const Tvol *inside, const Tvol *outside)
 Constructor for a Boundary with exact two Volumes attached to it. More...
 
 BoundarySurface (SharedObject< VolumeArray > insideArray, SharedObject< VolumeArray > outsideArray)
 Constructor for a Boundary with exact two Volumes attached to it. More...
 
virtual const Tvol * attachedVolume (const TrackParameters &parms, PropDirection dir) const =0
 Get the next Volume depending on the TrackParameters and the requested direction. More...
 
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 requested direction. More...
 
template<class T >
bool onBoundary (const T &pars) const
 templated onBoundary method More...
 
virtual const SurfacesurfaceRepresentation () const =0
 The Surface Representation of this. More...
 
virtual SurfacesurfaceRepresentation ()=0
 
virtual ~BoundarySurface ()
 Virtual Destructor. More...
 
void debugInfo (MsgStream &msg) const
 output debug information More...
 
Tvol constinsideVolume () const
 getters/setters for inside/outside Volume More...
 
void setInsideVolume (const Tvol *)
 
Tvol constoutsideVolume () const
 
void setOutsideVolume (const Tvol *)
 
const SharedObject< VolumeArray > & insideVolumeArray () const
 getters/setters for inside/outside Volume arrays More...
 
void setInsideVolumeArray (const SharedObject< VolumeArray > &)
 
const SharedObject< VolumeArray > & outsideVolumeArray () const
 
void setOutsideVolumeArray (const SharedObject< VolumeArray > &)
 

Protected Attributes

const Tvol * m_insideVolume
 
const Tvol * m_outsideVolume
 
SharedObject< VolumeArraym_insideVolumeArray
 
SharedObject< VolumeArraym_outsideVolumeArray
 

Private Types

typedef BinnedArray< Tvol > VolumeArray
 typedef the BinnedArray More...
 

Detailed Description

template<class Tvol>
class Trk::BoundarySurface< Tvol >

Description of a BoundarySurface inside the tracking realm, it extends the Surface description to make a surface being a boundary of a Trk::Volume, Trk::TrackingVolume or a Trk::MagneticFieldVolume.

To avoid dynamic_cast operations the BoundarySurface class is realized as a templated class, with the Volume type as the template argument.

A Trk::BoundarySurface can have an inside Volume and an outside Volume, resp. a Trk::BinnedArray for inside or outside direction.

The GeometryBuilder as defined in the TrkDetDescrTools Package is declared to be friend, so that it can glue Volumes together by sharing the same Boundary Surface.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 50 of file BoundarySurface.h.

Member Typedef Documentation

◆ VolumeArray

template<class Tvol >
typedef BinnedArray<Tvol> Trk::BoundarySurface< Tvol >::VolumeArray
private

typedef the BinnedArray

Definition at line 52 of file BoundarySurface.h.

Constructor & Destructor Documentation

◆ BoundarySurface() [1/3]

template<class Tvol >
Trk::BoundarySurface< Tvol >::BoundarySurface ( )
inline

Default Constructor - needed for pool and inherited classes.

Definition at line 55 of file BoundarySurface.h.

◆ BoundarySurface() [2/3]

template<class Tvol >
Trk::BoundarySurface< Tvol >::BoundarySurface ( const Tvol *  inside,
const Tvol *  outside 
)
inline

Constructor for a Boundary with exact two Volumes attached to it.

Definition at line 62 of file BoundarySurface.h.

◆ BoundarySurface() [3/3]

template<class Tvol >
Trk::BoundarySurface< Tvol >::BoundarySurface ( SharedObject< VolumeArray insideArray,
SharedObject< VolumeArray outsideArray 
)
inline

Constructor for a Boundary with exact two Volumes attached to it.

Definition at line 69 of file BoundarySurface.h.

71  : m_insideVolume(),
73  m_insideVolumeArray(insideArray),
74  m_outsideVolumeArray(outsideArray) {}

◆ ~BoundarySurface()

template<class Tvol >
virtual Trk::BoundarySurface< Tvol >::~BoundarySurface ( )
inlinevirtual

Virtual Destructor.

Definition at line 99 of file BoundarySurface.h.

99 {}

Member Function Documentation

◆ attachedVolume() [1/2]

template<class Tvol >
virtual const Tvol* Trk::BoundarySurface< Tvol >::attachedVolume ( const Amg::Vector3D pos,
const Amg::Vector3D mom,
PropDirection  dir 
) const
pure virtual

Get the next Volume depending on GlobalPosition, GlobalMomentum, dir on the TrackParameters and the requested direction.

Implemented in Trk::BoundarySubtractedCylinderSurface< Tvol >, Trk::BoundarySubtractedPlaneSurface< Tvol >, Trk::BoundaryDiscSurface< Tvol >, Trk::BoundaryCylinderSurface< Tvol >, and Trk::BoundaryPlaneSurface< Tvol >.

◆ attachedVolume() [2/2]

template<class Tvol >
virtual const Tvol* Trk::BoundarySurface< Tvol >::attachedVolume ( const TrackParameters parms,
PropDirection  dir 
) const
pure virtual

◆ debugInfo()

template<class Tvol >
void Trk::BoundarySurface< Tvol >::debugInfo ( MsgStream &  msg) const
inline

output debug information

Definition at line 165 of file BoundarySurface.h.

165  {
166  msg << "BoundarySurface debug information: " << std::endl;
167  msg << " -> pointer to insideVolume = " << m_insideVolume
168  << std::endl;
169  msg << " -> pointer to insideVolumeArray = "
170  << m_insideVolumeArray.get() << std::endl;
171  msg << " -> pointer to outsideVolume = " << m_outsideVolume
172  << std::endl;
173  msg << " -> pointer to outsideVolumeArray = "
174  << m_outsideVolumeArray.get() << endmsg;
175 }

◆ insideVolume()

template<class Tvol >
Tvol const * Trk::BoundarySurface< Tvol >::insideVolume

getters/setters for inside/outside Volume

Definition at line 125 of file BoundarySurface.h.

125  {
126  return m_insideVolume;
127 }

◆ insideVolumeArray()

template<class Tvol >
const SharedObject< BinnedArray< Tvol > > & Trk::BoundarySurface< Tvol >::insideVolumeArray

getters/setters for inside/outside Volume arrays

Definition at line 144 of file BoundarySurface.h.

144  {
145  return m_insideVolumeArray;
146 }

◆ onBoundary()

template<class Tvol >
template<class T >
bool Trk::BoundarySurface< Tvol >::onBoundary ( const T &  pars) const
inline

templated onBoundary method

Definition at line 90 of file BoundarySurface.h.

90  {
92  }

◆ outsideVolume()

template<class Tvol >
Tvol const * Trk::BoundarySurface< Tvol >::outsideVolume

Definition at line 134 of file BoundarySurface.h.

134  {
135  return m_outsideVolume;
136 }

◆ outsideVolumeArray()

template<class Tvol >
const SharedObject< BinnedArray< Tvol > > & Trk::BoundarySurface< Tvol >::outsideVolumeArray

Definition at line 155 of file BoundarySurface.h.

155  {
156  return m_outsideVolumeArray;
157 }

◆ setInsideVolume()

template<class Tvol >
void Trk::BoundarySurface< Tvol >::setInsideVolume ( const Tvol *  vol)

Definition at line 129 of file BoundarySurface.h.

129  {
130  m_insideVolume = vol;
131 }

◆ setInsideVolumeArray()

template<class Tvol >
void Trk::BoundarySurface< Tvol >::setInsideVolumeArray ( const SharedObject< VolumeArray > &  )

Definition at line 148 of file BoundarySurface.h.

149  {
150  m_insideVolumeArray = volArray;
151 }

◆ setOutsideVolume()

template<class Tvol >
void Trk::BoundarySurface< Tvol >::setOutsideVolume ( const Tvol *  vol)

Definition at line 138 of file BoundarySurface.h.

138  {
139  m_outsideVolume = vol;
140 }

◆ setOutsideVolumeArray()

template<class Tvol >
void Trk::BoundarySurface< Tvol >::setOutsideVolumeArray ( const SharedObject< VolumeArray > &  )

Definition at line 159 of file BoundarySurface.h.

160  {
161  m_outsideVolumeArray = volArray;
162 }

◆ surfaceRepresentation() [1/2]

template<class Tvol >
virtual const Surface& Trk::BoundarySurface< Tvol >::surfaceRepresentation ( ) const
pure virtual

◆ surfaceRepresentation() [2/2]

template<class Tvol >
virtual Surface& Trk::BoundarySurface< Tvol >::surfaceRepresentation ( )
pure virtual

Member Data Documentation

◆ m_insideVolume

template<class Tvol >
const Tvol* Trk::BoundarySurface< Tvol >::m_insideVolume
protected

Definition at line 118 of file BoundarySurface.h.

◆ m_insideVolumeArray

template<class Tvol >
SharedObject<VolumeArray> Trk::BoundarySurface< Tvol >::m_insideVolumeArray
protected

Definition at line 120 of file BoundarySurface.h.

◆ m_outsideVolume

template<class Tvol >
const Tvol* Trk::BoundarySurface< Tvol >::m_outsideVolume
protected

Definition at line 119 of file BoundarySurface.h.

◆ m_outsideVolumeArray

template<class Tvol >
SharedObject<VolumeArray> Trk::BoundarySurface< Tvol >::m_outsideVolumeArray
protected

Definition at line 121 of file BoundarySurface.h.


The documentation for this class was generated from the following file:
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::BoundarySurface::m_insideVolumeArray
SharedObject< VolumeArray > m_insideVolumeArray
Definition: BoundarySurface.h:120
Trk::BoundarySurface::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const =0
The Surface Representation of this.
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::BoundarySurface::m_outsideVolumeArray
SharedObject< VolumeArray > m_outsideVolumeArray
Definition: BoundarySurface.h:121
Trk::inside
@ inside
Definition: PropDirection.h:29
Trk::Surface::onSurface
bool onSurface(const T &parameters, const BoundaryCheck &bchk=BoundaryCheck(true)) const
The templated Parameters OnSurface method - checks on surface pointer first.
Trk::outside
@ outside
Definition: PropDirection.h:29
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::BoundarySurface::m_outsideVolume
const Tvol * m_outsideVolume
Definition: BoundarySurface.h:119
Trk::BoundarySurface::m_insideVolume
const Tvol * m_insideVolume
Definition: BoundarySurface.h:118