ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
TrkGeometry
BinnedMaterial.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Material.h, (c) ATLAS Detector software
8
9
#ifndef TRKGEOMETRY_BINNEDMATERIAL_H
10
#define TRKGEOMETRY_BINNEDMATERIAL_H
11
12
#include "
TrkDetDescrUtils/CompactBinnedArray.h
"
13
#include "
TrkDetDescrUtils/CompactBinnedArray1D.h
"
14
#include "
TrkDetDescrUtils/CompactBinnedArray2D.h
"
15
#include "
TrkGeometry/Material.h
"
16
17
#include <memory>
18
#include <vector>
19
20
21
namespace
Trk
{
22
23
typedef
std::pair<std::shared_ptr<Material>,
int
>
IdentifiedMaterial
;
24
25
class
BinUtility
;
26
31
class
BinnedMaterial
final:
public
Material
{
32
public
:
33
using
binsPtr_t
= std::unique_ptr<const CompactBinnedArray<const IdentifiedMaterial> >;
34
36
BinnedMaterial
() =
default
;
37
BinnedMaterial
&
operator=
(
BinnedMaterial
&&) =
default
;
38
BinnedMaterial
(
BinnedMaterial
&&) =
default
;
39
virtual
~BinnedMaterial
() =
default
;
40
41
//These can not be defaulted due to unique_ptr.
42
BinnedMaterial
(
const
BinnedMaterial
& amc);
43
BinnedMaterial
&
operator=
(
const
BinnedMaterial
& amc);
44
46
BinnedMaterial
(
const
Material
& mat,
const
BinUtility
& bu,
47
const
std::vector<size_t>&
index
,
48
const
std::vector<IdentifiedMaterial>& detailedMat);
49
51
BinnedMaterial
(
const
Material
& mat,
const
BinUtility
& bu,
52
const
std::vector<Trk::BinUtility>& bVec,
53
const
std::vector<std::vector<size_t> >&
index
,
54
const
std::vector<IdentifiedMaterial>& detailedMat);
55
56
58
const
Trk::BinUtility
*
layerBinUtility
(
const
Amg::Vector3D
&
position
)
const
;
59
61
size_t
layerBin
(
const
Amg::Vector3D
&
position
)
const
;
62
64
const
IdentifiedMaterial
*
material
(
const
Amg::Vector3D
&
position
)
const
;
65
const
IdentifiedMaterial
*
materialNext
(
const
Amg::Vector3D
& pos,
66
const
Amg::Vector3D
& dir,
67
bool
layOnly)
const
;
68
69
private
:
70
//utility to return pointers to the elements of m_matVec
71
std::vector<const Trk::IdentifiedMaterial*>
ptrs
()
const
;
72
73
//The vector that actual owns the IdentifiedMaterial elements
74
std::vector<IdentifiedMaterial>
m_matVec
;
75
// Binned arrays of IdentifiedMaterial elements
76
binsPtr_t
m_matBins
;
77
};
78
}
// namespace Trk
79
80
inline
const
Trk::BinUtility
*
Trk::BinnedMaterial::layerBinUtility
(
81
const
Amg::Vector3D
&
position
)
const
{
82
return
m_matBins
?
m_matBins
->layerBinUtility(
position
) :
nullptr
;
83
}
84
85
inline
size_t
Trk::BinnedMaterial::layerBin
(
86
const
Amg::Vector3D
&
position
)
const
{
87
return
m_matBins
?
m_matBins
->layerBin(
position
) : 0;
88
}
89
90
#endif
CompactBinnedArray1D.h
CompactBinnedArray2D.h
CompactBinnedArray.h
Material.h
Trk::BinUtility
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition
BinUtility.h:39
Trk::BinnedMaterial::binsPtr_t
std::unique_ptr< const CompactBinnedArray< const IdentifiedMaterial > > binsPtr_t
Definition
BinnedMaterial.h:33
Trk::BinnedMaterial::materialNext
const IdentifiedMaterial * materialNext(const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool layOnly) const
access to binned material
Definition
BinnedMaterial.cxx:66
Trk::BinnedMaterial::operator=
BinnedMaterial & operator=(BinnedMaterial &&)=default
Trk::BinnedMaterial::BinnedMaterial
BinnedMaterial()=default
Default Constructors.
Trk::BinnedMaterial::ptrs
std::vector< const Trk::IdentifiedMaterial * > ptrs() const
Definition
BinnedMaterial.cxx:75
Trk::BinnedMaterial::material
const IdentifiedMaterial * material(const Amg::Vector3D &position) const
access to material/id per bin
Definition
BinnedMaterial.cxx:58
Trk::BinnedMaterial::m_matVec
std::vector< IdentifiedMaterial > m_matVec
Definition
BinnedMaterial.h:74
Trk::BinnedMaterial::BinnedMaterial
BinnedMaterial(BinnedMaterial &&)=default
Trk::BinnedMaterial::m_matBins
binsPtr_t m_matBins
Definition
BinnedMaterial.h:76
Trk::BinnedMaterial::layerBin
size_t layerBin(const Amg::Vector3D &position) const
layer bin
Definition
BinnedMaterial.h:85
Trk::BinnedMaterial::~BinnedMaterial
virtual ~BinnedMaterial()=default
Trk::BinnedMaterial::layerBinUtility
const Trk::BinUtility * layerBinUtility(const Amg::Vector3D &position) const
access to layer bin utility
Definition
BinnedMaterial.h:80
Trk::Material::Material
Material()
Default Constructor needed for POOL.
Definition
Material.h:130
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::IdentifiedMaterial
std::pair< std::shared_ptr< Material >, int > IdentifiedMaterial
Definition
BinnedMaterial.h:23
Trk::position
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
index
Definition
index.py:1
Generated on
for ATLAS Offline Software by
1.17.0