ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
TrkGeometry
BinnedLayerMaterial.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// BinnedLayerMaterial.h, (c) ATLAS Detector software
8
9
#ifndef TRKGEOMETRY_BINNEDLAYERMATERIAL_H
10
#define TRKGEOMETRY_BINNEDLAYERMATERIAL_H
11
12
//Trk
13
#include "
TrkGeometry/LayerMaterialProperties.h
"
14
#include "
TrkGeometry/MaterialProperties.h
"
15
#include "
GeoPrimitives/GeoPrimitives.h
"
16
#include "
TrkDetDescrUtils/BinUtility.h
"
17
18
#include <iosfwd>
19
//Gaudi
20
class
MsgStream;
21
class
BinnedLayerMaterialCnv_p1
;
22
23
namespace
Trk
{
24
25
33
34
class
BinnedLayerMaterial
:
public
LayerMaterialProperties
{
35
36
public
:
38
BinnedLayerMaterial
();
39
41
BinnedLayerMaterial
(
BinUtility
& binutility);
42
52
BinnedLayerMaterial
(
const
Trk::BinUtility
& binutility,
53
const
MaterialPropertiesVector
& fullProperties,
54
double
splitFactor=0.);
55
65
BinnedLayerMaterial
(
const
Trk::BinUtility
& binutility,
66
const
MaterialPropertiesMatrix
& fullProperties,
67
double
splitFactor=0.);
68
70
BinnedLayerMaterial
(
const
BinnedLayerMaterial
& mprop);
71
73
virtual
~BinnedLayerMaterial
()
override
;
74
76
virtual
BinnedLayerMaterial
*
clone
()
const override
;
77
79
BinnedLayerMaterial
&
operator=
(
const
BinnedLayerMaterial
& lmp);
80
BinnedLayerMaterial
&
operator=
(
BinnedLayerMaterial
&& lmp)
noexcept
;
81
83
virtual
BinnedLayerMaterial
&
operator*=
(
double
scale)
override
;
84
86
virtual
const
BinUtility
*
binUtility
()
const override
;
87
89
virtual
void
updateBinning
(
BinUtility
* bu)
override
;
90
92
const
MaterialPropertiesMatrix
&
fullMaterial
()
const
;
93
95
virtual
const
MaterialProperties
*
fullMaterial
(
const
Amg::Vector3D
& gp)
const override
;
96
98
virtual
const
MaterialProperties
*
material
(
size_t
bin0,
size_t
bin1 )
const override
;
99
101
virtual
MsgStream&
dump
(MsgStream& sl)
const override
;
102
104
virtual
std::ostream&
dump
(std::ostream& sl)
const override
;
105
106
private
:
107
friend
class ::BinnedLayerMaterialCnv_p1;
108
109
BinUtility
*
m_binUtility
{};
110
112
MaterialPropertiesMatrix
m_fullMaterial
;
113
115
void
clearMaterial
();
116
118
void
fillMaterial
(
const
MaterialPropertiesMatrix
& matMatrix);
119
120
};
121
122
123
inline
const
BinUtility
*
BinnedLayerMaterial::binUtility
()
const
124
{
return
m_binUtility
; }
125
126
inline
const
MaterialPropertiesMatrix
&
BinnedLayerMaterial::fullMaterial
()
const
127
{
return
m_fullMaterial
; }
128
129
inline
const
MaterialProperties
*
BinnedLayerMaterial::material
(
size_t
bin0,
size_t
bin1 )
const
130
{
131
return
m_fullMaterial
[bin1][bin0];
132
}
133
134
inline
void
BinnedLayerMaterial::updateBinning
(
BinUtility
* bu){
135
if
(bu){
136
delete
m_binUtility
;
137
m_binUtility
= bu;
138
}
139
}
140
141
142
}
143
144
#endif
BinUtility.h
GeoPrimitives.h
LayerMaterialProperties.h
MaterialProperties.h
BinnedLayerMaterialCnv_p1
Definition
BinnedLayerMaterialCnv_p1.h:23
Trk::BinUtility
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition
BinUtility.h:39
Trk::BinnedLayerMaterial::operator=
BinnedLayerMaterial & operator=(const BinnedLayerMaterial &lmp)
Assignment operator.
Definition
BinnedLayerMaterial.cxx:68
Trk::BinnedLayerMaterial::~BinnedLayerMaterial
virtual ~BinnedLayerMaterial() override
Destructor.
Definition
BinnedLayerMaterial.cxx:53
Trk::BinnedLayerMaterial::material
virtual const MaterialProperties * material(size_t bin0, size_t bin1) const override
Access the single bin.
Definition
BinnedLayerMaterial.h:129
Trk::BinnedLayerMaterial::fillMaterial
void fillMaterial(const MaterialPropertiesMatrix &matMatrix)
helper method - to refill the material
Definition
BinnedLayerMaterial.cxx:111
Trk::BinnedLayerMaterial::clone
virtual BinnedLayerMaterial * clone() const override
Pseudo-Constructor clone().
Definition
BinnedLayerMaterial.cxx:98
Trk::BinnedLayerMaterial::binUtility
virtual const BinUtility * binUtility() const override
Return the BinUtility.
Definition
BinnedLayerMaterial.h:123
Trk::BinnedLayerMaterial::clearMaterial
void clearMaterial()
helper method - to clear the material
Definition
BinnedLayerMaterial.cxx:102
Trk::BinnedLayerMaterial::m_fullMaterial
MaterialPropertiesMatrix m_fullMaterial
The five different MaterialProperties.
Definition
BinnedLayerMaterial.h:112
Trk::BinnedLayerMaterial::operator*=
virtual BinnedLayerMaterial & operator*=(double scale) override
Scale operator.
Definition
BinnedLayerMaterial.cxx:125
Trk::BinnedLayerMaterial::updateBinning
virtual void updateBinning(BinUtility *bu) override
Update the BinUtility if necessary - passing ownership of the utility class.
Definition
BinnedLayerMaterial.h:134
Trk::BinnedLayerMaterial::fullMaterial
const MaterialPropertiesMatrix & fullMaterial() const
Return method for full material description of the Layer - for all bins.
Definition
BinnedLayerMaterial.h:126
Trk::BinnedLayerMaterial::m_binUtility
BinUtility * m_binUtility
the helper for the bin finding
Definition
BinnedLayerMaterial.h:109
Trk::BinnedLayerMaterial::BinnedLayerMaterial
BinnedLayerMaterial()
Default Constructor - needed by POOL.
Definition
BinnedLayerMaterial.cxx:16
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
Trk::MaterialPropertiesVector
std::vector< const MaterialProperties * > MaterialPropertiesVector
Useful typedefs.
Definition
MaterialProperties.h:133
Trk::MaterialPropertiesMatrix
std::vector< std::vector< const MaterialProperties * > > MaterialPropertiesMatrix
Definition
ILayerMaterialAnalyser.h:25
dump
-event-from-file
Generated on
for ATLAS Offline Software by
1.17.0