Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PlaneLayer.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // PlaneLayer.cxx, (c) ATLAS Detector software
8 
9 // Trk
10 #include "TrkGeometry/PlaneLayer.h"
11 
15 // CLHEP
17 
20  std::shared_ptr<Trk::SurfaceBounds> tbounds,
21  const Trk::LayerMaterialProperties& laymatprop,
22  double thickness,
23  std::unique_ptr<Trk::OverlapDescriptor> olap,
24  int laytyp)
25  : PlaneSurface(transform, std::move(tbounds)),
26  Layer(laymatprop, thickness, std::move(olap), laytyp) {}
27 
29  Trk::PlaneSurface* plane,
30  const Trk::LayerMaterialProperties& laymatprop,
31  double thickness,
32  std::unique_ptr<Trk::OverlapDescriptor> olap,
33  int laytyp)
34  : PlaneSurface(*plane), Layer(laymatprop, thickness, std::move(olap), laytyp) {}
35 
36 
37 Trk::PlaneLayer::PlaneLayer(const Trk::PlaneLayer& play) = default;
38 
40  const Amg::Transform3D& transf)
41  : PlaneSurface(play, transf), Layer(play) {}
42 
44  if (this != &play) {
45  // call the assignments of the base classes
48  m_index = play.m_index;
49  }
50  return (*this);
51 }
52 
53 const Trk::PlaneSurface&
55 {
56  return (*this);
57 }
60 {
61  return (*this);
62 }
63 
65  const Trk::TrackParameters& parm, Trk::PropDirection dir) const {
67  if (Trk::PlaneSurface::normal().dot(dir * parm.momentum().normalized()) > 0.)
68  return Trk::Layer::m_layerMaterialProperties->alongPreFactor();
69  return Trk::Layer::m_layerMaterialProperties->oppositePreFactor();
70 }
71 
73  const Trk::TrackParameters& parm, Trk::PropDirection dir) const {
75  if (Trk::PlaneSurface::normal().dot(dir * parm.momentum().normalized()) > 0.)
76  return Trk::Layer::m_layerMaterialProperties->alongPostFactor();
77  return Trk::Layer::m_layerMaterialProperties->oppositePostFactor();
78 }
79 
81  m_transforms =
82  std::make_unique<Transforms>(shift * (m_transforms->transform));
83 }
84 
TrackParameters.h
Trk::PlaneLayer::surfaceRepresentation
virtual const PlaneSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition: PlaneLayer.cxx:54
MaterialProperties.h
Trk::Layer::m_layerMaterialProperties
std::unique_ptr< LayerMaterialProperties > m_layerMaterialProperties
thickness of the Layer
Definition: Layer.h:289
Trk::PlaneLayer::preUpdateMaterialFactor
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Definition: PlaneLayer.cxx:64
GeoPrimitives.h
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::LayerMaterialProperties
Definition: LayerMaterialProperties.h:62
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
Trk::PlaneLayer
Definition: PlaneLayer.h:40
Trk::Layer::operator=
Layer & operator=(const Layer &lay)
Assignment operator for Derived classes.
Definition: Layer.cxx:98
Trk::Surface::normal
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
Trk::PlaneSurface::operator=
PlaneSurface & operator=(const PlaneSurface &psf)=default
Assignment operator.
Trk::PlaneLayer::postUpdateMaterialFactor
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
Definition: PlaneLayer.cxx:72
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::PlaneLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Definition: PlaneLayer.cxx:80
dot.dot
def dot(G, fn, nodesToHighlight=[])
Definition: dot.py:5
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::PlaneLayer::PlaneLayer
PlaneLayer()
Default Constructor.
Definition: PlaneLayer.h:43
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::PlaneSurface
Definition: PlaneSurface.h:64
Trk::Layer::m_index
LayerIndex m_index
LayerIndex.
Definition: Layer.h:307
LayerMaterialProperties.h
Trk::PlaneLayer::operator=
PlaneLayer & operator=(const PlaneLayer &)
Assignment operator for PlaneLayers.
Definition: PlaneLayer.cxx:43
PlaneLayer.h
Trk::Layer
Definition: Layer.h:73