ATLAS Offline Software
SlidingDiscSurface.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // SlidingDiscSurface.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRYSURFACES_SLIDINGDISCSURFACE_H
10 #define TRKGEOMETRYSURFACES_SLIDINGDISCSURFACE_H
11 
12 // Trk
17 #include "TrkSurfaces/NoBounds.h"
19 // Amg
22 #include <vector>
23 #include <string>
24 
25 namespace Trk {
26 
27 class DiscBounds;
28 class TrkDetElementBase;
29 class LocalParameters;
30 
31 template<int DIM, class T, class S>
32 class ParametersT;
33 
44 class SlidingDiscSurface final : public DiscSurface
45 {
46 
47 public:
48 
51  const Trk::BinUtility & bu,
52  const std::vector<float> & offset);
53 
54 
57  const Amg::Transform3D& transf);
58 
60  SlidingDiscSurface(const DiscSurface& surf,
61  const Trk::BinUtility & bu,
62  const std::vector<float> & offset);
63 
64 
66  virtual bool operator==(const Surface& sf) const override final;
67 
69  virtual SlidingDiscSurface* clone() const override final;
70 
74  virtual bool isOnSurface(const Amg::Vector3D& glopo,
75  const BoundaryCheck& bchk = true,
76  double tol1 = 0.,
77  double tol2 = 0.) const override final;
78 
81  virtual void localToGlobal(const Amg::Vector2D& locp,
83  Amg::Vector3D& glob) const override final;
84 
88  virtual bool globalToLocal(const Amg::Vector3D& glob,
90  Amg::Vector2D& loc) const override final;
91 
115  const Amg::Vector3D& pos,
116  const Amg::Vector3D& dir) const override final;
117 
120  const Amg::Vector3D& pos,
121  const Amg::Vector3D& dir,
122  bool bound) const override final;
123 
125  const Trk::BinUtility & binUtility() const { return m_etaBin; }
126 
128  const std::vector<float> & offset() const { return m_depth; }
129 
131  virtual std::string name() const override final
132  {
133  return "Trk::SlidingDiscSurface";
134  }
135 
136 protected:
137  std::vector<float> m_depth{};
139 };
140 
141 inline SlidingDiscSurface*
143 {
144  return new SlidingDiscSurface(*this);
145 }
146 
147 } // end of namespace
148 
149 #endif // TRKSURFACES_SLIDINGDISCSURFACE_H
Trk::SlidingDiscSurface
Definition: SlidingDiscSurface.h:45
Trk::DistanceSolution
Definition: DistanceSolution.h:25
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
BinUtility.h
Trk::DiscSurface
Definition: DiscSurface.h:54
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::SlidingDiscSurface::isOnSurface
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const override final
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
Definition: SlidingDiscSurface.cxx:80
Trk::SlidingDiscSurface::name
virtual std::string name() const override final
Return properly formatted class name for screen output.
Definition: SlidingDiscSurface.h:131
GeoPrimitives.h
SurfaceBounds.h
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::SlidingDiscSurface::clone
virtual SlidingDiscSurface * clone() const override final
Virtual constructor.
Definition: SlidingDiscSurface.h:142
Trk::SlidingDiscSurface::SlidingDiscSurface
SlidingDiscSurface(DiscSurface &surf, const Trk::BinUtility &bu, const std::vector< float > &offset)
Constructor.
Trk::SlidingDiscSurface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specialized for DiscSurface: LocalToGlobal method without dynamic memory allocation.
Definition: SlidingDiscSurface.cxx:54
Trk::SlidingDiscSurface::straightLineDistanceEstimate
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const override final
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
Definition: SlidingDiscSurface.cxx:96
Trk::SlidingDiscSurface::operator==
virtual bool operator==(const Surface &sf) const override final
Equality operator.
Definition: SlidingDiscSurface.cxx:39
Trk::SlidingDiscSurface::offset
const std::vector< float > & offset() const
This method allows access to the radial offset values.
Definition: SlidingDiscSurface.h:128
ParametersT.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::BinUtility
Definition: BinUtility.h:39
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Trk::SlidingDiscSurface::m_depth
std::vector< float > m_depth
< data members
Definition: SlidingDiscSurface.h:137
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
LocalParameters.h
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::SlidingDiscSurface::binUtility
const Trk::BinUtility & binUtility() const
This method allows access to the bin utility.
Definition: SlidingDiscSurface.h:125
DiscSurface.h
Trk::SlidingDiscSurface::m_etaBin
Trk::BinUtility m_etaBin
Definition: SlidingDiscSurface.h:138
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::SlidingDiscSurface::globalToLocal
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specialized for DiscSurface: GlobalToLocal method without dynamic memory allocation - boolean checks ...
Definition: SlidingDiscSurface.cxx:71
NoBounds.h