ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Trk::BinnedMaterial Class Referencefinal

#include <BinnedMaterial.h>

Inheritance diagram for Trk::BinnedMaterial:
Collaboration diagram for Trk::BinnedMaterial:

Public Types

using binsPtr_t = std::unique_ptr< const CompactBinnedArray< const IdentifiedMaterial > >
 

Public Member Functions

 BinnedMaterial ()=default
 Default Constructors. More...
 
BinnedMaterialoperator= (BinnedMaterial &&)=default
 
 BinnedMaterial (BinnedMaterial &&)=default
 
virtual ~BinnedMaterial ()=default
 
 BinnedMaterial (const BinnedMaterial &amc)
 
BinnedMaterialoperator= (const BinnedMaterial &amc)
 Assignment operator. More...
 
 BinnedMaterial (const Material &mat, const BinUtility &bu, const std::vector< size_t > &index, const std::vector< IdentifiedMaterial > &detailedMat)
 Constructor with averaged material and binning in 1D. More...
 
 BinnedMaterial (const Material &mat, const BinUtility &bu, const std::vector< Trk::BinUtility > &bVec, const std::vector< std::vector< size_t > > &index, const std::vector< IdentifiedMaterial > &detailedMat)
 Constructor with averaged material and binning in 2D. More...
 
const Trk::BinUtilitylayerBinUtility (const Amg::Vector3D &position) const
 access to layer bin utility More...
 
size_t layerBin (const Amg::Vector3D &position) const
 layer bin More...
 
const IdentifiedMaterialmaterial (const Amg::Vector3D &position) const
 access to material/id per bin More...
 
const IdentifiedMaterialmaterialNext (const Amg::Vector3D &pos, const Amg::Vector3D &dir, bool layOnly) const
 access to binned material More...
 
std::unique_ptr< Materialscale (float sf) const
 scaling method More...
 
float zOverAtimesRho () const
 access to members More...
 
float x0 () const
 
float averageZ () const
 
std::string toString () const
 spit out as a string More...
 

Public Attributes

float X0
 
float L0
 
float A
 
float Z
 
float rho
 
float dEdX
 
float zOaTr
 
MaterialCompositioncomposition
 

Private Member Functions

std::vector< const Trk::IdentifiedMaterial * > ptrs () const
 

Private Attributes

std::vector< IdentifiedMaterialm_matVec
 
binsPtr_t m_matBins
 

Detailed Description

for description of non-homogenous dense volumes

Author
sarka.nosp@m..tod.nosp@m.orova.nosp@m.@cer.nosp@m.n.ch

Definition at line 31 of file BinnedMaterial.h.

Member Typedef Documentation

◆ binsPtr_t

Definition at line 33 of file BinnedMaterial.h.

Constructor & Destructor Documentation

◆ BinnedMaterial() [1/5]

Trk::BinnedMaterial::BinnedMaterial ( )
default

Default Constructors.

◆ BinnedMaterial() [2/5]

Trk::BinnedMaterial::BinnedMaterial ( BinnedMaterial &&  )
default

◆ ~BinnedMaterial()

virtual Trk::BinnedMaterial::~BinnedMaterial ( )
virtualdefault

◆ BinnedMaterial() [3/5]

Trk::BinnedMaterial::BinnedMaterial ( const BinnedMaterial amc)

Definition at line 29 of file BinnedMaterial.cxx.

30  : Material(amc), m_matVec(amc.m_matVec) {
31  if (amc.m_matBins) {
32  if (!m_matVec.empty()) {
33  m_matBins = binsPtr_t(amc.m_matBins->clone(ptrs()));
34  } else {
35  m_matBins = binsPtr_t(amc.m_matBins->clone());
36  }
37  }
38 }

◆ BinnedMaterial() [4/5]

Trk::BinnedMaterial::BinnedMaterial ( const Material mat,
const BinUtility bu,
const std::vector< size_t > &  index,
const std::vector< IdentifiedMaterial > &  detailedMat 
)

Constructor with averaged material and binning in 1D.

Definition at line 8 of file BinnedMaterial.cxx.

◆ BinnedMaterial() [5/5]

Trk::BinnedMaterial::BinnedMaterial ( const Material mat,
const BinUtility bu,
const std::vector< Trk::BinUtility > &  bVec,
const std::vector< std::vector< size_t > > &  index,
const std::vector< IdentifiedMaterial > &  detailedMat 
)

Constructor with averaged material and binning in 2D.

Definition at line 18 of file BinnedMaterial.cxx.

Member Function Documentation

◆ averageZ()

float Trk::Material::averageZ ( ) const
inlineinherited

Definition at line 228 of file Material.h.

228 { return (*this).Z; }

◆ layerBin()

size_t Trk::BinnedMaterial::layerBin ( const Amg::Vector3D position) const
inline

layer bin

Definition at line 85 of file BinnedMaterial.h.

86  {
87  return m_matBins ? m_matBins->layerBin(position) : 0;
88 }

◆ layerBinUtility()

const Trk::BinUtility * Trk::BinnedMaterial::layerBinUtility ( const Amg::Vector3D position) const
inline

access to layer bin utility

Definition at line 80 of file BinnedMaterial.h.

81  {
82  return m_matBins ? m_matBins->layerBinUtility(position) : nullptr;
83 }

◆ material()

const Trk::IdentifiedMaterial * Trk::BinnedMaterial::material ( const Amg::Vector3D position) const

access to material/id per bin

access to binned material

Definition at line 58 of file BinnedMaterial.cxx.

59  {
61  m_matBins ? m_matBins->object(position) : nullptr;
62  return mat;
63 }

◆ materialNext()

