ATLAS Offline Software
MaterialProperties.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 // MaterialProperties.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_MATERIALPROPERTIES_H
10 #define TRKGEOMETRY_MATERIALPROPERTIES_H
11 
12 #include "GaudiKernel/MsgStream.h"
13 #include "TrkGeometry/Material.h"
14 // STD
15 #include <iosfwd>
16 
18 
19 namespace Trk {
20 
41  public:
43  MaterialProperties() = default;
45  MaterialProperties(const MaterialProperties& mprop) = default;
53  ~MaterialProperties() = default;
54 
56  MaterialProperties(float path, float Xo, float Lo, float averageA,
57  float averageZ, float averageRho, float dEdX = 0.);
58 
61 
63  MaterialProperties* clone() const;
64 
67 
69  const Material& material() const;
70 
73 
75  float x0() const;
76 
78  float l0() const;
79 
81  float thickness() const;
82 
84  float thicknessInX0() const;
85 
87  float thicknessInL0() const;
88 
90  float averageZ() const;
91 
93  float averageA() const;
94 
98  float averageRho() const;
99 
101  float zOverAtimesRho() const;
102 
104  float zOverAtimesRhoTimesD() const;
105 
107  float dEdX() const;
108 
110  void addMaterial(const Material& mp, float dInX0);
111 
113  void setMaterial(const Material& mp, float thickness = 1.);
114 
115  protected:
116  friend class ::MaterialPropertiesCnv_p1;
117 
119  void setDeDx(float dEdX);
120 
122  float m_dInX0 = 0;
123  float m_dInL0 = 0;
124  float m_zOaTrTd =
125  0;
126 };
129 MsgStream& operator<<(MsgStream& sl, const MaterialProperties& mprop);
130 std::ostream& operator<<(std::ostream& sl, const MaterialProperties& mprop);
131 
133 typedef std::vector<const MaterialProperties*> MaterialPropertiesVector;
134 typedef std::vector<MaterialPropertiesVector> MaterialPropertiesMatrix;
135 
136 } // namespace Trk
137 
139 #endif // TRKGEOMETRY_MATERIALPROPERTIES_H
140 
MaterialPropertiesCnv_p1
Definition: MaterialPropertiesCnv_p1.h:21
Trk::MaterialProperties::m_material
Material m_material
Definition: MaterialProperties.h:121
Trk::MaterialProperties::setMaterial
void setMaterial(const Material &mp, float thickness=1.)
Set Material.
Definition: MaterialProperties.cxx:70
Trk::MaterialProperties::m_dInL0
float m_dInL0
thickness in units of nuclear interaction length
Definition: MaterialProperties.h:123
Trk::MaterialProperties::averageA
float averageA() const
Return the average A of the material [gram/mole].
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:128
Trk::MaterialProperties::material
Material & material()
Return the stored Material.
Trk::MaterialProperties::thicknessInX0
float thicknessInX0() const
Return the radiationlength fraction.
Trk::MaterialProperties::m_dInX0
float m_dInX0
thickness in units of radiation length
Definition: MaterialProperties.h:122
Trk::MaterialProperties::averageRho
float averageRho() const
Return the average density of the material.
Trk::MaterialProperties::thicknessInL0
float thicknessInL0() const
Return the nuclear interaction length fraction.
Trk::MaterialProperties::x0
float x0() const
Return the radiation length.
Trk::MaterialProperties::material
const Material & material() const
Return the stored Material.
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
Trk::MaterialProperties::setDeDx
void setDeDx(float dEdX)
Set dEdX - important for material calibarion.
Definition: MaterialProperties.cxx:79
Trk::MaterialProperties::MaterialProperties
MaterialProperties()=default
Default Constructor.
Trk::MaterialPropertiesVector
std::vector< const MaterialProperties * > MaterialPropertiesVector
Useful typedefs.
Definition: MaterialProperties.h:133
Trk::MaterialProperties::thickness
float thickness() const
Return the thickness in mm.
Trk::MaterialProperties::operator=
MaterialProperties & operator=(const MaterialProperties &mprop)=default
Assignment Operator.
Trk::MaterialProperties::addMaterial
void addMaterial(const Material &mp, float dInX0)
Material averaging.
Definition: MaterialProperties.cxx:46
Trk::MaterialProperties::~MaterialProperties
~MaterialProperties()=default
Destructor.
Trk::MaterialProperties::clone
MaterialProperties * clone() const
Pseudo-Constructor clone()
Definition: MaterialProperties.cxx:33
Trk::MaterialProperties::m_zOaTrTd
float m_zOaTrTd
- in ATLAS units
Definition: MaterialProperties.h:124
Trk::MaterialProperties::operator=
MaterialProperties & operator=(MaterialProperties &&mprop)=default
Move Assignment Operator.
Trk::MaterialProperties::MaterialProperties
MaterialProperties(const MaterialProperties &mprop)=default
Copy Constructor.
Trk::MaterialProperties::dEdX
float dEdX() const
Return method for .
Trk::MaterialProperties::operator*=
MaterialProperties & operator*=(float scale)
Scale operator - scales the material thickness.
Definition: MaterialProperties.cxx:37
Trk::MaterialProperties::zOverAtimesRhoTimesD
float zOverAtimesRhoTimesD() const
Return the .
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::MaterialPropertiesMatrix
std::vector< std::vector< const MaterialProperties * > > MaterialPropertiesMatrix
Definition: ILayerMaterialAnalyser.h:23
Trk::MaterialProperties
Definition: MaterialProperties.h:40
MaterialProperties.icc
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition: AlignModule.cxx:204
Trk::MaterialProperties::averageZ
float averageZ() const
Returns the average Z of the material.
Trk::MaterialProperties::MaterialProperties
MaterialProperties(MaterialProperties &&mprop)=default
Move Constructor.
Trk::MaterialProperties::zOverAtimesRho
float zOverAtimesRho() const
Return the .
Trk::Material
Definition: Material.h:116
Trk::MaterialProperties::l0
float l0() const
Return the nuclear interaction length.
Material.h