ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::MaterialProperties Class Reference

Material with information about thickness of material. More...

#include <MaterialProperties.h>

Collaboration diagram for Trk::MaterialProperties:

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Friends

class ::MaterialPropertiesCnv_p1

Detailed Description

Material with information about thickness of material.

the units are :

  • thickness [mm] ( only used for layer description)
  • X0 [mm]
  • L0 [mm]
  • A [g/mole]
  • Z
  • rho [g/mm3]

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
20 ? averageZ / averageA * averageRho * path
21 : 0.) {}
float averageRho() const
Return the average density of the material.
float averageA() const
Return the average A of the material [gram/mole].
float averageZ() const
Returns the average Z of the material.
float dEdX() const
Return method for .
float m_zOaTrTd
- in ATLAS units
float m_dInX0
thickness in units of radiation length
float m_dInL0
thickness in units of nuclear interaction length

◆ 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
30 ? path * material.Z / material.A * material.rho
31 : 0.) {}
const Material & material() const
Return the stored Material.

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;
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
81 m_material.dEdX = dEdX;
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
74 m_dInX0 = thickness / mat.X0;
75 m_dInL0 = thickness / mat.L0;
76 m_zOaTrTd = mat.Z / mat.A * mat.rho * thickness;
77}
float thickness() const
Return the thickness in mm.

◆ 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 \).

◆ ::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: