ATLAS Offline Software
Loading...
Searching...
No Matches
BoundarySubtractedCylinderSurface.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// BoundarySubtractedCylinderSurface.h, (c) ATLAS Detector software
8
9#ifndef TRKVOLUMES_BOUNDARYSUBTRACTEDCYLIMDERSURFACE_H
10#define TRKVOLUMES_BOUNDARYSUBTRACTEDCYLIMDERSURFACE_H
11
18
19namespace Trk {
20
21// class TrackParameters;
22class Volume;
23
27 BoundarySubtractedCylinderSurface description inside the tracking realm,
28 it extends the Surface description to make a surface being a boundary of a
29 Trk::Volume
30
31 @author Andreas.Salzburger@cern.ch
32 @author Christos Anastopoulos (Athena MT modifications)
33 */
34
35template <class Tvol>
37 : public BoundarySurface<Tvol>,
41
42 public:
45
48 const BoundarySubtractedCylinderSurface<Tvol>& bcs) = default;
49
52
55 const BoundarySubtractedCylinderSurface& vol) = default;
56
62
64 BoundarySubtractedCylinderSurface(std::shared_ptr<const VolumeArray> insideArray,
65 std::shared_ptr<const VolumeArray> outsideArray,
67 : BoundarySurface<Tvol>(insideArray, outsideArray),
69
76
83 virtual const Tvol* attachedVolume(const TrackParameters& parms,
84 PropDirection dir) const override final;
85
88 virtual const Tvol* attachedVolume(const Amg::Vector3D& pos,
89 const Amg::Vector3D& mom,
90 PropDirection dir) const override final;
91
93 virtual const Surface& surfaceRepresentation() const override final;
94 virtual Surface& surfaceRepresentation() override final;
95};
96
97// Hash include the inline functions
98#include "TrkVolumes/BoundarySubtractedCylinderSurface.icc"
99
100} // end of namespace Trk
101
102#endif // TRKVOLUMES_BOUNDARYSUBTRACTEDCYLINDERSURFACE_H
103
Binned Array for avoiding map searches/.
Definition BinnedArray.h:36
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
BoundarySubtractedCylinderSurface & operator=(const BoundarySubtractedCylinderSurface &vol)=default
Assignment operator.
BoundarySubtractedCylinderSurface(const BoundarySubtractedCylinderSurface< Tvol > &bcs)=default
Copy constructor.
BoundarySubtractedCylinderSurface()=default
Default Constructor - needed for pool and inherited classes.
BoundarySubtractedCylinderSurface(std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray, const SubtractedCylinderSurface &csf)
Constructor for a Boundary with two VolumeArrays attached to it.
BoundarySubtractedCylinderSurface(const Tvol *inside, const Tvol *outside, const SubtractedCylinderSurface &csf)
Constructor for a Boundary with exact two Volumes attached to it.
virtual const Surface & surfaceRepresentation() const override final
The Surface Representation of this.
virtual ~BoundarySubtractedCylinderSurface()=default
Virtual Destructor.
BoundarySubtractedCylinderSurface(const Tvol *inside, const Tvol *outside, const SubtractedCylinderSurface &csf, const Amg::Transform3D &tr)
Copy constructor with a shift.
virtual const Tvol * attachedVolume(const TrackParameters &parms, PropDirection dir) const override final
Get the next Volume depending on the TrackParameters and the requested direction, gives back 0 if the...
BoundarySurface()=default
Default Constructor - needed for pool and inherited classes.
SubtractedCylinderSurface()=default
Defaults.
Abstract Base Class for tracking surfaces.
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition Volume.h:36
Eigen::Affine3d Transform3D
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
@ outside