const Trk::IdentifiedMaterial * Trk::BinnedMaterial::materialNext ( const Amg::Vector3D pos,
const Amg::Vector3D dir,
bool  layOnly 
) const

access to binned material

Definition at line 66 of file BinnedMaterial.cxx.

68  {
70  m_matBins ? m_matBins->nextObject(position, direction, layOnly) : nullptr;
71  return mat;
72 }

◆ operator=() [1/2]

BinnedMaterial& Trk::BinnedMaterial::operator= ( BinnedMaterial &&  )
default

◆ operator=() [2/2]

Trk::BinnedMaterial & Trk::BinnedMaterial::operator= ( const BinnedMaterial amc)

Assignment operator.

Definition at line 41 of file BinnedMaterial.cxx.

41  {
42  if (this != &amc) {
44  m_matVec = amc.m_matVec;
45  m_matBins.reset();
46  if (amc.m_matBins) {
47  if (!m_matVec.empty()) {
48  m_matBins = binsPtr_t(amc.m_matBins->clone(ptrs()));
49  } else {
50  m_matBins = binsPtr_t(amc.m_matBins->clone());
51  }
52  }
53  }
54  return (*this);
55 }

◆ ptrs()

std::vector< const Trk::IdentifiedMaterial * > Trk::BinnedMaterial::ptrs ( ) const
private

Definition at line 75 of file BinnedMaterial.cxx.

75  {
76  std::vector<const Trk::IdentifiedMaterial*> p;
77  p.reserve(m_matVec.size());
78  for (const Trk::IdentifiedMaterial& m : m_matVec) {
79  p.push_back(&m);
80  }
81  return p;
82 }

◆ scale()

std::unique_ptr< Material > Trk::Material::scale ( float  sf) const
inlineinherited

scaling method

Definition at line 240 of file Material.h.

240  {
241  // Tell clang to optimize assuming that FP exceptions can trap.
242  // Otherwise, it can vectorize the division, which can lead to
243  // spurious division-by-zero traps from unused vector lanes.
245  return std::make_unique<Material>(X0 / sf, L0 / sf, sf * A, sf * Z, sf * rho);
246 }

◆ toString()

std::string Trk::Material::toString ( ) const
inlineinherited

spit out as a string

Definition at line 231 of file Material.h.

231  {
232  std::ostringstream sout;
233  sout << std::setiosflags(std::ios::fixed) << std::setprecision(4);
234  sout << "(" << X0 << " | " << L0 << " | " << A << " | " << Z << " | " << rho
235  << ")";
236  return sout.str();
237  }

◆ x0()

float Trk::Material::x0 ( ) const
inlineinherited

Definition at line 227 of file Material.h.

227 { return (*this).X0; }

◆ zOverAtimesRho()

float Trk::Material::zOverAtimesRho ( ) const
inlineinherited

access to members

Definition at line 226 of file Material.h.

226 { return (*this).zOaTr; }

Member Data Documentation

◆ A

float Trk::Material::A
inherited

Definition at line 122 of file Material.h.

◆ composition

MaterialComposition* Trk::Material::composition
inherited

Definition at line 127 of file Material.h.

◆ dEdX

float Trk::Material::dEdX
inherited

Definition at line 125 of file Material.h.

◆ L0

float Trk::Material::L0
inherited

Definition at line 121 of file Material.h.

◆ m_matBins

binsPtr_t Trk::BinnedMaterial::m_matBins
private

Definition at line 76 of file BinnedMaterial.h.

◆ m_matVec

std::vector<IdentifiedMaterial> Trk::BinnedMaterial::m_matVec
private

Definition at line 74 of file BinnedMaterial.h.

◆ rho

float Trk::Material::rho
inherited

Definition at line 124 of file Material.h.

◆ X0

float Trk::Material::X0
inherited

Definition at line 120 of file Material.h.

◆ Z

float Trk::Material::Z
inherited

Definition at line 123 of file Material.h.

◆ zOaTr

float Trk::Material::zOaTr
inherited

Definition at line 126 of file Material.h.


The documentation for this class was generated from the following files:
Trk::Material::Material
Material()
Default Constructor needed for POOL.
Definition: Material.h:130
CXXUTILS_TRAPPING_FP
#define CXXUTILS_TRAPPING_FP
Definition: trapping_fp.h:24
Trk::Material::L0
float L0
Definition: Material.h:121
make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: SkimmingToolEXOT5.cxx:23
index
Definition: index.py:1
Trk::Material::Z
float Z
Definition: Material.h:123
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Trk::BinnedMaterial::m_matVec
std::vector< IdentifiedMaterial > m_matVec
Definition: BinnedMaterial.h:74
Trk::CompactBinnedArray2D
Definition: CompactBinnedArray2D.h:32
A
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
Trk::Material::X0
float X0
Definition: Material.h:120
Trk::Material::operator=
Material & operator=(const Material &amc)
Assignment operator.
Definition: Material.h:189
Trk::BinnedMaterial::binsPtr_t
std::unique_ptr< const CompactBinnedArray< const IdentifiedMaterial > > binsPtr_t
Definition: BinnedMaterial.h:33
Trk::IdentifiedMaterial
std::pair< std::shared_ptr< Material >, int > IdentifiedMaterial
Definition: BinnedMaterial.h:23
Trk::Material::rho
float rho
Definition: Material.h:124
Trk::BinnedMaterial::m_matBins
binsPtr_t m_matBins
Definition: BinnedMaterial.h:76
Trk::BinnedMaterial::ptrs
std::vector< const Trk::IdentifiedMaterial * > ptrs() const
Definition: BinnedMaterial.cxx:75
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::CompactBinnedArray1D
Definition: CompactBinnedArray1D.h:33
Material
@ Material
Definition: MaterialTypes.h:8
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106