ATLAS Offline Software
|
A class to represent complex geometries requiring a description using multiple surfaces. More...
#include <CompoundLayer.h>
Public Member Functions | |
CompoundLayer () | |
Default construactor. More... | |
virtual | ~CompoundLayer () |
Destructor, deletes the consituent surfaces. More... | |
virtual const Layer & | layerRepresentation () const =0 |
const std::vector< const Surface * > & | constituentSurfaces () const |
virtual std::vector< const Surface * > | closestSurfaces (const Amg::Vector3D &gp, const Amg::Vector3D &dir, bool alsoBackward=false) const |
bool | isOnCompoundLayer (const Amg::Vector3D &gp, double thickness) const |
Searches through the surfaces with Layer specific tolerance to see if the gp is on one of the subsurfaces. More... | |
Protected Member Functions | |
void | resize (const VolumeBounds &, double) const |
Resize the layer to the tracking volume - not (yet) supported for Compound Layer. More... | |
Protected Attributes | |
std::vector< const Surface * > | m_surfaces |
The constituent surfaces. More... | |
A class to represent complex geometries requiring a description using multiple surfaces.
Base class for complex layers, where a few different Surfaces need to be stitched together to create the geometry of the Layer. The CompoundLayer has a single surface representation which is a single simple Surface that gives a rough description of the whole geometry (eg. for a cylider with conical end-pieces, the barrel cylinder extended to the edges of the cones are used).
The CompoundLayer class provides routines for the extrapolator to use to test the various Surfaces in order of most to least likely given a particular position and direction.
Classes which derived from this class should also derive from Layer to be used by the extrapolator properly, the CompoundLayer class just ensures that the extra functionality required is present.
The best practice is to derive from an already specified layer type, for instance ConeCylinderConeLayer derives from CylinderLayer, so in places like LayerBuilders, the compound layer can be used without needing to redevelop the interface.
Definition at line 60 of file CompoundLayer.h.
|
inline |
|
virtual |
Destructor, deletes the consituent surfaces.
Definition at line 22 of file CompoundLayer.cxx.
|
inlinevirtual |
Definition at line 90 of file CompoundLayer.h.
Definition at line 87 of file CompoundLayer.h.
bool Trk::CompoundLayer::isOnCompoundLayer | ( | const Amg::Vector3D & | gp, |
double | thickness | ||
) | const |
Searches through the surfaces with Layer specific tolerance to see if the gp is on one of the subsurfaces.
Definition at line 12 of file CompoundLayer.cxx.
|
inlineprotected |
Resize the layer to the tracking volume - not (yet) supported for Compound Layer.
Definition at line 82 of file CompoundLayer.h.
The constituent surfaces.
Definition at line 84 of file CompoundLayer.h.