1 package org.lcsim.material; 2 3 /** 4 * 5 * This is the primary interface to information on a single material. 6 * 7 * @author jeremym 8 * @version $Id: IMaterial.java,v 1.1 2011/03/11 19:22:20 jeremy Exp $ 9 */ 10 public interface IMaterial 11 { 12 /** 13 * Get the name of this material. 14 * @return The name of the material. 15 */ 16 public String getName(); 17 18 /** 19 * Get the density of this material in g/cm3. 20 * @return The density in g/cm3. 21 */ 22 public double getDensity(); 23 24 /** 25 * Get the atomic mass of this material. 26 * @return The atomic mass. 27 */ 28 public double getZ(); 29 30 /** 31 * Get the atomic number of this material. 32 * @return The atomic number. 33 */ 34 public double getA(); 35 36 /** 37 * Get the nuclear interaction length in g/cm2. 38 * @return The nuclear interaction length in g/cm2. 39 */ 40 public double getNuclearInteractionLength(); 41 42 /** 43 * Get the nuclear interaction length in g/cm2. 44 * @return The nuclear interaction length in cm. 45 */ 46 public double getNuclearInteractionLengthWithDensity(); 47 48 /** 49 * Get the radiation length in g/cm2. 50 * @return The radiation length in g/cm2. 51 */ 52 public double getRadiationLength(); 53 54 /** 55 * Get the radiation length in cm. 56 * @return The radiation length in cm. 57 */ 58 public double getRadiationLengthWithDensity(); 59 60 /** 61 * Get the temperature of the material in Kelvin. 62 * @return The temperature in Kelvin. 63 */ 64 public double getTemperature(); 65 66 /** 67 * Get the pressure of the material in atmospheres. 68 * @return The pressure of the material in atmospheres. 69 */ 70 public double getPressure(); 71 72 /** 73 * Get the state of this material, either liquid, gas, solid, or unknown. 74 * @return The state of this material. 75 */ 76 public MaterialState getState(); 77 }