ATLAS Offline Software
Loading...
Searching...
No Matches
BoundarySubtractedPlaneSurface.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// BoundarySubtractedPlaneSurface.h, (c) ATLAS Detector software
8
9#ifndef TRKVOLUMES_BOUNDARYSUBTRACTEDPLANESURFACE_H
10#define TRKVOLUMES_BOUNDARYSUBTRACTEDPLANESURFACE_H
11
18
19namespace Trk {
20
21// class TrackParameters;
22class Volume;
23
27 BoundarySubtractedPlaneSurface description inside the tracking realm,
28 it extends the SubtractedPlaneSurface description to make a surface being a
29 boundary of a volume,
30
31 @author Sarka.Todorova@cern.ch
32 @author Christos Anastopoulos (Athena MT modifications)
33*/
34
35template <class Tvol>
37 : public BoundarySurface<Tvol>,
41
42 public:
45
48 const BoundarySubtractedPlaneSurface<Tvol>& bps) = default;
49
50 /**Assignment operator*/
52 const BoundarySubtractedPlaneSurface& vol) = default;
53
55
60
62 BoundarySubtractedPlaneSurface(std::shared_ptr<const VolumeArray> insideArray,
63 std::shared_ptr<const VolumeArray> outsideArray,
64 const SubtractedPlaneSurface& psf)
65 : BoundarySurface<Tvol>(insideArray, outsideArray),
67
70 const SubtractedPlaneSurface& psf,
71 const Amg::Transform3D& tr)
73 SubtractedPlaneSurface(psf, tr) {}
74
79 virtual const Tvol* attachedVolume(const TrackParameters& parms,
80 PropDirection dir) const override final;
81
84 virtual const Tvol* attachedVolume(const Amg::Vector3D& pos,
85 const Amg::Vector3D& mom,
86 PropDirection dir) const override final;
87
89 virtual const Surface& surfaceRepresentation() const override final;
90 virtual Surface& surfaceRepresentation() override final;
91};
92
93// Hash include inline functions
94#include "TrkVolumes/BoundarySubtractedPlaneSurface.icc"
95
96} // end of namespace Trk
97
98#endif // TRKVOLUMES_BOUNDARYSUBTRACTEDPLANESURFACE_H
99
Binned Array for avoiding map searches/.
Definition BinnedArray.h:36
virtual const Surface & surfaceRepresentation() const override final
The Surface Representation of this.
BoundarySubtractedPlaneSurface()=default
Default Constructor - needed for pool and inherited classes.
BoundarySubtractedPlaneSurface(const Tvol *inside, const Tvol *outside, const SubtractedPlaneSurface &psf)
Constructor for a Boundary with exact two Volumes attached to it.
BoundarySubtractedPlaneSurface(const Tvol *inside, const Tvol *outside, const SubtractedPlaneSurface &psf, const Amg::Transform3D &tr)
Copy constructor with a shift.
BoundarySubtractedPlaneSurface & operator=(const BoundarySubtractedPlaneSurface &vol)=default
Assignment operator.
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
virtual ~BoundarySubtractedPlaneSurface()=default
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...
BoundarySubtractedPlaneSurface(const BoundarySubtractedPlaneSurface< Tvol > &bps)=default
Copy constructor.
BoundarySubtractedPlaneSurface(std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray, const SubtractedPlaneSurface &psf)
Constructor for a Boundary with two VolumeArrays attached to it.
BoundarySurface()=default
Default Constructor - needed for pool and inherited classes.
SubtractedPlaneSurface()=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