public class MaterialMixture extends MaterialElement
IMaterial.State
Modifier and Type | Field and Description |
---|---|
private double |
Aeff |
private List<Integer> |
atomCountList |
private List<MaterialElement> |
elementList |
private List<Double> |
massFractionList |
static double |
MAX_NUCLEAR_INTERACTION_LENGTH |
static double |
MAX_RADIATION_LENGTH |
private int |
nComponentsAdded |
private int |
nComponentsMax |
private int |
nElements |
private double |
Zeff |
A, criticalEnergy, density, moliereRadius, N, name, nuclearInteractionLength, nuclearInteractionLengthWithDensity, pressure, radiationLength, radiationLengthWithDensity, state, temperature, Z
defaultIonizationPotential, defaultPressure, defaultState, defaultTemperature, Gas, Liquid, Solid, Unknown
Constructor and Description |
---|
MaterialMixture(String name,
int nComponents,
double density,
IMaterial.State state)
Construct a material with a number of components.
|
Modifier and Type | Method and Description |
---|---|
void |
addElement(MaterialElement element,
double fraction)
Add element to the material by fraction of mass.
|
void |
addElement(MaterialElement element,
int nAtoms)
Add an element to the material by atom count.
|
void |
addMaterial(MaterialMixture material,
double fraction)
Add material by fraction of mass.
|
private void |
checkMassSum()
Check that the massFractions list adds up to 1.0
|
private double |
computeAeff()
Compute effective A for this material using element list.
|
private void |
computeDerivedQuantities()
Caches computed quantities after all components have been added to the material.
|
private double |
computeNuclearInteractionLengthForMixture() |
private double |
computeRadiationLengthForMixture()
compute X0 (radiation length) based on mass fractions of elements
|
private double |
computeZeff()
Compute effective Z for this material using element list.
|
double |
getA()
Get the atomic number of this material.
|
List<Integer> |
getAtomCounts() |
List<MaterialElement> |
getElements() |
List<Double> |
getMassFractions() |
int |
getNComponents() |
int |
getNComponentsMax() |
int |
getNElements() |
int |
getNumberOfElements() |
double |
getZ()
Get the atomic mass of this material.
|
boolean |
isFilled() |
String |
toString()
Translate this material to human-readable string.
|
computeCriticalEnergy, computeMoliereRadius, computeNuclearInteractionLength, computeNuclearInteractionLength, computeRadiationLength, computeRadiationLengthTsai, getDensity, getEffectiveNumberOfNucleons, getMoliereRadius, getName, getNuclearInteractionLength, getNuclearInteractionLengthWithDensity, getPressure, getRadiationLength, getRadiationLengthWithDensity, getState, getTemperature
public static final double MAX_RADIATION_LENGTH
public static final double MAX_NUCLEAR_INTERACTION_LENGTH
private double Zeff
private double Aeff
private int nComponentsAdded
private int nComponentsMax
private int nElements
private List<MaterialElement> elementList
public MaterialMixture(String name, int nComponents, double density, IMaterial.State state)
public double getZ()
IMaterial
getZ
in interface IMaterial
getZ
in class MaterialElement
public double getA()
IMaterial
getA
in interface IMaterial
getA
in class MaterialElement
public int getNComponentsMax()
public int getNComponents()
public int getNElements()
private double computeNuclearInteractionLengthForMixture()
private double computeRadiationLengthForMixture()
private void computeDerivedQuantities()
public int getNumberOfElements()
public List<MaterialElement> getElements()
public List<Double> getMassFractions()
public void addElement(MaterialElement element, int nAtoms)
public void addElement(MaterialElement element, double fraction)
public void addMaterial(MaterialMixture material, double fraction)
public boolean isFilled()
private void checkMassSum()
private double computeZeff()
private double computeAeff()
public String toString()
toString
in class MaterialElement
Copyright © 2016 Linear Collider Detector (LCD). All rights reserved.