ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
src
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
12
#include "
TrkGeometry/LayerMaterialProperties.h
"
13
#include "
TrkGeometry/MaterialProperties.h
"
14
#include "
TrkParameters/TrackParameters.h
"
15
// CLHEP
16
#include "
GeoPrimitives/GeoPrimitives.h
"
17
18
Trk::PlaneLayer::PlaneLayer
(
19
const
Amg::Transform3D
&
transform
,
20
std::shared_ptr<const 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
28
Trk::PlaneLayer::PlaneLayer
(
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
39
Trk::PlaneLayer::PlaneLayer
(
const
Trk::PlaneLayer
& play,
40
const
Amg::Transform3D
& transf)
41
:
PlaneSurface
(play, transf),
Layer
(play) {}
42
43
Trk::PlaneLayer
&
Trk::PlaneLayer::operator=
(
const
PlaneLayer
& play) {
44
if
(
this
!= &play) {
45
// call the assignments of the base classes
46
Trk::PlaneSurface::operator=
(play);
47
Trk::Layer::operator=
(play);
48
m_index
= play.
m_index
;
49
}
50
return
(*
this
);
51
}
52
53
const
Trk::PlaneSurface
&
54
Trk::PlaneLayer::surfaceRepresentation
()
const
55
{
56
return
(*
this
);
57
}
58
Trk::PlaneSurface
&
59
Trk::PlaneLayer::surfaceRepresentation
()
60
{
61
return
(*
this
);
62
}
63
64
double
Trk::PlaneLayer::preUpdateMaterialFactor
(
65
const
Trk::TrackParameters
& parm,
Trk::PropDirection
dir)
const
{
66
if
(!
Trk::Layer::m_layerMaterialProperties
)
return
0.;
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
72
double
Trk::PlaneLayer::postUpdateMaterialFactor
(
73
const
Trk::TrackParameters
& parm,
Trk::PropDirection
dir)
const
{
74
if
(!
Trk::Layer::m_layerMaterialProperties
)
return
0.;
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
80
void
Trk::PlaneLayer::moveLayer
(
Amg::Transform3D
& shift) {
81
m_transforms
=
82
std::make_unique<Transforms>(shift * (
m_transforms
->transform));
83
}
84
GeoPrimitives.h
LayerMaterialProperties.h
MaterialProperties.h
PlaneLayer.h
TrackParameters.h
Trk::LayerMaterialProperties
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Definition
LayerMaterialProperties.h:64
Trk::Layer::Layer
Layer()=default
Default Constructor.
Trk::Layer::m_index
LayerIndex m_index
LayerIndex.
Definition
Layer.h:306
Trk::Layer::thickness
double thickness() const
Return the Thickness of the Layer.
Trk::Layer::operator=
Layer & operator=(const Layer &lay)
Assignment operator for Derived classes.
Definition
Layer.cxx:84
Trk::Layer::m_layerMaterialProperties
std::unique_ptr< LayerMaterialProperties > m_layerMaterialProperties
thickness of the Layer
Definition
Layer.h:288
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::PlaneLayer
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
Definition
PlaneLayer.h:40
Trk::PlaneLayer::surfaceRepresentation
virtual const PlaneSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition
PlaneLayer.cxx:54
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::PlaneLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
Definition
PlaneLayer.cxx:80
Trk::PlaneLayer::operator=
PlaneLayer & operator=(const PlaneLayer &)
Assignment operator for PlaneLayers.
Definition
PlaneLayer.cxx:43
Trk::PlaneLayer::PlaneLayer
PlaneLayer()
Default Constructor.
Definition
PlaneLayer.h:43
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
Trk::PlaneSurface
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
Definition
PlaneSurface.h:64
Trk::PlaneSurface::operator=
PlaneSurface & operator=(const PlaneSurface &psf)=default
Assignment operator.
Trk::PlaneSurface::PlaneSurface
PlaneSurface()
Default Constructor - needed for persistency.
Definition
PlaneSurface.cxx:36
Trk::Surface::normal
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
Trk::Surface::transform
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Trk::Surface::m_transforms
std::unique_ptr< Transforms > m_transforms
Unique Pointer to the Transforms struct.
Definition
Surface.h:439
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition
GeoPrimitives.h:46
Trk::PropDirection
PropDirection
PropDirection, enum for direction of the propagation.
Definition
PropDirection.h:19
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
dot
Definition
dot.py:1
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0