ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
TrkGeometry
HomogeneousLayerMaterial.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
// HomogeneousLayerMaterial.h, (c) ATLAS Detector software
8
9
#ifndef TRKGEOMETY_HOMOGENOUSLAYERMATERIAL_H
10
#define TRKGEOMETY_HOMOGENOUSLAYERMATERIAL_H
11
12
// Amg
13
#include "
GeoPrimitives/GeoPrimitives.h
"
14
// Trk
15
#include "
TrkGeometry/LayerMaterialProperties.h
"
16
#include "
TrkGeometry/MaterialProperties.h
"
17
// Gaudi
18
#include "GaudiKernel/MsgStream.h"
19
// STD
20
#include <memory>
21
#include <vector>
22
23
class
HomogeneousLayerMaterialCnv_p1
;
24
25
namespace
Trk
{
26
27
class
BinUtility
;
52
53
class
HomogeneousLayerMaterial
final:
public
LayerMaterialProperties
{
54
public
:
56
HomogeneousLayerMaterial
();
57
60
HomogeneousLayerMaterial
(
const
MaterialProperties
& full,
double
splitFactor);
61
63
HomogeneousLayerMaterial
(
const
HomogeneousLayerMaterial
& mprop);
64
66
virtual
~HomogeneousLayerMaterial
()
override
;
67
69
virtual
HomogeneousLayerMaterial
*
clone
()
const override
;
70
72
HomogeneousLayerMaterial
&
operator=
(
const
HomogeneousLayerMaterial
& lmp);
73
75
HomogeneousLayerMaterial
(
Trk::HomogeneousLayerMaterial
&& lmp) =
default
;
76
78
HomogeneousLayerMaterial
&
operator=
(
Trk::HomogeneousLayerMaterial
&& lmp) =
79
default
;
80
82
virtual
HomogeneousLayerMaterial
&
operator*=
(
double
scale)
override
;
83
85
virtual
const
MaterialProperties
*
fullMaterial
(
86
const
Amg::Vector3D
& gp)
const override
;
87
89
virtual
const
MaterialProperties
*
material
(
size_t
ib0,
90
size_t
ib1)
const override
;
91
93
virtual
const
BinUtility
*
binUtility
()
const override
{
return
nullptr
; }
94
97
virtual
void
updateBinning
(
BinUtility
*)
override
{}
98
100
virtual
MsgStream&
dump
(MsgStream& sl)
const override
;
102
virtual
std::ostream&
dump
(std::ostream& sl)
const override
;
103
104
private
:
105
friend
class ::HomogeneousLayerMaterialCnv_p1;
106
108
std::unique_ptr<MaterialProperties>
m_fullMaterial
;
109
};
110
111
inline
HomogeneousLayerMaterial
*
HomogeneousLayerMaterial::clone
()
const
{
112
return
new
HomogeneousLayerMaterial
(*
this
);
113
}
114
115
inline
const
MaterialProperties
*
HomogeneousLayerMaterial::fullMaterial
(
116
const
Amg::Vector3D
&)
const
{
117
return
m_fullMaterial
.get();
118
}
119
120
inline
const
MaterialProperties
*
HomogeneousLayerMaterial::material
(
121
size_t
,
size_t
)
const
{
122
return
m_fullMaterial
.get();
123
}
124
125
}
// namespace Trk
126
127
#endif
128
GeoPrimitives.h
LayerMaterialProperties.h
MaterialProperties.h
HomogeneousLayerMaterialCnv_p1
Definition
HomogeneousLayerMaterialCnv_p1.h:24
Trk::BinUtility
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition
BinUtility.h:39
Trk::HomogeneousLayerMaterial
It extends the LayerMaterialProperties base class.
Definition
HomogeneousLayerMaterial.h:53
Trk::HomogeneousLayerMaterial::fullMaterial
virtual const MaterialProperties * fullMaterial(const Amg::Vector3D &gp) const override
Return method for full material description of the Layer.
Definition
HomogeneousLayerMaterial.h:115
Trk::HomogeneousLayerMaterial::~HomogeneousLayerMaterial
virtual ~HomogeneousLayerMaterial() override
Destructor.
Trk::HomogeneousLayerMaterial::binUtility
virtual const BinUtility * binUtility() const override
Return the BinUtility.
Definition
HomogeneousLayerMaterial.h:93
Trk::HomogeneousLayerMaterial::material
virtual const MaterialProperties * material(size_t ib0, size_t ib1) const override
Direct access via bins to the MaterialProperties.
Definition
HomogeneousLayerMaterial.h:120
Trk::HomogeneousLayerMaterial::operator=
HomogeneousLayerMaterial & operator=(const HomogeneousLayerMaterial &lmp)
Assignment operator.
Definition
HomogeneousLayerMaterial.cxx:28
Trk::HomogeneousLayerMaterial::operator*=
virtual HomogeneousLayerMaterial & operator*=(double scale) override
Scale operator.
Definition
HomogeneousLayerMaterial.cxx:39
Trk::HomogeneousLayerMaterial::HomogeneousLayerMaterial
HomogeneousLayerMaterial(Trk::HomogeneousLayerMaterial &&lmp)=default
Default move constructor.
Trk::HomogeneousLayerMaterial::m_fullMaterial
std::unique_ptr< MaterialProperties > m_fullMaterial
The five different MaterialProperties.
Definition
HomogeneousLayerMaterial.h:108
Trk::HomogeneousLayerMaterial::updateBinning
virtual void updateBinning(BinUtility *) override
Update the BinUtility if necessary - passing ownership of the utility class.
Definition
HomogeneousLayerMaterial.h:97
Trk::HomogeneousLayerMaterial::operator=
HomogeneousLayerMaterial & operator=(Trk::HomogeneousLayerMaterial &&lmp)=default
Default move assignment operator.
Trk::HomogeneousLayerMaterial::clone
virtual HomogeneousLayerMaterial * clone() const override
Pseudo-Constructor clone().
Definition
HomogeneousLayerMaterial.h:111
Trk::HomogeneousLayerMaterial::HomogeneousLayerMaterial
HomogeneousLayerMaterial()
Default Constructor - creates empty HomogeneousLayerMaterial.
Definition
HomogeneousLayerMaterial.cxx:13
Trk::LayerMaterialProperties::LayerMaterialProperties
LayerMaterialProperties()=default
Constructor.
Trk::MaterialProperties
Material with information about thickness of material.
Definition
MaterialProperties.h:40
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
dump
-event-from-file
Generated on
for ATLAS Offline Software by
1.17.0