GeomConverter/src/org/lcsim/geometry/subdetector
diff -u -r1.8 -r1.9
--- MultiLayerTracker.java 20 Jul 2005 19:11:59 -0000 1.8
+++ MultiLayerTracker.java 23 Jul 2005 00:42:23 -0000 1.9
@@ -1,83 +1,93 @@
-package org.lcsim.geometry.subdetector;
-
-import org.lcsim.geometry.subdetector.TrackerIDDecoder;
-
-import java.util.Iterator;
-import java.util.List;
-import org.jdom.DataConversionException;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-
-import hep.graphics.heprep.HepRep;
-import hep.graphics.heprep.HepRepFactory;
-import hep.graphics.heprep.HepRepInstance;
-import hep.graphics.heprep.HepRepInstanceTree;
-import hep.graphics.heprep.HepRepType;
-import hep.graphics.heprep.HepRepTypeTree;
-
-/**
- *
- * @author tonyj
- *
- */
-class MultiLayerTracker extends TrackerBase
-{
- private double[] innerR;
- private double[] outerZ;
- private double[] thickness;
-
- MultiLayerTracker(Element node) throws JDOMException
- {
- super(node);
- build(node);
- }
-
- public boolean isBarrel()
- {
- return true;
- }
-
- private void build(Element node) throws DataConversionException
- {
- List layers = node.getChildren("layer");
- int n = layers.size();
- innerR = new double[n];
- outerZ = new double[n];
- thickness = new double[n];
- for (int i=0; i<n; i++)
- {
- Element layer = (Element) layers.get(i);
- innerR[i] = layer.getAttribute("inner_r").getDoubleValue();
- outerZ[i] = layer.getAttribute("outer_z").getDoubleValue();
- thickness[i] = 0;
- for (Iterator iter = layer.getChildren("slice").iterator(); iter.hasNext();)
- {
- Element slice = (Element) iter.next();
- thickness[i] += slice.getAttribute("thickness").getDoubleValue();
- }
- }
- }
-
- public void appendHepRep(HepRepFactory factory, HepRep heprep)
- {
- HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
- HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
- HepRepType barrel = typeTree.getType("Barrel");
-
- HepRepType type = factory.createHepRepType(barrel, getName());
- type.addAttValue("drawAs","Cylinder");
-
- for (int i=0; i<innerR.length; i++)
- {
- HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
- instance.addAttValue("radius",innerR[i]);
- factory.createHepRepPoint(instance,0,0,-outerZ[i]);
- factory.createHepRepPoint(instance,0,0,outerZ[i]);
-
- HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
- instance2.addAttValue("radius",innerR[i]+thickness[i]);
- factory.createHepRepPoint(instance2,0,0,-outerZ[i]);
- factory.createHepRepPoint(instance2,0,0,outerZ[i]);
- }
- }
+package org.lcsim.geometry.subdetector;
+
+import org.lcsim.geometry.subdetector.TrackerIDDecoder;
+
+import java.util.Iterator;
+import java.util.List;
+import org.jdom.DataConversionException;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+
+import hep.graphics.heprep.HepRep;
+import hep.graphics.heprep.HepRepFactory;
+import hep.graphics.heprep.HepRepInstance;
+import hep.graphics.heprep.HepRepInstanceTree;
+import hep.graphics.heprep.HepRepType;
+import hep.graphics.heprep.HepRepTypeTree;
+
+/**
+ *
+ * @author tonyj
+ *
+ */
+public class MultiLayerTracker extends TrackerBase
+{
+ private double[] innerR;
+ private double[] outerZ;
+ private double[] thickness;
+
+ public double[] getInnerR()
+ {
+ return(innerR);
+ }
+
+ public double[] getOuterZ()
+ {
+ return(outerZ);
+ }
+
+ MultiLayerTracker(Element node) throws JDOMException
+ {
+ super(node);
+ build(node);
+ }
+
+ public boolean isBarrel()
+ {
+ return true;
+ }
+
+ private void build(Element node) throws DataConversionException
+ {
+ List layers = node.getChildren("layer");
+ int n = layers.size();
+ innerR = new double[n];
+ outerZ = new double[n];
+ thickness = new double[n];
+ for (int i=0; i<n; i++)
+ {
+ Element layer = (Element) layers.get(i);
+ innerR[i] = layer.getAttribute("inner_r").getDoubleValue();
+ outerZ[i] = layer.getAttribute("outer_z").getDoubleValue();
+ thickness[i] = 0;
+ for (Iterator iter = layer.getChildren("slice").iterator(); iter.hasNext();)
+ {
+ Element slice = (Element) iter.next();
+ thickness[i] += slice.getAttribute("thickness").getDoubleValue();
+ }
+ }
+ }
+
+ public void appendHepRep(HepRepFactory factory, HepRep heprep)
+ {
+ HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
+ HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
+ HepRepType barrel = typeTree.getType("Barrel");
+
+ HepRepType type = factory.createHepRepType(barrel, getName());
+ type.addAttValue("drawAs","Cylinder");
+
+ for (int i=0; i<innerR.length; i++)
+ {
+ HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
+ instance.addAttValue("radius",innerR[i]);
+ factory.createHepRepPoint(instance,0,0,-outerZ[i]);
+ factory.createHepRepPoint(instance,0,0,outerZ[i]);
+
+ HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
+ instance2.addAttValue("radius",innerR[i]+thickness[i]);
+ factory.createHepRepPoint(instance2,0,0,-outerZ[i]);
+ factory.createHepRepPoint(instance2,0,0,outerZ[i]);
+ }
+ }
}
\ No newline at end of file