Commit in GeomConverter on MAIN
src/org/lcsim/detector/IParametersStore.java+13added 1.1
                      /ParametersStore.java+34added 1.1
                      /DetectorElement.java+12-21.25 -> 1.26
                      /IParameters.java+6-21.1 -> 1.2
                      /Parameters.java+181.1 -> 1.2
src/org/lcsim/detector/converter/XMLConverter.java-11.1 -> 1.2
src/org/lcsim/detector/converter/compact/ParametersConverter.java+124added 1.1
                                        /DetectorConverter.java+17-11.17 -> 1.18
src/org/lcsim/detector/converter/lcdd/MaterialElementConverter.java+1-71.1 -> 1.2
                                     /MaterialMixtureConverter.java+1-71.1 -> 1.2
src/org/lcsim/detector/identifier/IIdentifiable.java+5-101.4 -> 1.5
                                 /IIdentifierDictionary.java+3-31.4 -> 1.5
                                 /IdentifierHelper.java+2-21.8 -> 1.9
src/org/lcsim/geometry/Calorimeter.java+1-21.12 -> 1.13
                      /Subdetector.java+1-21.20 -> 1.21
src/org/lcsim/geometry/compact/Subdetector.java+4-21.18 -> 1.19
src/org/lcsim/geometry/subdetector/AbstractCalorimeter.java+3-271.6 -> 1.7
                                  /TestBeamCalorimeter.java+2-191.7 -> 1.8
                                  /CalorimeterType.java-1391.3 removed
test/org/lcsim/detector/ParametersTest.java+1-11.1 -> 1.2
test/org/lcsim/detector/converter/compact/ParametersConverterTest.java+81added 1.1
                                         /ParametersConverterTest.xml+62added 1.1
test/org/lcsim/geometry/compact/ParameterSetTest.xml-651.3 removed
                               /ParameterSet_ClassTest.java-581.2 removed
                               /ParameterSet_XMLTest.java-471.4 removed
test/org/lcsim/geometry/subdetector/CalorimeterTypeTest.java-711.2 removed
+391-468
5 added + 5 removed + 16 modified, total 26 files
JM: Replace compact parameters system.

GeomConverter/src/org/lcsim/detector
IParametersStore.java added at 1.1
diff -N IParametersStore.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ IParametersStore.java	22 May 2007 20:02:03 -0000	1.1
@@ -0,0 +1,13 @@
+package org.lcsim.detector;
+
+/**
+ * Access to {@link IParameter} objects for the current detector.
+ * 
+ * @author Jeremy McCormick
+ * @version $Id: IParametersStore.java,v 1.1 2007/05/22 20:02:03 jeremy Exp $
+ */
+public interface IParametersStore 
+extends IObjectStore<IParameters>
+{
+    public IParameters getParameters(String name);
+}
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
ParametersStore.java added at 1.1
diff -N ParametersStore.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ParametersStore.java	22 May 2007 20:02:03 -0000	1.1
@@ -0,0 +1,34 @@
+package org.lcsim.detector;
+
+/**
+ * Implementation of [log in to unmask]
+ * 
+ * @author Jeremy McCormick
+ * @version $Id: ParametersStore.java,v 1.1 2007/05/22 20:02:03 jeremy Exp $
+ */
+public class ParametersStore
+extends ObjectStore<IParameters>
+implements IParametersStore
+{
+    private static IParametersStore store;
+    public static IParametersStore getInstance()
+    {
+        if (store == null)
+        {
+            store = new ParametersStore();
+        }
+        return store;
+    }
+    
+    public IParameters getParameters(String name)
+    {
+        for (IParameters p : this)
+        {
+            if (p.getName().equals(name))
+            {
+                return p;
+            }
+        }
+        return null;
+    }    
+}
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
DetectorElement.java 1.25 -> 1.26
diff -u -r1.25 -r1.26
--- DetectorElement.java	16 May 2007 23:27:38 -0000	1.25
+++ DetectorElement.java	22 May 2007 20:02:03 -0000	1.26
@@ -13,7 +13,7 @@
  * Implementation of {@link IDetectorElement}.
  * 
  * @author Jeremy McCormick
- * @version $Id: DetectorElement.java,v 1.25 2007/05/16 23:27:38 jeremy Exp $
+ * @version $Id: DetectorElement.java,v 1.26 2007/05/22 20:02:03 jeremy Exp $
  */
 public class DetectorElement 
 extends Named
@@ -25,7 +25,7 @@
     private IDetectorElement parent;
     private IIdentifier id;
     private IIdentifierHelper helper;
