ATLAS Offline Software
SaggedLineSurface.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // SaggedLineSurface.h, (c) ATLAS Detector software
8 
9 #ifndef TRKDISTORTEDSURFACES_SAGGEDLINESURFACE_H
10 #define TRKDISTORTEDSURFACES_SAGGEDLINESURFACE_H
11 
12 // Geo & Maths
14 // Trk
18 #include "CxxUtils/CachedValue.h"
19 namespace Trk {
20 
21  class TrkDetElementBase;
22 
32  class SaggedLineSurface final
33  : public StraightLineSurface
34  , virtual public DistortedSurface
35  {
36  public:
39 
41  SaggedLineSurface(const Amg::Transform3D& htrans,
42  double radius,
43  double halez,
45 
46  SaggedLineSurface(const Amg::Transform3D& htrans);
47 
49  SaggedLineSurface(const TrkDetElementBase& detelement, const Identifier& id);
50 
53  const TrkDetElementBase& detelement,
54  const Identifier& id,
55  double wireLength,
56  double wireTension,
57  double linearDensity);
58 
61 
63  virtual ~SaggedLineSurface();
64 
66 
68  virtual const StraightLineSurface& surfaceRepresentation() const override final;
69 
71  virtual const LineSaggingDescriptor& distortionDescriptor() const override final;
72 
74  virtual StraightLineSurface* correctedSurface(const Amg::Vector2D& lp) const override final;
75 
76 
77  protected:
80  };
81 
84 { return (*this); }
85 
88 { return (*m_saggingDescriptor); }
89 
90 } // end of namespace Trk
91 
92 #endif // TRKDISTORTEDSURFACES_SAGGEDLINESURFACE_H
93 
Trk::SaggedLineSurface::correctedSurface
virtual StraightLineSurface * correctedSurface(const Amg::Vector2D &lp) const override final
Get the NEW corrected surface - this is a factory (the user has to delete the surface)
Definition: SaggedLineSurface.cxx:86
StraightLineSurface.h
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Trk::SaggedLineSurface::surfaceRepresentation
virtual const StraightLineSurface & surfaceRepresentation() const override final
Get the Surface representation.
Definition: SaggedLineSurface.h:83
LineSaggingDescriptor.h
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
Trk::SaggedLineSurface::operator=
Trk::SaggedLineSurface & operator=(const Trk::SaggedLineSurface &sls)
Definition: SaggedLineSurface.cxx:74
GeoPrimitives.h
DistortedSurface.h
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Trk::SaggedLineSurface::distortionDescriptor
virtual const LineSaggingDescriptor & distortionDescriptor() const override final
Get the Distortion descriptor
Definition: SaggedLineSurface.h:87
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
CxxUtils::CachedValue< Amg::Vector3D >
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
CachedValue.h
Cached value with atomic update.
Trk::LineSaggingDescriptor
Definition: LineSaggingDescriptor.h:33
ParticleGun_SamplingFraction.radius
radius
Definition: ParticleGun_SamplingFraction.py:96
Trk::DistortedSurface
Definition: DistortedSurface.h:31
Trk::SaggedLineSurface::m_saggingDescriptor
LineSaggingDescriptor * m_saggingDescriptor
the distortion descriptor
Definition: SaggedLineSurface.h:78
Trk::SaggedLineSurface
Definition: SaggedLineSurface.h:35
Trk::SaggedLineSurface::SaggedLineSurface
SaggedLineSurface()
Default Constructor - needed for pool and inherited classes.
Definition: SaggedLineSurface.cxx:19
Trk::SaggedLineSurface::~SaggedLineSurface
virtual ~SaggedLineSurface()
Destructor.
Definition: SaggedLineSurface.cxx:69
Trk::SaggedLineSurface::m_saggedLineDirection
CxxUtils::CachedValue< Amg::Vector3D > m_saggedLineDirection
nominal end position
Definition: SaggedLineSurface.h:79
Trk::StraightLineSurface
Definition: StraightLineSurface.h:51