GeomConverter/src/org/lcsim/geometry
diff -u -r1.25.2.2 -r1.25.2.3
--- Detector.java 28 Sep 2005 05:44:15 -0000 1.25.2.2
+++ Detector.java 28 Sep 2005 06:23:52 -0000 1.25.2.3
@@ -1,111 +1,17 @@
package org.lcsim.geometry;
-import org.lcsim.geometry.compact.Field;
-import org.lcsim.geometry.compact.Readout;
-import org.lcsim.geometry.subdetector.SubdetectorIDDecoder;
-
-import hep.graphics.heprep.HepRep;
-import hep.graphics.heprep.HepRepFactory;
-import hep.graphics.heprep.HepRepInstanceTree;
-import hep.graphics.heprep.HepRepTreeID;
-import hep.graphics.heprep.HepRepType;
-import hep.graphics.heprep.HepRepTypeTree;
import org.jdom.Element;
/**
- *
* @author tonyj
*/
-/* FIXME: Move impl to base class or org.lcsim.geometry.compact.Detector and change to interface. */
+/* NOTE: Moved all impl to BaseDetector for cleanup. */
+/* NOTE: This class created automatically by GeometryReader/GeometryFactory. */
public class Detector
- extends org.lcsim.geometry.compact.Detector
- implements HepRepProvider
-{
- private FieldMap fieldMap;
-
+ extends org.lcsim.geometry.util.BaseDetector
+{
Detector(Element node)
{
super(node);
}
-
- /* implements from DetectorElement */
- public String getName()
- {
- /* name from header in compact. */
- return getDetectorName();
- }
-
- public IDDecoder getDecoder(String readout)
- {
- Readout r = getReadouts().get(readout);
- return (r == null) ? null : r.getIDDecoder();
- }
-
- protected void addSubdetector(org.lcsim.geometry.compact.Subdetector sub)
- {
- super.addSubdetector(sub);
- setupSubdetectorIDDecoder(sub);
- //System.out.println("Added subdet: " + sub.getName() );
- }
-
- /* setup subdetector backlink in the IDDecoder */
- /*
- * FIXME: There is not a 1-to-1 between subdetectors and readouts.
- * Also, this function is just a hack to setup the IDDecoder. There
- * is probably a better way to do it.
- */
- private void setupSubdetectorIDDecoder(org.lcsim.geometry.compact.Subdetector subdet)
- {
- if ( subdet.getReadout() != null )
- {
- SubdetectorIDDecoder decoder = (SubdetectorIDDecoder)subdet.getSubdetectorIDDecoder();
-
- if ( decoder != null )
- {
- decoder.setSubdetector(subdet);
- }
- }
- }
-
- protected void addReadout(Readout r)
- {
- super.addReadout(r);
- }
-
- public FieldMap getFieldMap()
- {
- return fieldMap;
- }
-
- protected void addField(Field field)
- {
- super.addField(field);
- fieldMap = (FieldMap) field; // assumes single field for now
- }
-
- public void appendHepRep(HepRepFactory factory, HepRep heprep)
- {
- HepRepTreeID treeID = factory.createHepRepTreeID("DetectorType", "1.0");
- HepRepTypeTree typeTree = factory.createHepRepTypeTree(treeID);
- heprep.addTypeTree(typeTree);
-
- HepRepInstanceTree instanceTree = factory.createHepRepInstanceTree("Detector", "1.0", typeTree);
- heprep.addInstanceTree(instanceTree);
-
- String detectorLayer = "Detector";
- heprep.addLayer(detectorLayer);
-
- HepRepType barrel = factory.createHepRepType(typeTree, "Barrel");
- barrel.addAttValue("layer",detectorLayer);
- HepRepType endcap = factory.createHepRepType(typeTree, "Endcap");
- endcap.addAttValue("layer",detectorLayer);
-
- for (Object sub: getSubdetectors().values())
- {
- if (sub instanceof HepRepProvider)
- {
- ((HepRepProvider) sub).appendHepRep(factory,heprep);
- }
- }
- }
-}
+}
\ No newline at end of file
GeomConverter/src/org/lcsim/geometry/util
diff -N BaseDetector.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ BaseDetector.java 28 Sep 2005 06:23:52 -0000 1.1.2.1
@@ -0,0 +1,119 @@
+/*
+ * BaseDetector.java
+ *
+ * Created on September 27, 2005, 11:09 PM
+ */
+
+package org.lcsim.geometry.util;
+
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.geometry.compact.Field;
+import org.lcsim.geometry.compact.Readout;
+import org.lcsim.geometry.subdetector.SubdetectorIDDecoder;
+
+import org.lcsim.geometry.HepRepProvider;
+import hep.graphics.heprep.HepRep;
+import hep.graphics.heprep.HepRepFactory;
+import hep.graphics.heprep.HepRepInstanceTree;
+import hep.graphics.heprep.HepRepTreeID;
+import hep.graphics.heprep.HepRepType;
+import hep.graphics.heprep.HepRepTypeTree;
+import org.jdom.Element;
+import org.lcsim.geometry.FieldMap;
+
+/**
+ *
+ * @author jeremym
+ */
+public class BaseDetector
+ extends org.lcsim.geometry.compact.Detector
+ implements HepRepProvider
+{
+ private FieldMap fieldMap;
+
+ public BaseDetector(Element node)
+ {
+ super(node);
+ }
+
+ /* implements from DetectorElement */
+ public String getName()
+ {
+ /* name from header in compact. */
+ return getDetectorName();
+ }
+
+ public IDDecoder getDecoder(String readout)
+ {
+ Readout r = getReadouts().get(readout);
+ return (r == null) ? null : r.getIDDecoder();
+ }
+
+ protected void addSubdetector(org.lcsim.geometry.compact.Subdetector sub)
+ {
+ super.addSubdetector(sub);
+ setupSubdetectorIDDecoder(sub);
+ //System.out.println("Added subdet: " + sub.getName() );
+ }
+
+ /* setup subdetector backlink in the IDDecoder */
+ /*
+ * FIXME: There is not a 1-to-1 between subdetectors and readouts.
+ * Also, this function is just a hack to setup the IDDecoder. There
+ * is probably a better way to do it.
+ */
+ private void setupSubdetectorIDDecoder(org.lcsim.geometry.compact.Subdetector subdet)
+ {
+ if ( subdet.getReadout() != null )
+ {
+ SubdetectorIDDecoder decoder = (SubdetectorIDDecoder)subdet.getSubdetectorIDDecoder();
+
+ if ( decoder != null )
+ {
+ decoder.setSubdetector(subdet);
+ }
+ }
+ }
+
+ protected void addReadout(Readout r)
+ {
+ super.addReadout(r);
+ }
+
+ public FieldMap getFieldMap()
+ {
+ return fieldMap;
+ }
+
+ protected void addField(Field field)
+ {
+ super.addField(field);
+ fieldMap = (FieldMap) field; // assumes single field for now
+ }
+
+ public void appendHepRep(HepRepFactory factory, HepRep heprep)
+ {
+ HepRepTreeID treeID = factory.createHepRepTreeID("DetectorType", "1.0");
+ HepRepTypeTree typeTree = factory.createHepRepTypeTree(treeID);
+ heprep.addTypeTree(typeTree);
+
+ HepRepInstanceTree instanceTree = factory.createHepRepInstanceTree("Detector", "1.0", typeTree);
+ heprep.addInstanceTree(instanceTree);
+
+ String detectorLayer = "Detector";
+ heprep.addLayer(detectorLayer);
+
+ HepRepType barrel = factory.createHepRepType(typeTree, "Barrel");
+ barrel.addAttValue("layer",detectorLayer);
+ HepRepType endcap = factory.createHepRepType(typeTree, "Endcap");
+ endcap.addAttValue("layer",detectorLayer);
+
+ for (Object sub: getSubdetectors().values())
+ {
+ if (sub instanceof HepRepProvider)
+ {
+ ((HepRepProvider) sub).appendHepRep(factory,heprep);
+ }
+ }
+ }
+}
\ No newline at end of file