OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
Physics::Material Class Reference

#include <Material.h>

Inheritance diagram for Physics::Material:
Inheritance graph
[legend]

Public Types

enum  FitCoeffs {
  A1 = 0 , A2 , A3 , A4 ,
  A5 , B1 , B2 , B3 ,
  B4 , B5
}
 

Public Member Functions

 Material (double atomicNumber, double atomicMass, double massDensity, double radiationLength, double meanExcitationEnergy, std::array< double, 10 > fitCoefficients)
 
double getAtomicNumber () const
 
double getAtomicMass () const
 
double getMassDensity () const
 
double getRadiationLength () const
 
double getMeanExcitationEnergy () const
 
double getStoppingPowerFitCoefficients (FitCoeffs n) const
 

Static Public Member Functions

static std::shared_ptr< MaterialgetMaterial (const std::string &name)
 
static std::shared_ptr< MaterialaddMaterial (const std::string &name, std::shared_ptr< Material > mat_ptr)
 

Private Attributes

const double atomicNumber_m
 
const double atomicMass_m
 
const double massDensity_m
 
const double radiationLength_m
 
const double meanExcitationEnergy_m
 
const std::array< double, 10 > stoppingPowerFitCoefficients_m
 

Static Private Attributes

static std::map< std::string, std::shared_ptr< Material > > protoTable_sm
 

Detailed Description

Definition at line 28 of file Material.h.

Member Enumeration Documentation

◆ FitCoeffs

Enumerator
A1 
A2 
A3 
A4 
A5 
B1 
B2 
B3 
B4 
B5 

Definition at line 30 of file Material.h.

Constructor & Destructor Documentation

◆ Material()

Physics::Material::Material ( double  atomicNumber,
double  atomicMass,
double  massDensity,
double  radiationLength,
double  meanExcitationEnergy,
std::array< double, 10 >  fitCoefficients 
)
inline

Definition at line 43 of file Material.h.

Member Function Documentation

◆ addMaterial()

std::shared_ptr< Material > Material::addMaterial ( const std::string &  name,
std::shared_ptr< Material mat_ptr 
)
static

Definition at line 42 of file Material.cpp.

References name, protoTable_sm, and Util::toUpper().

Here is the call graph for this function:

◆ getAtomicMass()

double Physics::Material::getAtomicMass ( ) const
inline

Definition at line 85 of file Material.h.

References atomicMass_m.

◆ getAtomicNumber()

double Physics::Material::getAtomicNumber ( ) const
inline

Definition at line 80 of file Material.h.

References atomicNumber_m.

◆ getMassDensity()

double Physics::Material::getMassDensity ( ) const
inline

Definition at line 90 of file Material.h.

References massDensity_m.

◆ getMaterial()

std::shared_ptr< Material > Material::getMaterial ( const std::string &  name)
static

Definition at line 53 of file Material.cpp.

References name, protoTable_sm, and Util::toUpper().

Referenced by ScatteringPhysics::configureMaterialParameters().

Here is the call graph for this function:

◆ getMeanExcitationEnergy()

double Physics::Material::getMeanExcitationEnergy ( ) const
inline

Definition at line 100 of file Material.h.

References meanExcitationEnergy_m.

◆ getRadiationLength()

double Physics::Material::getRadiationLength ( ) const
inline

Definition at line 95 of file Material.h.

References radiationLength_m.

◆ getStoppingPowerFitCoefficients()

double Physics::Material::getStoppingPowerFitCoefficients ( Material::FitCoeffs  n) const
inline

Definition at line 105 of file Material.h.

References Hypervolume::n, and stoppingPowerFitCoefficients_m.

Member Data Documentation

◆ atomicMass_m

const double Physics::Material::atomicMass_m
private

Definition at line 72 of file Material.h.

Referenced by getAtomicMass().

◆ atomicNumber_m

const double Physics::Material::atomicNumber_m
private

Definition at line 71 of file Material.h.

Referenced by getAtomicNumber().

◆ massDensity_m

const double Physics::Material::massDensity_m
private

Definition at line 73 of file Material.h.

Referenced by getMassDensity().

◆ meanExcitationEnergy_m

const double Physics::Material::meanExcitationEnergy_m
private

Definition at line 75 of file Material.h.

Referenced by getMeanExcitationEnergy().

◆ protoTable_sm

std::map< std::string, std::shared_ptr< Material > > Material::protoTable_sm
staticprivate

Definition at line 69 of file Material.h.

Referenced by addMaterial(), and getMaterial().

◆ radiationLength_m

const double Physics::Material::radiationLength_m
private

Definition at line 74 of file Material.h.

Referenced by getRadiationLength().

◆ stoppingPowerFitCoefficients_m

const std::array<double,10> Physics::Material::stoppingPowerFitCoefficients_m
private

Definition at line 76 of file Material.h.

Referenced by getStoppingPowerFitCoefficients().


The documentation for this class was generated from the following files: