Commit in GeomConverter/src/org/lcsim/units on MAIN
Constants.java+51added 1.1
SystemOfUnits.java+124added 1.1
+175
2 added files
add basic lcsim units (no energy units yet)

GeomConverter/src/org/lcsim/units
Constants.java added at 1.1
diff -N Constants.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Constants.java	26 Aug 2009 23:32:42 -0000	1.1
@@ -0,0 +1,51 @@
+package org.lcsim.units;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+public class Constants 
+{
+	Map<String, Double> constantsMap = new HashMap<String, Double>();
+
+	private static Constants instance = new Constants();
+
+	public double get(String key)
+	{
+		return constantsMap.get(key);
+	}
+
+	public Set<Entry<String,Double>> entrySet()
+	{
+		return constantsMap.entrySet();
+	}
+
+	public static Constants getInstance()
+	{
+		return instance;
+	}
+
+	private Constants()
+	{
+		setupSystemOfUnits();
+	}
+
+	private void setupSystemOfUnits()
+	{
+		SystemOfUnits units = new SystemOfUnits();      
+		Class<SystemOfUnits> klass = SystemOfUnits.class;
+		Field[] fields = klass.getFields();
+		for (Field f : fields)
+		{
+			try {
+				constantsMap.put(f.getName(), f.getDouble(units));
+			}
+			catch ( IllegalAccessException x )
+			{
+				throw new RuntimeException(x);
+			}
+		}
+	}
+}

GeomConverter/src/org/lcsim/units
SystemOfUnits.java added at 1.1
diff -N SystemOfUnits.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SystemOfUnits.java	26 Aug 2009 23:32:42 -0000	1.1
@@ -0,0 +1,124 @@
+package org.lcsim.units;
+
+// TODO: Add energy constants.  Need to use GeV=1 (instead of MeV=1 in CLHEP).
+public final class SystemOfUnits 
+{	
+	//
+	// Length [L]
+	//
+	public static final double millimeter  = 1.;
+	public static final double millimeter2 = millimeter*millimeter;
+	public static final double millimeter3 = millimeter*millimeter*millimeter;
+
+	public static final double centimeter  = 10.*millimeter;
+	public static final double centimeter2 = centimeter*centimeter;
+	public static final double centimeter3 = centimeter*centimeter*centimeter;
+
+	public static final double meter  = 1000.*millimeter;
+	public static final double meter2 = meter*meter;
+	public static final double meter3 = meter*meter*meter;
+
+	public static final double kilometer = 1000.*meter;
+	public static final double kilometer2 = kilometer*kilometer;
+	public static final double kilometer3 = kilometer*kilometer*kilometer;
+
+	public static final double parsec = 3.0856775807e+16*meter;
+
+	public static final double micrometer = 1.e-6 *meter;
+	public static final double  nanometer = 1.e-9 *meter;
+	public static final double  angstrom  = 1.e-10*meter;
+	public static final double  fermi     = 1.e-15*meter;
+
+	public static final double      barn = 1.e-28*meter2;
+	public static final double millibarn = 1.e-3 *barn;
+	public static final double microbarn = 1.e-6 *barn;
+	public static final double  nanobarn = 1.e-9 *barn;
+	public static final double  picobarn = 1.e-12*barn;
+
+	// symbols
+	public static final double nm  = nanometer;
+	public static final double um  = micrometer;
+
+	public static final double mm  = millimeter;
+	public static final double mm2 = millimeter2;
+	public static final double mm3 = millimeter3;
+
+	public static final double cm  = centimeter;
+	public static final double cm2 = centimeter2;
+	public static final double cm3 = centimeter3;
+
+	public static final double m  = meter;
+	public static final double m2 = meter2;
+	public static final double m3 = meter3;
+
+	public static final double km  = kilometer;
+	public static final double km2 = kilometer2;
+	public static final double km3 = kilometer3;
+
+	public static final double pc = parsec;
+
+	//
+	// Angle
+	//
+	public static final double radian      = 1.;
+	public static final double milliradian = 1.e-3*radian;
+	public static final double degree = (3.14159265358979323846/180.0)*radian;
+
+	public static final double   steradian = 1.;
+
+	// symbols
+	public static final double rad  = radian;
+	public static final double mrad = milliradian;
+	public static final double sr   = steradian;
+	public static final double deg  = degree;
+
+	//
+	// Time [T]
+	//
+	public static final double nanosecond  = 1.;
+	public static final double second      = 1.e+9 *nanosecond;
+	public static final double millisecond = 1.e-3 *second;
+	public static final double microsecond = 1.e-6 *second;
+	public static final double  picosecond = 1.e-12*second;
+
+	public static final double hertz = 1./second;
+	public static final double kilohertz = 1.e+3*hertz;
+	public static final double megahertz = 1.e+6*hertz;
+
+	// symbols
+	public static final double ns = nanosecond;
+	public static final double  s = second;
+	public static final double ms = millisecond;
+
+	//
+	// Electric charge [Q]
+	//
+	public static final double eplus = 1. ;// positron charge
+	public static final double e_SI  = 1.60217733e-19;// positron charge in coulomb
+	public static final double coulomb = eplus/e_SI;// coulomb = 6.24150 e+18 * eplus
+
+	//
+	// Electric current [Q][T^-1]
+	//
+	public static final double      ampere = coulomb/second; // ampere = 6.24150 e+9 * eplus/ns
+	public static final double milliampere = 1.e-3*ampere;
+	public static final double microampere = 1.e-6*ampere;
+	public static final double  nanoampere = 1.e-9*ampere;
+
+	//
+	// Temperature
+	//
+	public static final double kelvin = 1.;
+
+	//
+	// Amount of substance
+	//
+	public static final double mole = 1.;
+	public static final double mol = mole;
+
+	//
+	// Activity [T^-1]
+	//
+	public static final double becquerel = 1./second ;
+	public static final double curie = 3.7e+10 * becquerel;
+}
CVSspam 0.2.8