9#ifndef TRKDETDESCRINTERFACES_ITRACKINGVOLUMEHELPER_H
10#define TRKDETDESCRINTERFACES_ITRACKINGVOLUMEHELPER_H
13#include "GaudiKernel/IAlgTool.h"
58 bool buildBoundaryLayer =
false)
const = 0;
67 const std::vector<TrackingVolume*>& secondVolumes,
69 bool buildBoundaryLayer =
false,
70 bool boundaryFaceExchange =
false)
const = 0;
78 const std::vector<TrackingVolume*>& firstVolumes,
80 const std::vector<TrackingVolume*>& secondVolumes,
82 bool buildBoundaryLayer =
false,
83 bool boundaryFaceExchange =
false)
const = 0;
90 std::shared_ptr<TrackingVolume> firstVol,
92 std::shared_ptr<TrackingVolume> secondVol,
94 const std::string& name)
const = 0;
129 sf.associateLayer(lay);
Define macros for attributes used to control the static checker.
Binned Array for avoiding map searches/.
Bounds for a cylindrical Volume, the decomposeToSurfaces method creates a vector of up to 6 surfaces:
Interface class ITrackingVolumeHelpers It inherits from IAlgTool.
void associateLayer(const Layer &lay, Surface &sf) const
Protected method to register the Layer to the Surface.
virtual ~ITrackingVolumeHelper()=default
Virtual destructor.
virtual void setInsideTrackingVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *insidevol) const =0
Glue Volume method: set inside Volume — Neccessary as friendship cannot be inherited: your father's f...
virtual void setInsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, std::shared_ptr< BinnedArray< TrackingVolume > > insidevolarray) const =0
virtual void glueTrackingVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, TrackingVolume &secondVol, BoundarySurfaceFace secondFace, bool buildBoundaryLayer=false) const =0
Glue Volume method: One to one — Neccessary as friendship cannot be inherited: your father's friend i...
virtual void glueTrackingVolumes(TrackingVolume &firstVol, BoundarySurfaceFace firstFace, const std::vector< TrackingVolume * > &secondVolumes, BoundarySurfaceFace secondFace, bool buildBoundaryLayer=false, bool boundaryFaceExchange=false) const =0
Glue Volume method: One to many — Neccessary as friendship cannot be inherited: your father's friend ...
virtual void setOutsideTrackingVolume(TrackingVolume &tvol, BoundarySurfaceFace face, TrackingVolume *outsidevol) const =0
Glue Volume method: set outside Volume — Neccessary as friendship cannot be inherited: your father's ...
DeclareInterfaceID(ITrackingVolumeHelper, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual std::unique_ptr< Trk::TrackingVolume > glueTrackingVolumeArrays(std::shared_ptr< TrackingVolume > firstVol, BoundarySurfaceFace firstFace, std::shared_ptr< TrackingVolume > secondVol, BoundarySurfaceFace secondFace, const std::string &name) const =0
Glue Volume method: many to many plus enveloping volume — Neccessary as friendship cannot be inherite...
virtual void glueTrackingVolumes(const std::vector< TrackingVolume * > &firstVolumes, BoundarySurfaceFace firstFace, const std::vector< TrackingVolume * > &secondVolumes, BoundarySurfaceFace secondFace, bool buildBoundaryLayer=false, bool boundaryFaceExchange=false) const =0
Method to glue two VolumeArrays together (at navigation level) - without output — Necessary as friend...
virtual void setOutsideTrackingVolumeArray(TrackingVolume &tvol, BoundarySurfaceFace face, std::shared_ptr< BinnedArray< TrackingVolume > > outsidevolarray) const =0
Glue Volume method: set outside Volume array — Neccessary as friendship cannot be inherited: your fat...
Base Class for a Detector Layer in the Tracking realm.
A common object to be contained by.
Abstract Base Class for tracking surfaces.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Pure Absract Base Class for Volume bounds.
Ensure that the ATLAS eigen extensions are properly loaded.
BoundarySurfaceFace
Enum to describe the position of the BoundarySurface respectively to the frame orientatin of the volu...