ATLAS Offline Software
BoundaryDiscSurface.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 // BoundaryDiscSurface.h, (c) ATLAS Detector software
8 
9 #ifndef TRKVOLUMES_BOUNDARYDISCSURFACE_H
10 #define TRKVOLUMES_BOUNDARYDISCSURFACE_H
11 
12 // Trk
13 #include <memory>
18 // CLHEP
20 
21 namespace Trk {
22 
23 // class TrackParameters;
24 class Volume;
25 
37 template <class Tvol>
39  public DiscSurface {
42 
43  public:
45  BoundaryDiscSurface() = default;
46 
49 
52 
54  virtual ~BoundaryDiscSurface() = default;
55 
57  BoundaryDiscSurface(const Tvol* inside, const Tvol* outside,
58  const DiscSurface& dsf)
59  : BoundarySurface<Tvol>(inside, outside), DiscSurface(dsf) {}
60 
62  BoundaryDiscSurface(std::shared_ptr<const VolumeArray> insideArray,
63  std::shared_ptr<const VolumeArray> outsideArray,
64  const DiscSurface& dsf)
65  : BoundarySurface<Tvol>(std::move(insideArray), std::move(outsideArray)), DiscSurface(dsf) {}
66 
68  BoundaryDiscSurface(const Tvol* inside, const Tvol* outside,
69  const DiscSurface& dsf, const Amg::Transform3D& tr)
70  : BoundarySurface<Tvol>(inside, outside), DiscSurface(dsf, tr) {}
71 
78  virtual const Tvol* attachedVolume(const TrackParameters& parms,
79  PropDirection dir) const override final;
80 
83  virtual const Tvol* attachedVolume(const Amg::Vector3D& pos,
84  const Amg::Vector3D& mom,
85  PropDirection dir) const override final;
86 
88  virtual const Surface& surfaceRepresentation() const override final;
89  virtual Surface& surfaceRepresentation() override final;
90 };
91 
92 // Hash include inline functions
93 #include "TrkVolumes/BoundaryDiscSurface.icc"
94 
95 } // end of namespace Trk
96 
97 #endif // TRKVOLUMES_BOUNDARYDISCSURFACE_H
98 
Trk::BoundaryDiscSurface::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...
Trk::BoundarySurface
Definition: BoundarySurface.h:43
Trk::BoundaryDiscSurface::BoundaryDiscSurface
BoundaryDiscSurface(const Tvol *inside, const Tvol *outside, const DiscSurface &dsf)
Constructor for a Boundary with exact two Volumes attached to it.
Definition: BoundaryDiscSurface.h:57
TrackParameters.h
Trk::BoundaryDiscSurface::VolumeArray
BinnedArray< Tvol > VolumeArray
typedef the BinnedArray
Definition: BoundaryDiscSurface.h:41
Trk::BoundaryDiscSurface::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const override final
The Surface Representation of this.
PropDirection.h
Trk::BoundaryDiscSurface::~BoundaryDiscSurface
virtual ~BoundaryDiscSurface()=default
Virtual Destructor.
Trk::BoundaryDiscSurface::BoundaryDiscSurface
BoundaryDiscSurface(const Tvol *inside, const Tvol *outside, const DiscSurface &dsf, const Amg::Transform3D &tr)
Copy constructor with a shift.
Definition: BoundaryDiscSurface.h:68
Trk::DiscSurface
Definition: DiscSurface.h:54
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
GeoPrimitives.h
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::BoundaryDiscSurface
Definition: BoundaryDiscSurface.h:39
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::BoundaryDiscSurface::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...
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::ParametersBase
Definition: ParametersBase.h:55
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::BoundaryDiscSurface::operator=
BoundaryDiscSurface & operator=(const BoundaryDiscSurface &vol)=default
Assignment operator.
Trk::BoundaryDiscSurface::BoundaryDiscSurface
BoundaryDiscSurface()=default
Default Constructor - needed for pool and inherited classes.
beamspotman.dir
string dir
Definition: beamspotman.py:621
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
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
DiscSurface.h
Trk::BoundaryDiscSurface::BoundaryDiscSurface
BoundaryDiscSurface(const BoundaryDiscSurface< Tvol > &bds)=default
Copy constructor.
Trk::outside
@ outside
Definition: PropDirection.h:29
Trk::BoundaryDiscSurface::BoundaryDiscSurface
BoundaryDiscSurface(std::shared_ptr< const VolumeArray > insideArray, std::shared_ptr< const VolumeArray > outsideArray, const DiscSurface &dsf)
Constructor for a Boundary with two VolumeArrays attached to it.
Definition: BoundaryDiscSurface.h:62
Trk::BinnedArray
Definition: BinnedArray.h:36
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79