ATLAS Offline Software
Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Surface.h, (c) ATLAS Detector software
8 
9 #ifndef TRKSURFACES_SURFACE_H
10 #define TRKSURFACES_SURFACE_H
11 
12 // Amg
13 // Ensure Eigen plugin comes first
16 
17 // Trk
21 //
28 //
34 // Identifier
35 #include "Identifier/Identifier.h"
36 //
39 #include <atomic>
40 #include <memory>
41 #include <optional>
42 
43 class MsgStream;
44 class SurfaceCnv_p1;
45 
46 namespace Trk {
47 
48 class TrkDetElementBase;
49 class SurfaceBounds;
50 class Layer;
51 
53 {
54  noOwn = 0,
55  TGOwn = 1,
56  DetElOwn = 2,
57  userOwn = 3
58 };
59 
74 class Surface: public Trk::ObjectCounter<Trk::Surface>
75 {
76 
77 public:
78  /*
79  * struct holding the transform, center, normal,
80  * needed when by surfaces when not delegating
81  * to a detector element
82  */
83  struct Transforms
84  {
85  // constructor with just a Amg::Transform3D input
86  inline Transforms(const Amg::Transform3D& atransform)
87  : transform(atransform)
88  , center(transform.translation())
89  , normal(transform.linear().col(2))
90  {
91  }
92 
93  // constructor with Amg::Transform3D and center input
94  inline Transforms(const Amg::Transform3D& atransform,
95  const Amg::Vector3D& acenter)
96  : transform(atransform)
97  , center(acenter)
98  , normal(transform.linear().col(2))
99  {
100  }
101 
102  // constructor with Amg::Transform3D , center and normal input
103  inline Transforms(const Amg::Transform3D& atransform,
104  const Amg::Vector3D& acenter,
105  const Amg::Vector3D& anormal)
106  : transform(atransform)
107  , center(acenter)
108  , normal(anormal)
109  {
110  }
111  Transforms(const Transforms&) = default;
112  Transforms(Transforms&&) = default;
113  Transforms& operator=(const Transforms&) = default;
115  ~Transforms() = default;
122  };
125  std::unique_ptr<ParametersBase<5, Trk::Charged>>;
127  std::unique_ptr<ParametersBase<5, Trk::Neutral>>;
128 
132 
134  virtual ~Surface();
135 
137  Surface(const Surface& sf, const Amg::Transform3D& transf);
138 
140  Surface(const Amg::Transform3D& htrans);
141 
143  Surface(const TrkDetElementBase& detelement);
144 
146  Surface(const TrkDetElementBase& detelement, const Identifier& id);
147 
149  virtual bool operator==(const Surface& sf) const = 0;
150 
152  bool operator!=(const Surface& sf) const;
153 
155  virtual Surface* clone() const = 0;
156 
158  std::unique_ptr<Surface> uniqueClone() const;
159 
161  constexpr virtual SurfaceType type() const = 0;
162 
166 
168  const Amg::Transform3D& transform() const;
169 
171  const Amg::Vector3D& center() const;
172 
175  virtual const Amg::Vector3D& normal() const;
176 
179  virtual Amg::Vector3D normal(const Amg::Vector2D& lp) const;
180 
185  virtual const Amg::Vector3D& globalReferencePoint() const;
186 
189 
192 
194  const Trk::Layer* associatedLayer() const;
195 
197  const Trk::Layer* materialLayer() const;
199 
201  virtual const Trk::Surface* baseSurface() const;
202 
207  double l1,
208  double l2,
209  double phi,
210  double theat,
211  double qop,
212  std::optional<AmgSymMatrix(5)> cov = std::nullopt) const = 0;
213 
218  const Amg::Vector3D&,
219  const Amg::Vector3D&,
220  double,
221  std::optional<AmgSymMatrix(5)> cov = std::nullopt) const = 0;
222 
227  double l1,
228  double l2,
229  double phi,
230  double theat,
231  double qop,
232  std::optional<AmgSymMatrix(5)> cov = std::nullopt) const = 0;
233 
238  const Amg::Vector3D&,
239  const Amg::Vector3D&,
240  double charge = 0.,
241  std::optional<AmgSymMatrix(5)> cov = std::nullopt) const = 0;
242 
251  std::optional<Amg::Vector2D> positionOnSurface(
252  const Amg::Vector3D& glopo,
253  const BoundaryCheck& bchk = true,
254  double tol1 = 0.,
255  double tol2 = 0.) const;
256 
259  template<class T>
260  bool onSurface(const T& parameters,
261  const BoundaryCheck& bchk = BoundaryCheck(true)) const;
262 
266  virtual bool isOnSurface(const Amg::Vector3D& glopo,
267  const BoundaryCheck& bchk = true,
268  double tol1 = 0.,
269  double tol2 = 0.) const;
270 
272  virtual bool insideBounds(const Amg::Vector2D& locpos,
273  double tol1 = 0.,
274  double tol2 = 0.) const = 0;
275 
276  virtual bool insideBoundsCheck(const Amg::Vector2D& locpos,
277  const BoundaryCheck& bchk) const = 0;
278 
281  virtual void localToGlobal(const Amg::Vector2D& locp,
282  const Amg::Vector3D& mom,
283  Amg::Vector3D& glob) const = 0;
284 
289 
295  const Amg::Vector3D& glomom) const;
296 
301 
307  const Amg::Vector3D& glomom) const;
308 
311  virtual bool globalToLocal(const Amg::Vector3D& glob,
312  const Amg::Vector3D& mom,
313  Amg::Vector2D& loc) const = 0;
314 
320  std::optional<Amg::Vector2D> globalToLocal(const Amg::Vector3D& glopos,
321  double tol = 0.) const;
322 
328  std::optional<Amg::Vector2D> globalToLocal(const Amg::Vector3D& glopos,
329  const Amg::Vector3D& glomom) const;
330 
333  const LocalParameters& locpars) const;
334 
337  virtual double pathCorrection(const Amg::Vector3D& pos,
338  const Amg::Vector3D& mom) const;
339 
345  const Amg::Vector3D& glopos,
346  const Amg::Vector3D& glomom) const;
347 
350  template<class T>
352  const T& pars,
353  bool forceDir = false,
354  const Trk::BoundaryCheck& bchk = false) const
355  {
357  pars.position(), pars.momentum().unit(), forceDir, bchk);
358  }
359 
365  const Amg::Vector3D& pos,
366  const Amg::Vector3D& dir,
367  bool forceDir = false,
368  Trk::BoundaryCheck bchk = false) const = 0;
369 
372  const Amg::Vector3D& pos,
373  const Amg::Vector3D& dir) const = 0;
374 
377  const Amg::Vector3D& pos,
378  const Amg::Vector3D& dir,
379  bool Bound) const = 0;
380 
382  virtual const SurfaceBounds& bounds() const = 0;
383 
386  bool isFree() const;
387 
389  bool isActive() const;
390 
392  void setTransform(const Amg::Transform3D& trans);
393 
396 
399 
401  void setMaterialLayer(std::shared_ptr<Layer> mlay);
402 
404  virtual MsgStream& dump(MsgStream& sl) const;
405 
407  virtual std::ostream& dump(std::ostream& sl) const;
408 
410  virtual std::string name() const = 0;
411 
415  void associateLayer(const Layer& lay);
416 
417 protected:
422  Surface(const Surface& sf);
423  Surface& operator=(const Surface& sf);
424  // Move operators for inheriting classes
425  Surface(Surface&& sf) noexcept = default;
426  Surface& operator=(Surface&& sf) noexcept = default;
427 
432 
433  friend class ::SurfaceCnv_p1;
434 
436  std::unique_ptr<Transforms> m_transforms{};
437 
440 
443 
453  std::shared_ptr<Layer> m_materialLayer{};
456 
458  static constexpr double s_onSurfaceTolerance = 10e-5; // 0.1 * micron
459 };
462 MsgStream&
463 operator<<(MsgStream& sl, const Surface& sf);
464 std::ostream&
465 operator<<(std::ostream& sl, const Surface& sf);
466 
469 } //
470 #include "Surface.icc"
471 #endif // TRKSURFACES_SURFACE_H
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::Surface::localParametersToPosition
virtual Amg::Vector2D localParametersToPosition(const LocalParameters &locpars) const
Optionally specified by each surface type : LocalParameters to Vector2D.
Trk::Surface::m_associatedDetElement
const TrkDetElementBase * m_associatedDetElement
Not owning Pointer to the TrkDetElementBase.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:439
Trk::LocalParameters
Definition: LocalParameters.h:98
Trk::Surface::Surface
Surface(Surface &&sf) noexcept=default
Trk::Surface::operator!=
bool operator!=(const Surface &sf) const
Non-equality operator.
TrkDetElementBase.h
Trk::Surface::m_owner
SurfaceOwner m_owner
enum for surface owner : 0 free surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:455
Trk::Surface::pathCorrection
virtual double pathCorrection(const Amg::Vector3D &pos, const Amg::Vector3D &mom) const
the pathCorrection for derived classes with thickness - it reflects if the direction projection is po...
Trk::Surface::operator==
virtual bool operator==(const Surface &sf) const =0
Equality operator.
Trk::Surface::createUniqueTrackParameters
virtual ChargedTrackParametersUniquePtr createUniqueTrackParameters(const Amg::Vector3D &, const Amg::Vector3D &, double, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from global parameters - charged.
Trk::Intersection
Definition: Intersection.h:24
Trk::Surface::associatedDetectorElement
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
Trk::Surface::Transforms::Transforms
Transforms(const Amg::Transform3D &atransform, const Amg::Vector3D &acenter)
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:94
Trk::Surface::Transforms::Transforms
Transforms(const Amg::Transform3D &atransform, const Amg::Vector3D &acenter, const Amg::Vector3D &anormal)
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:103
Trk::Surface::name
virtual std::string name() const =0
Return properly formatted class name.
DistanceSolution.h
Trk::Surface::globalToLocal
std::optional< Amg::Vector2D > globalToLocal(const Amg::Vector3D &glopos, double tol=0.) const
This method returns the LocalPosition from a provided GlobalPosition.
Trk::Surface::straightLineIntersection
Intersection straightLineIntersection(const T &pars, bool forceDir=false, const Trk::BoundaryCheck &bchk=false) const
fst straight line intersection schema - templated for charged and neutral parameters
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:351
Trk::Surface::setOwner
void setOwner(SurfaceOwner x)
set Ownership
Trk::DistanceSolution
Definition: DistanceSolution.h:25
SurfaceTypes.h
Trk::noOwn
@ noOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:54
Trk::Surface::Transforms::normal
Amg::Vector3D normal
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:121
Trk::Surface::setTransform
void setTransform(const Amg::Transform3D &trans)
Set the transform updates center and normal.
Trk::Surface::ChargedTrackParametersUniquePtr
std::unique_ptr< ParametersBase< 5, Trk::Charged > > ChargedTrackParametersUniquePtr
Unique ptr types.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:125
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SurfaceUniquePtrT.h
Handle conditional ownership of surfaces.
Trk::Surface::straightLineDistanceEstimate
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const =0
fast straight line distance evaluation to Surface
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
Trk::Surface::~Surface
virtual ~Surface()
Virtual Destructor.
Trk::Surface::Transforms::operator=
Transforms & operator=(const Transforms &)=default
Trk::Surface::associatedDetectorElementIdentifier
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
Trk::Surface::createUniqueNeutralParameters
virtual NeutralTrackParametersUniquePtr createUniqueNeutralParameters(const Amg::Vector3D &, const Amg::Vector3D &, double charge=0., std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from global parameters - neutral.
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
Trk::Surface::normal
virtual Amg::Vector3D normal(const Amg::Vector2D &lp) const
Returns a normal vector at a specific local position.
TrkObjectCounter.h
Trk::Surface::insideBoundsCheck
virtual bool insideBoundsCheck(const Amg::Vector2D &locpos, const BoundaryCheck &bchk) const =0
PropDirection.h
Trk::SurfaceType
SurfaceType
Definition: SurfaceTypes.h:17
Trk::Surface::NeutralTrackParametersUniquePtr
std::unique_ptr< ParametersBase< 5, Trk::Neutral > > NeutralTrackParametersUniquePtr
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:127
Trk::SurfaceUniquePtr
SurfaceUniquePtrT< Trk::Surface > SurfaceUniquePtr
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:467
Trk::Surface::localToGlobal
Amg::Vector3D localToGlobal(const LocalParameters &locpars) const
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surfac...
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
Trk::Surface::globalReferencePoint
virtual const Amg::Vector3D & globalReferencePoint() const
Returns a global reference point on the surface, for PlaneSurface, StraightLineSurface,...
Trk::Surface::center
const Amg::Vector3D & center() const
Returns the center position of the Surface.
Neutral.h
ParamDefs.h
Trk::Surface::Transforms::transform
Amg::Transform3D transform
center position of the surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:117
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::Surface::materialLayer
Trk::Layer * materialLayer()
Trk::ObjectCounter
Helper to enable counting number of instantiations in debug builds.
Definition: TrkObjectCounter.h:18
Trk::Surface::baseSurface
virtual const Trk::Surface * baseSurface() const
return the base surface (simplified for persistification)
Trk::Surface::inverseTransformMultHelper
Amg::Vector3D inverseTransformMultHelper(const Amg::Vector3D &glopos) const
Trk::Surface::measurementFrame
virtual Amg::RotationMatrix3D measurementFrame(const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perig...
Definition: Surface.cxx:135
Trk::Surface::setMaterialLayer
void setMaterialLayer(std::shared_ptr< Layer > mlay)
set material layer
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
GeoPrimitives.h
GeometryStatics.h
Trk::Surface::operator=
Surface & operator=(const Surface &sf)
Definition: Surface.cxx:91
Trk::Surface::m_associatedLayer
const Layer * m_associatedLayer
The associated layer Trk::Layer.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:448
Trk::Surface::owner
SurfaceOwner owner() const
return ownership
Trk::Surface::isOnSurface
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
Definition: Surface.cxx:123
skel.l2
l2
Definition: skel.GENtoEVGEN.py:399
Charged.h
Trk::Surface::m_transforms
std::unique_ptr< Transforms > m_transforms
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:436
ParametersBase.h
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::Surface::uniqueClone
std::unique_ptr< Surface > uniqueClone() const
NVI method returning unique_ptr clone.
Trk::Surface::s_onSurfaceTolerance
static constexpr double s_onSurfaceTolerance
Tolerance for being on Surface.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:458
Trk::Surface::cachedTransform
const Amg::Transform3D * cachedTransform() const
Return the cached transformation directly.
Trk::Surface::Transforms::operator=
Transforms & operator=(Transforms &&)=default
Trk::Surface::createUniqueTrackParameters
virtual ChargedTrackParametersUniquePtr createUniqueTrackParameters(double l1, double l2, double phi, double theat, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from local parameters - charged.
SurfaceCnv_p1
Definition: SurfaceCnv_p1.h:23
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
dumpNswErrorDb.linear
def linear
Definition: dumpNswErrorDb.py:23
CachedUniquePtr.h
Cached unique_ptr with atomic update.
Trk::Surface::normal
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
Trk::Surface::materialLayer
const Trk::Layer * materialLayer() const
return the material Layer
Trk::Surface::createUniqueNeutralParameters
virtual NeutralTrackParametersUniquePtr createUniqueNeutralParameters(double l1, double l2, double phi, double theat, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from local parameters - neutral.
Trk::Surface::m_materialLayer
std::shared_ptr< Layer > m_materialLayer
Possibility to attach a material descrption.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:453
Trk::DetElOwn
@ DetElOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:56
Trk::Surface::inverseTransformHelper
Amg::Transform3D inverseTransformHelper() const
Helper method to factorize in one place common operations calculate inverse transofrm and multiply wi...
Surface.icc
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::TGOwn
@ TGOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:55
Trk::Surface::globalToLocal
std::optional< Amg::Vector2D > globalToLocal(const Amg::Vector3D &glopos, const Amg::Vector3D &glomom) const
This method returns the LocalPosition from a provided GlobalPosition.
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::Surface::localToGlobal
Amg::Vector3D localToGlobal(const LocalParameters &locpars, const Amg::Vector3D &glomom) const
This method returns the GlobalPosition from LocalParameters The LocalParameters can be outside Surfac...
Trk::Surface::bounds
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
Trk::Surface::associateLayer
void associateLayer(const Layer &lay)
method to associate the associated Trk::Layer which is alreay owned
Trk::Surface::Transforms::~Transforms
~Transforms()=default
Transform3D to orient surface w.r.t to global frame.
Trk::Surface::operator=
Surface & operator=(Surface &&sf) noexcept=default
Trk::Surface::Surface
Surface()
Default Constructor for inheriting classes.
charge
double charge(const T &p)
Definition: AtlasPID.h:538
Trk::SurfaceUniquePtrT
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT
Definition: SurfaceUniquePtrT.h:32
Trk::Surface::insideBounds
virtual bool insideBounds(const Amg::Vector2D &locpos, double tol1=0., double tol2=0.) const =0
virtual methods to be overwritten by the inherited surfaces
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
LocalParameters.h
Trk::Surface::m_associatedDetElementId
Identifier m_associatedDetElementId
Identifier for the TrkDetElementBase.
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:442
query_example.col
col
Definition: query_example.py:7
Trk::Surface::straightLineIntersection
virtual Intersection straightLineIntersection(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool forceDir=false, Trk::BoundaryCheck bchk=false) const =0
fast straight line intersection schema - standard: provides closest intersection and (signed) path le...
Trk::Surface::clone
virtual Surface * clone() const =0
Implicit constructor - uses the copy constructor.
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::ConstSurfaceUniquePtr
SurfaceUniquePtrT< const Trk::Surface > ConstSurfaceUniquePtr
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:468
Trk::Surface::isFree
bool isFree() const
Returns 'true' if this surface is 'free', i.e.
Trk::Surface::isActive
bool isActive() const
Return 'true' if this surface is owned by the detector element.
Trk::Surface::localToGlobal
Amg::Vector3D localToGlobal(const Amg::Vector2D &locpos) const
This method returns the GlobalPosition from a LocalPosition uses the per surface localToGlobal.
Trk::Surface::associatedLayer
const Trk::Layer * associatedLayer() const
return the associated Layer
Trk::Surface::dump
virtual MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Definition: Surface.cxx:157
Trk::Surface::globalToLocal
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const =0
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::userOwn
@ userOwn
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:57
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::Surface::straightLineDistanceEstimate
virtual DistanceSolution straightLineDistanceEstimate(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool Bound) const =0
fast straight line distance evaluation to Surface - with bound option
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::Surface::positionOnSurface
std::optional< Amg::Vector2D > positionOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const
positionOnSurface() returns the LocalPosition on the Surface, If BoundaryCheck==false it just return...
Definition: Surface.cxx:106
BoundaryCheck.h
Trk::Surface::onSurface
bool onSurface(const T &parameters, const BoundaryCheck &bchk=BoundaryCheck(true)) const
The templated Parameters OnSurface method - checks on surface pointer first.
Trk::Surface::Transforms::Transforms
Transforms(const Transforms &)=default
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::Surface::localToGlobal
Amg::Vector3D localToGlobal(const Amg::Vector2D &locpos, const Amg::Vector3D &glomom) const
This method returns the GlobalPosition from a LocalPosition The LocalPosition can be outside Surface ...
Trk::SurfaceOwner
SurfaceOwner
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:53
Trk::phi
@ phi
Definition: ParamDefs.h:75
Trk::Surface::Transforms::Transforms
Transforms(Transforms &&)=default
skel.l1
l1
Definition: skel.GENtoEVGEN.py:398
Trk::Surface::Transforms::center
Amg::Vector3D center
normal vector of the surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:119
Trk::x
@ x
Definition: ParamDefs.h:55
Trk::Surface::Transforms
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:84
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Intersection.h
Trk::Surface::type
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
Trk::Surface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const =0
Specified by each surface type: LocalToGlobal method without dynamic memory allocation.
Trk::Surface::Transforms::Transforms
Transforms(const Amg::Transform3D &atransform)
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:86
Trk::Layer
Definition: Layer.h:73
Identifier
Definition: IdentifierFieldParser.cxx:14