edu.stanford.rsl.konrad.physics.materials
Class MaterialUtils

java.lang.Object
  extended by edu.stanford.rsl.konrad.physics.materials.MaterialUtils

public class MaterialUtils
extends java.lang.Object

This class contains methods for generating custom materials, calculating energy dependent mass attenuation,
and determining the energy dependent attenuation coefficient of a material given its density, and energy dependent mass attenuation.

Author:
Rotimi X Ojo

Constructor Summary
MaterialUtils()
           
 
Method Summary
static NumberInterpolatingTreeMap calculateAttenuationVals(java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> massAttenuation, double density)
          Generates the energy dependent attenuation coefficient given energy dependent mass attenuation data and density
static NumberInterpolatingTreeMap calculateAttenuationVals(WeightedAtomicComposition composition, double density)
           
static java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> calculateMassAttenuation(java.lang.String formula)
          Calculates the energy dependent mass attenuation of material with given formula.
static java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> calculateMassAttenuation(WeightedAtomicComposition comp)
          Calculates the energy dependent mass attenuation of material with given composition.
static Material newMaterial(java.lang.String name, double density, java.lang.String formula)
          Generates a new instance of material with given characteristics
static Material newMaterial(java.lang.String name, double density, WeightedAtomicComposition composition)
          Generates a new instance of material with given characteristics
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MaterialUtils

public MaterialUtils()
Method Detail

calculateMassAttenuation

public static java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> calculateMassAttenuation(java.lang.String formula)
Calculates the energy dependent mass attenuation of material with given formula. Energy range is 1 keV - 100 GeV);

Parameters:
comp - the atomic composition of material by weight
Returns:
energy dependent mass attenuation data for default range;

calculateMassAttenuation

public static java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> calculateMassAttenuation(WeightedAtomicComposition comp)
Calculates the energy dependent mass attenuation of material with given composition. Default Energy range is 1 keV - 100 GeV);

Parameters:
comp - the atomic composition of material by weight
Returns:
energy dependent mass attenuation data for default range;

newMaterial

public static Material newMaterial(java.lang.String name,
                                   double density,
                                   java.lang.String formula)
Generates a new instance of material with given characteristics

Parameters:
name - is material identifier
density - is material density
formula - is chemical formula of material to be created
Returns:
null if material cannot be created

newMaterial

public static Material newMaterial(java.lang.String name,
                                   double density,
                                   WeightedAtomicComposition composition)
Generates a new instance of material with given characteristics

Parameters:
name - is material identifier
density - is material density
atomicComposition - is atomic composition by weight of material
Returns:
null if material cannot be created

calculateAttenuationVals

public static NumberInterpolatingTreeMap calculateAttenuationVals(WeightedAtomicComposition composition,
                                                                  double density)

calculateAttenuationVals

public static NumberInterpolatingTreeMap calculateAttenuationVals(java.util.TreeMap<java.lang.Double,java.util.TreeMap<java.lang.String,java.lang.Double>> massAttenuation,
                                                                  double density)
Generates the energy dependent attenuation coefficient given energy dependent mass attenuation data and density

Parameters:
massAttData - energy dependent mass attenuation data
density - density of material
Returns:
interpolating array of energy dependent attenuation coefficients