ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
Trk::MaterialProperties Class Reference

#include <MaterialProperties.h>

Collaboration diagram for Trk::MaterialProperties:

Public Member Functions

 MaterialProperties ()=default
 Default Constructor. More...
 
 MaterialProperties (const MaterialProperties &mprop)=default
 Copy Constructor. More...
 
MaterialPropertiesoperator= (const MaterialProperties &mprop)=default
 Assignment Operator. More...
 
 MaterialProperties (MaterialProperties &&mprop)=default
 Move Constructor. More...
 
MaterialPropertiesoperator= (MaterialProperties &&mprop)=default
 Move Assignment Operator. More...
 
 ~MaterialProperties ()=default
 Destructor. More...
 
 MaterialProperties (float path, float Xo, float Lo, float averageA, float averageZ, float averageRho, float dEdX=0.)
 Constructor - for averaged material. More...
 
 MaterialProperties (const Material &material, float path)
 Constructor - for full Material class. More...
 
MaterialPropertiesclone () const
 Pseudo-Constructor clone() More...
 
MaterialPropertiesoperator*= (float scale)
 Scale operator - scales the material thickness. More...
 
const Materialmaterial () const
 Return the stored Material. More...
 
Materialmaterial ()
 Return the stored Material. More...
 
float x0 () const
 Return the radiation length. More...
 
float l0 () const
 Return the nuclear interaction length. More...
 
float thickness () const
 Return the thickness in mm. More...
 
float thicknessInX0 () const
 Return the radiationlength fraction. More...
 
float thicknessInL0 () const
 Return the nuclear interaction length fraction. More...
 
float averageZ () const
 Returns the average Z of the material. More...
 
float averageA () const
 Return the average A of the material [gram/mole]. More...
 
float averageRho () const
 Return the average density of the material. More...
 
float zOverAtimesRho () const
 Return the \( Z/A * rho \). More...
 
float zOverAtimesRhoTimesD () const
 Return the \( d* Z/A * rho \). More...
 
float dEdX () const
 Return method for \( dE/dX \). More...
 
void addMaterial (const Material &mp, float dInX0)
 Material averaging. More...
 
void setMaterial (const Material &mp, float thickness=1.)
 Set Material. More...
 

Protected Member Functions

void setDeDx (float dEdX)
 Set dEdX - important for material calibarion. More...
 

Protected Attributes

Material m_material
 
float m_dInX0 = 0
 thickness in units of radiation length More...
 
float m_dInL0 = 0
 thickness in units of nuclear interaction length More...
 
float m_zOaTrTd
 \( \frac{Z}{A}\cdot\rho\cdot d \) - in ATLAS units More...
 

Friends

class ::MaterialPropertiesCnv_p1
 

Detailed Description

Material with information about thickness of material

the units are :

The Trk::MaterialProperties describe material associated with a Trk::Layer

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 40 of file MaterialProperties.h.

Constructor & Destructor Documentation

◆ MaterialProperties() [1/5]

Trk::MaterialProperties::MaterialProperties ( )
default

Default Constructor.

◆ MaterialProperties() [2/5]

Trk::MaterialProperties::MaterialProperties ( const MaterialProperties mprop)
default

Copy Constructor.

◆ MaterialProperties() [3/5]

Trk::MaterialProperties::MaterialProperties ( MaterialProperties &&  mprop)
default

Move Constructor.

◆ ~MaterialProperties()

Trk::MaterialProperties::~MaterialProperties ( )
default

Destructor.

◆ MaterialProperties() [4/5]

Trk::MaterialProperties::MaterialProperties ( float  path,
float  Xo,
float  Lo,
float  averageA,
float  averageZ,
float  averageRho,
float  dEdX = 0. 
)

Constructor - for averaged material.

Definition at line 13 of file MaterialProperties.cxx.

17  m_dInX0(Xo * Xo > 10e-10 ? path / Xo : 0.),
18  m_dInL0(Lo * Lo > 10e-10 ? path / Lo : 0.),
19  m_zOaTrTd(averageA * averageA > 10e-10
21  : 0.) {}

◆ MaterialProperties() [5/5]

Trk::MaterialProperties::MaterialProperties ( const Material material,
float  path 
)

Constructor - for full Material class.

Definition at line 24 of file MaterialProperties.cxx.

27  m_dInX0(material.X0 * material.X0 > 10e-10 ? path / material.X0 : 0.),
28  m_dInL0(material.L0 * material.L0 > 10e-10 ? path / material.L0 : 0.),
29  m_zOaTrTd(material.A * material.A > 10e-10
31  : 0.) {}

Member Function Documentation

◆ addMaterial()

void Trk::MaterialProperties::addMaterial ( const Material mp,
float  dInX0 
)

Material averaging.

<

Todo:
update ?

Definition at line 46 of file MaterialProperties.cxx.

47  {
49  // averaging factors based on thickness
50  float fnew = dInX0 * mat.X0 / (m_dInX0 * m_material.X0 + dInX0 * mat.X0);
51  float fold = 1. - fnew;
52 
53  // updated material thickness
54  m_dInX0 += dInX0;
55 
56  // updated material
57  m_material = Trk::Material(1. / (fnew / mat.X0 + fold / m_material.X0),
58  1. / (fnew / mat.L0 + fold / m_material.L0),
59  fnew * mat.A + fold * m_material.A,
60  fnew * mat.Z + fold * m_material.Z,
61  fnew * mat.rho + fold * m_material.rho);
62 
63  // updated derived members
67  : 0;
68 }

