|
| | Material (const ParametersVector ¶meters) |
| | Construct from an encoded parameters vector.
|
| constexpr float | Ar () const |
| | Return the relative atomic mass.
|
| bool | isVacuum () const |
| | Check if the material is vacuum.
|
| constexpr float | L0 () const |
| | Return the nuclear interaction length. Infinity in case of vacuum.
|
| float | massDensity () const |
| | Return the mass density.
|
| constexpr float | meanExcitationEnergy () const |
| | Return the mean electron excitation energy.
|
| constexpr float | molarDensity () const |
| | Return the molar density.
|
| constexpr float | molarElectronDensity () const |
| | Return the molar electron density.
|
| ParametersVector | parameters () const |
| | Encode the properties into an opaque parameters vector.
|
| constexpr float | X0 () const |
| | Return the radiation length. Infinity in case of vacuum.
|
| constexpr float | Z () const |
| | Return the nuclear charge number.
|
|
| static Material | fromMassDensity (float x0, float l0, float ar, float z, float massRho) |
| | Construct from material parameters using the mass density.
|
| static Material | fromMolarDensity (float x0, float l0, float ar, float z, float molarRho) |
| | Construct from material parameters using the molar density.
|
| static Material | fromMolarDensity (float x0, float l0, float ar, float z, float molarRho, float molarElectronRho, std::optional< float > meanExcitationEnergy) |
| | Construct from material parameters using the molar density.
|
| static constexpr Material | Vacuum () |
Material description for interactions with matter.
The following parameters are used to specify the material and its interactions with traversing particles:
- radiation length X0 (native length units)
- nuclear interaction length L0 (native length units)
- relative atomic mass Ar (unitless number)
- nuclear charge number Z (elementary charge e)
- molar density (native amount-of-substance unit / (native length unit)³)
The parameters can be effective or average parameters e.g. when a mixture of materials is described.
- Note
- Always use the opaque parameters vector to serialize/deserialize the material information. Since the internal storage might be different from the external accessors, this ensures that always the numerically optimal parameters are stored. Use the ParametersVector type and do not assume any particular size since we might consider to store more parameters in the future.