ATLAS Offline Software
BoundaryPlaneSurface.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 // BoundaryPlaneSurface.h, (c) ATLAS Detector software
8 
9 #ifndef TRKVOLUMES_BOUNDARYPLANESURFACE_H
10 #define TRKVOLUMES_BOUNDARYPLANESURFACE_H
11 
12 // Trk
18 
19 namespace Trk {
20 
21 // class TrackParameters;
22 class Volume;
23 
35 template <class Tvol>
37  public PlaneSurface {
40 
41  public:
43  BoundaryPlaneSurface() = default;
44 
47 
50 
52  virtual ~BoundaryPlaneSurface() = default;
53 
55  BoundaryPlaneSurface(const Tvol* inside, const Tvol* outside,
56  const PlaneSurface& psf)
57  : BoundarySurface<Tvol>(inside, outside), PlaneSurface(psf) {}
58 
60  BoundaryPlaneSurface(std::shared_ptr<const VolumeArray> insideArray,
61  std::shared_ptr<const VolumeArray> outsideArray,
62  const PlaneSurface& psf)
63  : BoundarySurface<Tvol>(insideArray, outsideArray), PlaneSurface(psf) {}
64 
66  BoundaryPlaneSurface(const Tvol* inside, const Tvol* outside,
67  const PlaneSurface& psf, const Amg::Transform3D& tr)
68  : BoundarySurface<Tvol>(inside, outside), PlaneSurface(psf, tr) {}
69 
74  virtual const Tvol* attachedVolume(const TrackParameters& parms,
75  PropDirection dir) const override final;
76 
79  virtual const Tvol* attachedVolume(const Amg::Vector3D& pos,
80  const Amg::Vector3D& mom,
81  PropDirection dir) const override final;
82 
84  virtual const Surface& surfaceRepresentation() const override final;
85  virtual Surface& surfaceRepresentation() override final;
86 };
87 
88 // Hash include inline functions
89 #include "TrkVolumes/BoundaryPlaneSurface.icc"
90 
91 } // end of namespace Trk
92 
93 #endif // TRKVOLUMES_BOUNDARYPLANESURFACE_H
94 
Trk::BoundaryPlaneSurface::BoundaryPlaneSurface
BoundaryPlaneSurface()=default
Default Constructor - needed for pool and inherited classes.
Trk::BoundaryPlaneSurface::BoundaryPlaneSurface
BoundaryPlaneSurface(const Tvol *inside, const Tvol *outside, const PlaneSurface &psf)
Constructor for a Boundary with exact two Volumes attached to it.
Definition: BoundaryPlaneSurface.h:55
Trk::BoundarySurface
Definition: BoundarySurface.h:43
TrackParameters.h
PropDirection.h
Trk::BoundaryPlaneSurface::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const override final
The Surface Representation of this.
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::BoundaryPlaneSurface
Definition: BoundaryPlaneSurface.h:37
GeoPrimitives.h
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::BoundaryPlaneSurface::BoundaryPlaneSurface
BoundaryPlaneSurface(const BoundaryPlaneSurface< Tvol > &bps)=default
Copy constructor.
Trk::ParametersBase
Definition: ParametersBase.h:55
columnar::final
CM final
Definition: ColumnAccessor.h:106
beamspotman.dir
string dir
Definition: beamspotman.py:619
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::BoundaryPlaneSurface::VolumeArray
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
Definition: BoundaryPlaneSurface.h:39
Trk::BoundaryPlaneSurface::BoundaryPlaneSurface
BoundaryPlaneSurface(const Tvol *inside, const Tvol *outside, const PlaneSurface &psf, const Amg::Transform3D &tr)
Copy constructor with a shift.
Definition: BoundaryPlaneSurface.h:66
Trk::BoundaryPlaneSurface::attachedVolume
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...
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
BoundarySurface.h
Trk::inside
@ inside
Definition: PropDirection.h:29
Trk::PlaneSurface
Definition: PlaneSurface.h:64
PlaneSurface.h
Trk::BoundaryPlaneSurface::attachedVolume
virtual const Tvol * attachedVolume(const Amg::Vector3D &pos, const Amg::Vector3D &mom, PropDirection dir) const override final
Get the next Volume depending on GlobalPosition, GlobalMomentum, dir on the TrackParameters and the r...
Trk::BoundaryPlaneSurface::BoundaryPlaneSurface
BoundaryPlaneSurface(std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray, const PlaneSurface &psf)
Constructor for a Boundary with two VolumeArrays attached to it.
Definition: BoundaryPlaneSurface.h:60
Trk::BoundaryPlaneSurface::~BoundaryPlaneSurface
virtual ~BoundaryPlaneSurface()=default
Virtual Destructor.
Trk::outside
@ outside
Definition: PropDirection.h:29
Trk::BinnedArray
Definition: BinnedArray.h:36
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::BoundaryPlaneSurface::operator=
BoundaryPlaneSurface & operator=(const BoundaryPlaneSurface &vol)=default
Assignment operator.