import edu.stanford.rsl.conrad.physics.EnergyDependentCoefficients;
import edu.stanford.rsl.conrad.physics.EnergyDependentCoefficients.Material;
import edu.stanford.rsl.conrad.utils.LinearInterpolatingDoubleArray;
import edu.stanford.rsl.conrad.utils.UserUtil;
import ij.gui.Plot;
import ij.plugin.PlugIn;
public class Generate_Photon_Mass_Attenuation_Plot implements PlugIn{
public Generate_Photon_Mass_Attenuation_Plot (){
}
@Override
public void run(String arg) {
try {
double min = UserUtil.queryDouble("Minimum [keV]", 10);
double max = UserUtil.queryDouble("Maximum [keV]", 150);
double delta = UserUtil.queryDouble("Delta [keV]", 0.5);
Material material = UserUtil.queryMaterial("Please Select the Material:", "Material Selection");
LinearInterpolatingDoubleArray lut = EnergyDependentCoefficients.getPhotonMassAttenuationLUT(material);
int steps = (int) ((max - min) / delta);
double [] energies = new double [steps];
double [] coefficients = new double[energies.length];
for (int i = 0; i < steps; i ++){
energies[i] = min + (i*delta);
coefficients[i] = (lut.getValue(energies[i] / 1000));
}
//DoubleArrayUtil.log(spectrum);
Plot plot = new Plot(material + " photon mass attenuation coefficient", "Energy", "ln (coefficient)", energies, coefficients);
plot.show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* Copyright (C) 2010-2014 - Andreas Maier
* CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
*/