◆ averageA()

float Trk::MaterialProperties::averageA ( ) const

Return the average A of the material [gram/mole].

◆ averageRho()

float Trk::MaterialProperties::averageRho ( ) const

Return the average density of the material.

  • in [g/mm^3]

◆ averageZ()

float Trk::MaterialProperties::averageZ ( ) const

Returns the average Z of the material.

◆ clone()

Trk::MaterialProperties * Trk::MaterialProperties::clone ( ) const

Pseudo-Constructor clone()

Definition at line 33 of file MaterialProperties.cxx.

33  {
34  return new Trk::MaterialProperties(*this);
35 }

◆ dEdX()

float Trk::MaterialProperties::dEdX ( ) const

Return method for \( dE/dX \).

◆ l0()

float Trk::MaterialProperties::l0 ( ) const

Return the nuclear interaction length.

◆ material() [1/2]

Material& Trk::MaterialProperties::material ( )

Return the stored Material.

◆ material() [2/2]

const Material& Trk::MaterialProperties::material ( ) const

Return the stored Material.

◆ operator*=()

Trk::MaterialProperties & Trk::MaterialProperties::operator*= ( float  scale)

Scale operator - scales the material thickness.

Definition at line 37 of file MaterialProperties.cxx.

37  {
38  // assuming rescaling of the material thickness
39  m_dInX0 *= scale;
40  m_dInL0 *= scale;
41  m_zOaTrTd *= scale;
42 
43  return (*this);
44 }

◆ operator=() [1/2]

MaterialProperties& Trk::MaterialProperties::operator= ( const MaterialProperties mprop)
default

Assignment Operator.

◆ operator=() [2/2]

MaterialProperties& Trk::MaterialProperties::operator= ( MaterialProperties &&  mprop)
default

Move Assignment Operator.

◆ setDeDx()

void Trk::MaterialProperties::setDeDx ( float  dEdX)
protected

Set dEdX - important for material calibarion.

Definition at line 79 of file MaterialProperties.cxx.

79  {
80  // set the DE/DX value
82 }

◆ setMaterial()

void Trk::MaterialProperties::setMaterial ( const Material mp,
float  thickness = 1. 
)

Set Material.

Definition at line 70 of file MaterialProperties.cxx.

71  {
72  // just overwrite what you have
73  m_material = mat;
74  m_dInX0 = thickness / mat.X0;
75  m_dInL0 = thickness / mat.L0;
76  m_zOaTrTd = mat.Z / mat.A * mat.rho * thickness;
77 }

◆ thickness()

float Trk::MaterialProperties::thickness ( ) const

Return the thickness in mm.

◆ thicknessInL0()

float Trk::MaterialProperties::thicknessInL0 ( ) const

Return the nuclear interaction length fraction.

◆ thicknessInX0()

float Trk::MaterialProperties::thicknessInX0 ( ) const

Return the radiationlength fraction.

◆ x0()

float Trk::MaterialProperties::x0 ( ) const

Return the radiation length.

◆ zOverAtimesRho()

float Trk::MaterialProperties::zOverAtimesRho ( ) const

Return the \( Z/A * rho \).

◆ zOverAtimesRhoTimesD()

float Trk::MaterialProperties::zOverAtimesRhoTimesD ( ) const

Return the \( d* Z/A * rho \).

Friends And Related Function Documentation

◆ ::MaterialPropertiesCnv_p1

friend class ::MaterialPropertiesCnv_p1
friend

Definition at line 116 of file MaterialProperties.h.

Member Data Documentation

◆ m_dInL0

float Trk::MaterialProperties::m_dInL0 = 0
protected

thickness in units of nuclear interaction length

Definition at line 123 of file MaterialProperties.h.

◆ m_dInX0

float Trk::MaterialProperties::m_dInX0 = 0
protected

thickness in units of radiation length

Definition at line 122 of file MaterialProperties.h.

◆ m_material

Material Trk::MaterialProperties::m_material
protected

Definition at line 121 of file MaterialProperties.h.

◆ m_zOaTrTd

float Trk::MaterialProperties::m_zOaTrTd
protected
Initial value:
=
0

\( \frac{Z}{A}\cdot\rho\cdot d \) - in ATLAS units

Definition at line 124 of file MaterialProperties.h.


The documentation for this class was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::MaterialProperties::m_material
Material m_material
Definition: MaterialProperties.h:121
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::Material::L0
float L0
Definition: Material.h:120
Trk::Material::Z
float Z
Definition: Material.h:122
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
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::material
const Material & material() const
Return the stored Material.
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
Trk::MaterialProperties::thickness
float thickness() const
Return the thickness in mm.
Trk::Material::A
float A
Definition: Material.h:121
Trk::MaterialProperties::m_zOaTrTd
float m_zOaTrTd
- in ATLAS units
Definition: MaterialProperties.h:124
Trk::Material::X0
float X0
Definition: Material.h:119
Trk::MaterialProperties::dEdX
float dEdX() const
Return method for .
Trk::Material::rho
float rho
Definition: Material.h:123
Trk::MaterialProperties
Definition: MaterialProperties.h:40
Trk::MaterialProperties::averageZ
float averageZ() const
Returns the average Z of the material.
Trk::Material::dEdX
float dEdX
Definition: Material.h:124
Material
@ Material
Definition: MaterialTypes.h:8