-    private IParameters parameters = new Parameters();
+    private IParameters parameters;
     private IReadout readout;
 
     /**
@@ -518,4 +518,14 @@
     {
         return getAncestry().contains(de);
     }    
+    
+    public void setParameters(IParameters parameters)
+    {
+        if (parameters == null)
+        {
+            throw new IllegalArgumentException("The parameters object is null.");
+        }           
+        this.parameters = parameters;
+    }
+    
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
IParameters.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- IParameters.java	9 Apr 2007 21:05:27 -0000	1.1
+++ IParameters.java	22 May 2007 20:02:03 -0000	1.2
@@ -3,13 +3,17 @@
 import java.util.Set;
 
 /**
- * Interface to named parameters.
+ * Interface to named parameters.  Available types are
+ * integer, boolean, double, and string, and arrays of
+ * these types.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
- *
+ * @version $Id: IParameters.java,v 1.2 2007/05/22 20:02:03 jeremy Exp $
  */
 public interface IParameters 
 {
+    public String getName();
+    
 	public Set<String> getStringParameterNames();
     public Set<String> getIntegerParameterNames();
     public Set<String> getDoubleParameterNames();

GeomConverter/src/org/lcsim/detector
Parameters.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- Parameters.java	9 Apr 2007 21:05:27 -0000	1.1
+++ Parameters.java	22 May 2007 20:02:03 -0000	1.2
@@ -3,8 +3,26 @@
 import java.util.HashMap;
 import java.util.Set;
 
+/**
+ * Implementation of {@link IParameters}.
+ * 
+ * @author Jeremy McCormick
+ * @version $Id: Parameters.java,v 1.2 2007/05/22 20:02:03 jeremy Exp $
+ */
 public class Parameters implements IParameters 
 {    
+    String name;
+    
+    public Parameters(String name)
+    {
+        this.name = name;
+    }
+    
+    public String getName()
+    {
+        return name;
+    }
+    
     public Set<String> getBooleanArrayParameterNames() 
     {
         return boolArrayParams.keySet();

GeomConverter/src/org/lcsim/detector/converter
XMLConverter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- XMLConverter.java	15 Mar 2007 02:09:14 -0000	1.1
+++ XMLConverter.java	22 May 2007 20:02:04 -0000	1.2
@@ -21,5 +21,4 @@
 public interface XMLConverter 
 {
 	public void convert(Element element) throws JDOMException;
-	public String getElementName();
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector/converter/compact
ParametersConverter.java added at 1.1
diff -N ParametersConverter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ParametersConverter.java	22 May 2007 20:02:04 -0000	1.1
@@ -0,0 +1,124 @@
+package org.lcsim.detector.converter.compact;
+
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.lcsim.detector.IParameters;
+import org.lcsim.detector.Parameters;
+import org.lcsim.detector.ParametersStore;
+import org.lcsim.detector.converter.XMLConverter;
+
+/**
+ * Converts parameters from XML to {@link org.lcsim.detector.IParameters}.
+ * 
+ * Handles the following XML elements.
+ * 
+ * <ul>
+ * <li>intParameter</li>
+ * <li>intArrayParameter</li>
+ * <li>doubleParameter</li>
+ * <li>doubleArrayParameter</li>
+ * <li>stringParameter</li>
+ * <li>stringArrayParameter</li>
+ * </ul>
+ * 
+ * All of these must have an attribute called <tt>name</tt> and valid content.
+ *
+ * @author Jeremy McCormick
+ * @version $Id: ParametersConverter.java,v 1.1 2007/05/22 20:02:04 jeremy Exp $
+ */
+
+public class ParametersConverter 
+implements XMLConverter
+{
+    public void convert(Element element) throws JDOMException
+    {
+        if (element.getAttribute("name") == null)
+        {
+            throw new RuntimeException("Top element doesn't have a name attribute.");
+        }
+                
+        IParameters param = new Parameters(element.getAttributeValue("name"));
+        
+        for ( Object o : element.getChildren() )
+        {
+            Element e = (Element)o;
+            String elementName = e.getName();
+            if ( elementName.contains("Parameter"))
+            {   
+                if (e.getAttribute("name") == null)
+                {
+                    System.out.println("Parameter is missing the name attribute.");
+                }
+                
+                String paramName = e.getAttributeValue("name");
+                String value = e.getValue();
+                
+                if (value == null)
+                {
+                    System.out.println("Parameter <" + paramName + "> is missing a value.");
+                }
+                
+                String[] values = value.split(" ");
+                                
+                if (elementName.equals("integerParameter"))
+                {
+                    param.addIntegerParameter(paramName, Integer.parseInt(value));
+                }
+                else if (elementName.equals("integerArrayParameter"))
+                {
+                    int[] intValues = new int[values.length];
+                    for (int i=0; i<values.length; i++)
+                    {
+                        if (values[i] != null && !values[i].equals(""))
+                            intValues[i] = Integer.parseInt(values[i]);
+                    }
+                    param.addIntegerArrayParameter(paramName, intValues);
+                }
+                else if (elementName.equals("doubleParameter"))
+                {
+                    param.addDoubleParameter(paramName, Double.parseDouble(value));
+                }
+                else if (elementName.equals("doubleArrayParameter"))
+                {
+                    double[] doubleValues = new double[values.length];
+                    for (int i=0; i<values.length; i++)
+                    {
+                        if (values[i] != null && !values[i].equals(""))
+                            doubleValues[i] = Double.parseDouble(values[i]);
+                    }
+                    param.addDoubleArrayParameter(paramName, doubleValues);
+                }
+                else if (elementName.equals("stringParameter"))
+                {
+                    param.addStringParameter(paramName, value);
+                }
+                else if (elementName.equals("stringArrayParameter"))
+                {
+                    String[] stringValues = new String[values.length];
+                    for (int i=0; i<values.length; i++)
+                    {
+                        if (values[i] != null && !values[i].equals(""))
+                            stringValues[i] = values[i];
+                    };                    
+                    param.addStringArrayParameter(paramName, stringValues);
+                }
+                else if (elementName.equals("booleanParameter"))
+                {
+                    param.addBooleanParameter(paramName, Boolean.parseBoolean(value));
+                }
+                else if (elementName.equals("booleanArrayParameter"))
+                {
+                    boolean[] booleanValues = new boolean[values.length];
+                    for (int i=0; i<values.length; i++)
+                    {
+                        if (values[i] != null && !values[i].equals(""))
+                            booleanValues[i] = Boolean.parseBoolean(values[i]);
+                    }
+                    param.addBooleanArrayParameter(paramName, booleanValues);                    
+                }
+            }
+        }   
+        
+        ParametersStore.getInstance().add(param);
+    }   
+}

GeomConverter/src/org/lcsim/detector/converter/compact
DetectorConverter.java 1.17 -> 1.18
diff -u -r1.17 -r1.18
--- DetectorConverter.java	18 May 2007 23:47:33 -0000	1.17
+++ DetectorConverter.java	22 May 2007 20:02:04 -0000	1.18
@@ -12,6 +12,7 @@
 import org.lcsim.detector.ILogicalVolume;
 import org.lcsim.detector.IPhysicalVolume;
 import org.lcsim.detector.LogicalVolume;
+import org.lcsim.detector.ParametersStore;
 import org.lcsim.detector.PhysicalVolume;
 import org.lcsim.detector.PhysicalVolumeNavigatorStore;
 import org.lcsim.detector.converter.lcdd.MaterialElementConverter;
@@ -127,6 +128,8 @@
 			
 	private void convertSubdetectors(Detector detector)
 	{
+        ParametersConverter paramCnv = new ParametersConverter();
+        
         // Loop over all compact Subdetectors in the Detector.
 		for ( Map.Entry<String,Subdetector> entry : detector.getSubdetectors().entrySet())
 		{
@@ -142,14 +145,27 @@
                 // Subdetector converters may need this to be done first.
 			    IIdentifierDictionary iddict = createIdentifierDictionary( subdet );
                 
+                // Converter parameters.
+                try {
+                    paramCnv.convert(subdet.getNode());
+                }
+                catch ( JDOMException x )
+                {
+                    throw new RuntimeException(x);
+                }
+                
                 // Convert from a compact type to the generic detector description
                 // using a registered converter.
 				cnv.convert(subdet, detector);
                 
-                // Now assign the IdentifierHelper to the DetectorElement after it has been built.
+				// If this subdetector was converted, it should have a DetectorElement.
                 if ( subdet.getDetectorElement() != null )
                 {
+                    // Set the IdentifierHelper.
                     ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper( new IdentifierHelper( iddict ) );
+                    
+                    // Set the Parameters.
+                    ((DetectorElement)subdet.getDetectorElement()).setParameters(ParametersStore.getInstance().getParameters(subdet.getName()));
                 }
 			}            
 		}		

GeomConverter/src/org/lcsim/detector/converter/lcdd
MaterialElementConverter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- MaterialElementConverter.java	15 Mar 2007 02:09:15 -0000	1.1
+++ MaterialElementConverter.java	22 May 2007 20:02:05 -0000	1.2
@@ -50,11 +50,5 @@
 		else {
 			throw new JDOMException("Invalid element <" + element.getName() + "> for MaterialElementConverter.");
 		}
-	}
-	
-	private static final String elementString = "element";
-	public String getElementName()
-	{
-		return elementString;
-	}
+	}	
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector/converter/lcdd
MaterialMixtureConverter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- MaterialMixtureConverter.java	15 Mar 2007 02:09:15 -0000	1.1
+++ MaterialMixtureConverter.java	22 May 2007 20:02:05 -0000	1.2
@@ -144,13 +144,7 @@
 		else {
 			throw new JDOMException("Invalid element <" + element.getName() + "> for MaterialMixtureConverter.");
 		}
-	}
-	
-	private static final String elementString = "material";
-	public String getElementName()
-	{
-		return elementString;
-	}
+	}	
 }
 
 /*

GeomConverter/src/org/lcsim/detector/identifier
IIdentifiable.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- IIdentifiable.java	11 May 2007 00:21:09 -0000	1.4
+++ IIdentifiable.java	22 May 2007 20:02:05 -0000	1.5
@@ -1,17 +1,12 @@
 package org.lcsim.detector.identifier;
 
 /**
- * A mix-in interface for objects that have an associated
- * 64-bit detector identifier or {@link IIdentifier}.
- * 
- * Each {@link IIdentifiable} object can also return the
- * unpacked {@link IExpandedIdentifier} object and the
- * {@link IIdentifierHelper} that contains the 
- * {@link IIdentifierDictionary} for packing and
- * unpacking identifiers of this object.
+ * A mix-in interface for objects that have an associated {@link IIdentifier},
+ * corresponding {@IExpandedIdentifier}, and an {@link IIdentifierHelper}
+ * for performing pack and unpack operations on these objects.
  *  
- * @author jeremym
- * @version $Id: IIdentifiable.java,v 1.4 2007/05/11 00:21:09 jeremy Exp $
+ * @author Jeremy McCormick
+ * @version $Id: IIdentifiable.java,v 1.5 2007/05/22 20:02:05 jeremy Exp $
  */
 public interface IIdentifiable 
 {

GeomConverter/src/org/lcsim/detector/identifier
IIdentifierDictionary.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- IIdentifierDictionary.java	18 May 2007 23:47:33 -0000	1.4
+++ IIdentifierDictionary.java	22 May 2007 20:02:05 -0000	1.5
@@ -3,12 +3,12 @@
 import java.util.Map;
 
 /**
- * Holds the specification for the fields of an identifier.
+ * Holds an ordered and mapped list of {@IIdentifierField} objects
+ * that define the fields of an [log in to unmask]
  *
  * @author Jeremy McCormick
- * @version $Id: IIdentifierDictionary.java,v 1.4 2007/05/18 23:47:33 jeremy Exp $
+ * @version $Id: IIdentifierDictionary.java,v 1.5 2007/05/22 20:02:05 jeremy Exp $
  */
-
 public interface IIdentifierDictionary
 {
     /**

GeomConverter/src/org/lcsim/detector/identifier
IdentifierHelper.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- IdentifierHelper.java	19 May 2007 00:39:51 -0000	1.8
+++ IdentifierHelper.java	22 May 2007 20:02:05 -0000	1.9
@@ -2,10 +2,10 @@
 
 /**
  * 
- *  Implementation of {@link IIdentifierHelper}.
+ * Implementation of {@link IIdentifierHelper}.
  *
  * @author Jeremy McCormick
- * @version $Id: IdentifierHelper.java,v 1.8 2007/05/19 00:39:51 jeremy Exp $
+ * @version $Id: IdentifierHelper.java,v 1.9 2007/05/22 20:02:05 jeremy Exp $
  */
 
 public class IdentifierHelper

GeomConverter/src/org/lcsim/geometry
Calorimeter.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- Calorimeter.java	8 Feb 2006 01:01:38 -0000	1.12
+++ Calorimeter.java	22 May 2007 20:02:06 -0000	1.13
@@ -1,5 +1,4 @@
 package org.lcsim.geometry;
-import org.lcsim.geometry.subdetector.CalorimeterType;
 
 /**
  * 
@@ -7,5 +6,5 @@
  */
 public interface Calorimeter extends Subdetector
 {	   
-	public CalorimeterType getCalorimeterType();
+	//public CalorimeterType getCalorimeterType();
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/geometry
Subdetector.java 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- Subdetector.java	11 May 2007 00:21:09 -0000	1.20
+++ Subdetector.java	22 May 2007 20:02:06 -0000	1.21
@@ -1,7 +1,6 @@
 package org.lcsim.geometry;
 
 import org.lcsim.detector.IDetectorElement;
-import org.lcsim.geometry.compact.ParameterSet;
 import org.lcsim.geometry.compact.VisAttributes;
 import org.lcsim.geometry.layer.Layering;
 
@@ -22,7 +21,7 @@
      */
     @Deprecated
     public Layering getLayering();
-    public ParameterSet getParameterSet();
+    //public ParameterSet getParameterSet();
     public VisAttributes getVisAttributes();
            
     public boolean isTracker();

GeomConverter/src/org/lcsim/geometry/compact
Subdetector.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- Subdetector.java	20 Apr 2007 00:16:54 -0000	1.18
+++ Subdetector.java	22 May 2007 20:02:06 -0000	1.19
@@ -22,7 +22,7 @@
     private Readout readout;
     private String  name;
     private int     systemID;
-    private ParameterSet _parameters;
+    //private ParameterSet _parameters;
     private VisAttributes vis;
     private Element node;
     private IDetectorElement de;
@@ -43,7 +43,7 @@
         if (id != null) systemID = id.getIntValue();
         
         // Setup the generic parameters
-        _parameters = new ParameterSet(element);
+        //_parameters = new ParameterSet(element);
     }
     
     protected void setReadout(Readout r)
@@ -61,6 +61,7 @@
         return readout;
     }
     
+    /*
     public void setParameters(ParameterSet parameters)
     {
         _parameters = parameters;
@@ -70,6 +71,7 @@
     {
         return _parameters;
     }
+    */
     
     public IDDecoder getIDDecoder()
     {

GeomConverter/src/org/lcsim/geometry/subdetector
AbstractCalorimeter.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- AbstractCalorimeter.java	9 Apr 2007 21:05:30 -0000	1.6
+++ AbstractCalorimeter.java	22 May 2007 20:02:07 -0000	1.7
@@ -9,43 +9,19 @@
 import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.lcsim.geometry.Calorimeter;
-import org.lcsim.geometry.subdetector.CalorimeterType;
 
 /**
  *
- * @author jeremym
+ * @author Jeremy McCormick
  */
 abstract class AbstractCalorimeter
         extends AbstractLayeredSubdetector implements Calorimeter
-{
-    protected CalorimeterType _calType;
-    private static final String _typeParamStr = "CALTYPE";
-    
+{    
     public AbstractCalorimeter(Element node) throws JDOMException
     {
         super(node);                
-        
-        if ( getParameterSet().exists(_typeParamStr) )
-        {
-            String str = getParameterSet().getString(_typeParamStr);
-            _calType = CalorimeterType.convertStringToCalorimeterType(str);            
-        }
-        else {
-//        	System.err.println("WARNING: no CALTYPE specified for calorimeter " + node.getAttributeValue("name"));
-            _calType = CalorimeterType.UNKNOWN;
-        }       
     }
-    
-//    public CalorimeterIDDecoder getCalorimeterIDDecoder()
-//    {
-//        return (CalorimeterIDDecoder)(getReadout().getIDDecoder() );
-//    }
-    
-	public CalorimeterType getCalorimeterType()
-    {
-        return _calType;
-    }
-    
+       
     public boolean isCalorimeter()
     {
         return true;

GeomConverter/src/org/lcsim/geometry/subdetector
TestBeamCalorimeter.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- TestBeamCalorimeter.java	6 Mar 2007 20:22:27 -0000	1.7
+++ TestBeamCalorimeter.java	22 May 2007 20:02:07 -0000	1.8
@@ -1,10 +1,3 @@
-/*
- * TestBeamCalorimeter.java
- *
- * Created on September 2, 2005, 3:43 PM
- *
- */
-
 package org.lcsim.geometry.subdetector;
 
 import org.jdom.Element;
@@ -12,7 +5,7 @@
 import org.lcsim.geometry.Calorimeter;
 
 /**
- * @author jeremym
+ * @author Jeremy McCormick
  */
 public class TestBeamCalorimeter extends AbstractTestBeam
         implements Calorimeter
@@ -21,19 +14,9 @@
     {
         super(node);
     }
-    
-//    public CalorimeterIDDecoder getCalorimeterIDDecoder()
-//    {
-//        return (CalorimeterIDDecoder)(getReadout().getIDDecoder() );
-//    }
-    
+        
     public boolean isCalorimeter()
     {
         return true;
     }
-    
-    public CalorimeterType getCalorimeterType()
-    {
-        return CalorimeterType.UNKNOWN;
-    }
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/geometry/subdetector
CalorimeterType.java removed after 1.3
diff -N CalorimeterType.java
--- CalorimeterType.java	24 Feb 2007 00:46:03 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,139 +0,0 @@
-/*
- * CalorimeterType.java
- *
- * Created on January 17, 2006, 12:24 PM
- */
-
-package org.lcsim.geometry.subdetector;
-
-/**
- * 
- * This enum specifies the general type of a calorimeter Subdetector. 
- * Valid types include HCal, ECal, Muon, and FCal. It can be used to modify 
- * the behavior of algorithms that should only be performed on hits from 
- * certain types of calorimeters.
- * 
- * @author jeremym
- */
-// FIXME: Change this to SubdetectorType and add the trackers (only a few types)
-public enum CalorimeterType 
-{    
-    FCAL("FCAL"),
-    ECAL("ECAL"),
-    HCAL("HCAL"),
-    MUON("MUON"),
-    LUMI("LUMI"),
-    UNKNOWN("UNKNOWN");
-    
-    /* 
-     add for subdet type...
-     
-     vertex_detector
-     silicon_tracker
-     tpc
-     generic_tracker
-     
-     above should be...
-     
-     forward_calorimeter
-     em_calorimeter
-     had_calorimeter
-     muon_calorimeter
-     luminosity_monitor
-     generic_calorimeter
-     */
-        
-    String _typeName;
-    
-    CalorimeterType(String typeName)
-    {               
-    	_typeName = typeName;
-    }
-        
-    public static CalorimeterType convertStringToCalorimeterType(String str)
-    {
-        if ( str.compareToIgnoreCase("ecal") == 0 || str.compareToIgnoreCase("em") == 0 )
-        {
-        	return ECAL;        	
-        }    	
-        else if ( str.compareToIgnoreCase("fcal") == 0 )
-        {
-            return FCAL;
-        }
-        else if ( str.compareToIgnoreCase("hcal") == 0 || str.compareToIgnoreCase("had") == 0 )
-        {
-            return HCAL;
-        }
-        else if ( str.compareToIgnoreCase("muon") == 0 )
-        {
-            return MUON;
-        }
-        else if ( str.compareToIgnoreCase("lumi") == 0 )
-        {
-        	return LUMI;
-        }
-
-       	return UNKNOWN;
-    }
-    
-    public static String convertECalorimeterTypeToString(CalorimeterType caltype)
-    {
-    	if ( caltype == ECAL )
-    	{
-    		return "ECAL";    	
-    	}
-    	else if ( caltype == FCAL )
-    	{
-    		return "FCAL";
-    	}
-    	else if ( caltype == HCAL)
-    	{
-    		return "HCAL";
-    	}
-    	else if ( caltype == MUON)
-    	{
-    		return "MUON";
-    	}
-    	else if ( caltype == LUMI)
-    	{
-    		return "LUMI";
-    	}
-    	
-    	return "UNKNOWN";
-    }
-        
-    public String getTypeName()
-    {
-        return toString();
-    }
-    
-    public String toString()
-    {
-        return _typeName;
-    }
-        
-    public boolean isHcal()
-    {
-    	return this == HCAL;
-    }
-    
-    public boolean isEcal()
-    {
-    	return this == ECAL;
-    }
-    
-    public boolean isMuon()
-    {
-    	return this == MUON;
-    }
-    
-    public boolean isFcal()
-    {
-    	return this == FCAL;
-    }
-    
-    public boolean isUnknown()
-    {
-    	return this == UNKNOWN;
-    }
-}

GeomConverter/test/org/lcsim/detector
ParametersTest.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- ParametersTest.java	9 Apr 2007 21:05:32 -0000	1.1
+++ ParametersTest.java	22 May 2007 20:02:07 -0000	1.2
@@ -5,7 +5,7 @@
 
 public class ParametersTest extends TestCase
 {
-    private IParameters parameters = new Parameters();
+    private IParameters parameters = new Parameters("test");
     
     public ParametersTest(String name)
     {

GeomConverter/test/org/lcsim/detector/converter/compact
ParametersConverterTest.java added at 1.1
diff -N ParametersConverterTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ParametersConverterTest.java	22 May 2007 20:02:07 -0000	1.1
@@ -0,0 +1,81 @@
+package org.lcsim.detector.converter.compact;
+
+import java.io.InputStream;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.lcsim.detector.IParameters;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.GeometryReader;
+
+/**
+ * Tests {@link ParametersConverter} by reading the resource 
+ * ParametersConverterTest.xml and checking the converted values
+ * for correctness.
+ * 
+ * @author Jeremy McCormick
+ * @version $Id: ParametersConverterTest.java,v 1.1 2007/05/22 20:02:07 jeremy Exp $
+ */
+public class ParametersConverterTest
+extends TestCase
+{
+    private Detector detector;
+    
+	public ParametersConverterTest(String name)
+    {
+        super(name);
+    }
+    
+    public static junit.framework.Test suite()
+    {
+        return new TestSuite(ParametersConverterTest.class);
+    }
+    
+    private static final String resource = "/org/lcsim/detector/converter/compact/ParametersConverterTest.xml";    
+    public void setUp()
+    {
+        InputStream in = 
+            this.getClass().
+            getResourceAsStream(resource);
+        GeometryReader reader = new GeometryReader();
+        try {
+            detector = reader.read(in);
+        }
+        catch ( Throwable x )
+        {
+            throw new RuntimeException(x);
+        }
+    }
+    
+    public void testParameters() throws Exception
+    {
+        IParameters param = detector.getSubdetector("test").getDetectorElement().getParameters();
+        assertTrue( param != null );
+        
+        assertEquals(param.getIntegerParameter("int"), 1);
+        int[] intArray = param.getIntegerArrayParameter("intArray");
+        assertEquals(intArray[0], 1);
+        assertEquals(intArray[1], 2);
+        assertEquals(intArray[2], 3);
+        assertEquals(intArray[3], 4);
+        
+        assertEquals(param.getDoubleParameter("double"), 1.0);
+        double[] doubleArray = param.getDoubleArrayParameter("doubleArray");
+        assertEquals(doubleArray[0], 1.1);
+        assertEquals(doubleArray[1], 2.2);
+        assertEquals(doubleArray[2], 3.3);
+        assertEquals(doubleArray[3], 4.4);
+        
+        assertEquals(param.getBooleanParameter("boolean"), true);
+        boolean[] booleanArray = param.getBooleanArrayParameter("booleanArray");
+        assertEquals(booleanArray[0], true);
+        assertEquals(booleanArray[1], false);
+        
+        assertEquals(param.getStringParameter("string"), "foo");
+        String[] stringArray = param.getStringArrayParameter("stringArray");
+        assertEquals(stringArray[0], "foo");
+        assertEquals(stringArray[1], "bar");
+        assertEquals(stringArray[2], "baz");        
+    }    
+}
\ No newline at end of file

GeomConverter/test/org/lcsim/detector/converter/compact
ParametersConverterTest.xml added at 1.1
diff -N ParametersConverterTest.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ParametersConverterTest.xml	22 May 2007 20:02:07 -0000	1.1
@@ -0,0 +1,62 @@
+<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
+       xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
+
+	<info name="test_detector">
+		<comment>Compact file for testing org.lcsim.detector.</comment>
+	</info>
+
+	<!-- Constants -->
+	<define>
+
+		<!-- world -->
+		<constant name="world_side" value="30000" />
+		<constant name="world_x" value="world_side" />
+		<constant name="world_y" value="world_side" />
+		<constant name="world_z" value="world_side" />
+
+		<!-- tracking region -->
+		<constant name="tracking_region_radius" value="0.1*cm"/>
+		<constant name="tracking_region_zmax" value="0.1*cm"/>
+	</define>
+
+	<materials>
+	</materials>
+
+	<detectors>
+
+	<!-- Electromagnetic calorimeter -->
+
+		<detector id="1" name="test" type="CylindricalBarrelCalorimeter" readout="EcalBarrHits">
+			<dimensions inner_r = "100.0*cm" outer_z = "200.0*cm" />
+			<layer repeat="2">
+				<slice material = "Silicon" thickness = "10.0*cm" sensitive = "yes" />
+			</layer>
+			
+			<integerParameter      name="int">1</integerParameter>
+			<integerArrayParameter name="intArray">1 2 3 4</integerArrayParameter>
+			<doubleParameter       name="double">1.0</doubleParameter>
+			<doubleArrayParameter  name="doubleArray">1.1 2.2 3.3 4.4</doubleArrayParameter>
+			<booleanParameter      name="boolean">true</booleanParameter>
+			<booleanArrayParameter name="booleanArray">true false</booleanArrayParameter>
+			<stringParameter       name="string">foo</stringParameter>
+			<stringArrayParameter  name="stringArray">foo bar baz</stringArrayParameter>
+			
+		</detector>		
+	</detectors>
+
+	<readouts>
+		<readout name="EcalBarrHits">
+			<segmentation type="ProjectiveCylinder" thetaBins="1000" phiBins="2000"/>
+			<id>layer:7,system:3,barrel:3,theta:32:11,phi:11</id>
+		</readout>         
+   </readouts>
+
+    <fields>
+    	<field type="Solenoid" name="GlobalSolenoid"
+			   inner_field="5.0"
+               outer_field="-0.6"
+               zmax="1000"
+               outer_radius="(221.0+ 5.0 + 17.5 + 40./2.)*cm"/>  <!-- SolenoidCoilBarrel inner_radius + Al support + Oxygen gap + half coil-->
+   </fields>
+</lccdd>
\ No newline at end of file

GeomConverter/test/org/lcsim/geometry/compact
ParameterSetTest.xml removed after 1.3
diff -N ParameterSetTest.xml
--- ParameterSetTest.xml	16 Feb 2006 00:57:13 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,65 +0,0 @@
-<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
-       xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
-       xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
-
-  <!-- info tag containing author, version, time, unique id (url) -->
-  <info name="ParameterSetTest"       
-	author="Jeremy McCormick">        
-  </info>
-
-  <!-- Constants -->
-  <define>
-  
-    <constant name="cm" value="10"/>  
-    <!-- world -->
-    <constant name="world_side" value="15000" />
-    <constant name="world_x" value="world_side" />
-    <constant name="world_y" value="world_side" />
-    <constant name="world_z" value="world_side" />
-    
-    <!-- tracking region -->
-    <constant name="tracking_region_radius" value="127.0*cm"/>
-    <constant name="tracking_region_zmax" value="168.0*cm"/>    
-    
-  </define>
-
-  <materials>
-  </materials>
-  
-  <limits>
-  </limits>
-  
-  <regions>
-  </regions>
-  
-  <detectors>
-  
-    <detector id="0" name="ParameterSetTest" type="CylindricalBarrelCalorimeter" readout="EcalBarrHits">  
-         <dimensions inner_r = "127.0*cm" outer_z = "184.0*cm" />
-         <layer repeat="1">
-           <slice material = "Silicon" thickness = "0.04*cm" sensitive = "yes" />
-         </layer>
-         
-         <!-- test parameters with value attributes -->
-         <parameter name="p1" type="string" value="ecal" />
-         <parameter name="p2" type="double" value="2.0" />
-         <parameter name="p3" type="integer" value="1" />
-         
-         <!-- test parameters with text data -->
-         <parameter name="p4" type="string">ecal</parameter>
-         <parameter name="p5" type="double">2.0</parameter>
-         <parameter name="p6" type="integer">1</parameter>
-         
-    </detector> 
-  </detectors> 
-
-  <readouts>
-         <readout name="EcalBarrHits"> 
-             <segmentation type="ProjectiveCylinder" thetaBins="840" phiBins="1680"/>
-             <id>layer:7,system:3,barrel:3,theta:32:11,phi:11</id>
-         </readout>
-   </readouts>
-   
-   <fields>
-   </fields>
-</lccdd>

GeomConverter/test/org/lcsim/geometry/compact
ParameterSet_ClassTest.java removed after 1.2
diff -N ParameterSet_ClassTest.java
--- ParameterSet_ClassTest.java	16 May 2007 23:27:38 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@
-package org.lcsim.geometry.compact;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.lcsim.geometry.compact.ParameterSet;
-
-
-/**
- *
- * @author jeremym
- * @version $Id: ParameterSet_ClassTest.java,v 1.2 2007/05/16 23:27:38 jeremy Exp $
- */
-public class ParameterSet_ClassTest extends TestCase
-{
-    public ParameterSet_ClassTest()
-    {
-    }
-    
-    public static junit.framework.Test suite()
-    {
-        return new TestSuite(ParameterSet_ClassTest.class);
-    }
-    
-    public static void testParameterSet() throws Exception
-    {        
-        ParameterSet parameterSet = new ParameterSet();
-        
-        String p1 = "xyz123";
-        int p2 = 1;
-        double p3 = 2.0;
-        
-        parameterSet.addParameter("string", p1);
-        parameterSet.addParameter("int", p2);
-        parameterSet.addParameter("double", p3);
-        
-        String p1_chk = parameterSet.getString("string");        
-        assertTrue(p1_chk != null);     
-        assertTrue(p1_chk.compareTo(p1) == 0);
-        
-        Integer p2_chk = parameterSet.getInteger("int");        
-        assertTrue(p2_chk != null);
-        assertTrue(p2_chk == 1);
-        
-        Double p3_chk = parameterSet.getDouble("double");                
-        assertTrue(p3_chk != null);
-        assertTrue(p3_chk == 2.0);
-        
-        p1_chk = (String)parameterSet.getParameter("string", String.class);
-        assertTrue(p1_chk != null);
-        
-        p2_chk = (Integer)parameterSet.getParameter("int", Integer.class);
-        assertTrue(p2_chk != null);
-        
-        p3_chk = (Double)parameterSet.getParameter("double", Double.class);
-        assertTrue(p3_chk != null);
-    }    
-}
-

GeomConverter/test/org/lcsim/geometry/compact
ParameterSet_XMLTest.java removed after 1.4
diff -N ParameterSet_XMLTest.java
--- ParameterSet_XMLTest.java	16 May 2007 23:27:38 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-package org.lcsim.geometry.compact;
-
-import java.io.IOException;
-import junit.framework.*;
-import java.io.InputStream;
-import org.jdom.JDOMException;
-import org.lcsim.util.xml.ElementFactory.ElementCreationException;
-
-/**
- *
- * @author tonyj
- */
-public class ParameterSet_XMLTest extends TestCase
-{
-    Detector det = null;
-    
-    public ParameterSet_XMLTest(String testName)
-    {
-        super(testName);
-    }
-    
-    public static Test suite()
-    {
-        return new TestSuite(ParameterSet_XMLTest.class);
-    }
-        
-    protected void setUp() throws Exception
-    {
-        InputStream in = ParameterSet_XMLTest.class.getResourceAsStream("ParameterSetTest.xml");
-        CompactReader reader = new CompactReader();
-        det = reader.read(in);
-    }
-           
-    public void testParameterSet()
-    {
-            Subdetector subdet = det.getSubdetector("ParameterSetTest");                                    
-            ParameterSet params = subdet.getParameterSet();
-            
-            assertTrue(params.getString("p1").compareTo("ecal") == 0);
-            assertTrue(params.getDouble("p2") == 2.0);
-            assertTrue(params.getInteger("p3") == 1);
-            assertTrue(params.getString("p4").compareTo("ecal") == 0);
-            assertTrue(params.getDouble("p5") == 2.0);
-            assertTrue(params.getInteger("p6") == 1);         
-            
-    }    
-}
\ No newline at end of file

GeomConverter/test/org/lcsim/geometry/subdetector
CalorimeterTypeTest.java removed after 1.2
diff -N CalorimeterTypeTest.java
--- CalorimeterTypeTest.java	16 May 2007 23:27:38 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,71 +0,0 @@
-/*
- * CylindricalBarrelCalorimeterTest.java
- *
- * Created on June 15, 2005, 12:00 PM
- */
-
-package org.lcsim.geometry.subdetector;
-
-import java.io.InputStream;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.lcsim.geometry.GeometryReader;
-import org.lcsim.geometry.compact.Detector;
-import org.lcsim.geometry.Calorimeter;
-
-/**
- *
- * @author jeremym
- */
-public class CalorimeterTypeTest extends TestCase
-{    
-	Detector det;
-	
-	/** Creates a new instance of CylindricalBarrelCalorimeterTest */
-    public CalorimeterTypeTest()
-    {
-    }
-    
-    protected void setUp() throws java.lang.Exception
-    {
-        InputStream in = this.getClass().getResourceAsStream("/org/lcsim/geometry/compact/sdjan03_compact.xml");
-        
-        GeometryReader reader = new GeometryReader();
-        det = reader.read(in);       
-    }
-    
-    public static junit.framework.Test suite()
-    {
-        return new TestSuite(CalorimeterTypeTest.class);
-    }
-    
-    public void testCalorimeterType()
-    {
-    	Calorimeter ecalBarr = (Calorimeter)det.getSubdetector("EMBarrel");
-    	Calorimeter ecalEndcap = (Calorimeter)det.getSubdetector("EMEndcap");
-    	
-    	Calorimeter hcalBarr = (Calorimeter)det.getSubdetector("HADBarrel2");
-    	Calorimeter hcalEndcap = (Calorimeter)det.getSubdetector("HAD_ENDCAP");
-    	
-    	Calorimeter muBarr = (Calorimeter)det.getSubdetector("MUON_BARREL");
-    	Calorimeter muEndcap = (Calorimeter)det.getSubdetector("MUON_ENDCAP");
-    
-    	assertTrue(ecalBarr.getCalorimeterType().isEcal());
-    	assertTrue(ecalBarr.getCalorimeterType() == CalorimeterType.ECAL);
-    	
-    	assertTrue(ecalEndcap.getCalorimeterType().isEcal());
-    	assertTrue(ecalEndcap.getCalorimeterType() == CalorimeterType.ECAL);
-    	
-    	assertTrue(hcalBarr.getCalorimeterType().isHcal());
-    	assertTrue(hcalBarr.getCalorimeterType() == CalorimeterType.HCAL);
-    	
-    	assertTrue(hcalEndcap.getCalorimeterType().isHcal());
-    	assertTrue(hcalEndcap.getCalorimeterType() == CalorimeterType.HCAL);
-    	
-    	assertTrue(muBarr.getCalorimeterType().isMuon());
-    	assertTrue(muBarr.getCalorimeterType() == CalorimeterType.MUON);
-    	
-    	assertTrue(muEndcap.getCalorimeterType().isMuon());
-    	assertTrue(muEndcap.getCalorimeterType() == CalorimeterType.MUON);
-    }
-}
CVSspam 0.2.8