Print

Print


Author: [log in to unmask]
Date: Fri Apr 24 21:22:29 2015
New Revision: 3592

Log:
New converter. Had to adjust some old structures to be able to override.

Added:
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014v1Converter.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1JavaBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1LCDDBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/subdetector/HPSTracker2014v1.java
    projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1LCDDTest.java
    projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HPSTracker2014v1.xml
Modified:
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/DetectorConverter.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014ConverterBase.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014JavaBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014LCDDBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014JavaBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerJavaBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerLCDDBuilder.java
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014Base.java
    projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014LCDDTest.java

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/DetectorConverter.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/DetectorConverter.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/DetectorConverter.java	Fri Apr 24 21:22:29 2015
@@ -116,6 +116,7 @@
         addSubdetectorConverter(new HPSMuonCalorimeterConverter());
         addSubdetectorConverter(new HPSTestRunTracker2014Converter());
         addSubdetectorConverter(new HPSTracker2014Converter());
+        addSubdetectorConverter(new HPSTracker2014v1Converter());
 
         // Support structures.
         addSubdetectorConverter(new PolyconeSupportConverter());

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014ConverterBase.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014ConverterBase.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014ConverterBase.java	Fri Apr 24 21:22:29 2015
@@ -339,6 +339,7 @@
         // The sensorNumber is always 0 in the old geometry. Keep it that way.
         int sensorNumber = 0;
         expId.setValue(iddict.getFieldIndex("sensor"), sensorNumber);
+        
 
         // Packed identifier.
         IIdentifier sensorId = iddict.pack(expId);
@@ -349,10 +350,13 @@
         String sensorPath = modulePath.toString() + "/" + componentPhysVol.getName() + "/" + sensorPhysVol.getName();
         String sensorName = moduleDe.getName() + "_sensor" + sensorNumber;
 
-        if(_debug) System.out.printf("%s: create HpsSiSensor with sensorNumber %d name %s moduleDe %s sensorPath %s sensor Id %d \n", getClass().getSimpleName(), 
-                sensorNumber, sensorName, moduleDe.getName(), sensorPath, sensorNumber);
-
-
+        if(_debug) {
+            System.out.printf("%s: create HpsSiSensor with old layer id %d with sensorNumber %d name %s moduleDe %s sensorPath %s sensor Id %d \n", getClass().getSimpleName(), 
+                                layerDe.getIdentifier(),sensorNumber, sensorName, moduleDe.getName(), sensorPath, sensorNumber);
+        }
+        System.out.printf("%s: HpsSiSensor old layer id %d and module nr %d and sensor nr %d <-> DE name %s \n", getClass().getSimpleName(), 
+                builder.getDetectorIdentifierHelper().getValue(layerDe.getIdentifier(), "layer"), ((SiTrackerModule) moduleDe).getModuleId(), sensorNumber,sensorName);
+        
         // Create the sensor.
         int millepedeLayer = builder._builder.getMillepedeLayer(sensorName);
         HpsSiSensor sensor = createSiSensor(sensorNumber, sensorName, moduleDe, sensorPath, sensorId);

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014v1Converter.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014v1Converter.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTracker2014v1Converter.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,29 @@
+package org.lcsim.detector.converter.compact;
+
+import org.jdom.Element;
+import org.lcsim.geometry.compact.converter.HPSTracker2014v1JavaBuilder;
+import org.lcsim.geometry.compact.converter.HPSTrackerJavaBuilder;
+import org.lcsim.geometry.subdetector.HPSTracker2014v1;
+
+public class HPSTracker2014v1Converter extends HPSTracker2014Converter {
+
+    public HPSTracker2014v1Converter() {
+        super();
+    }
+    
+    /* (non-Javadoc)
+     * @see org.lcsim.detector.converter.compact.HPSTracker2014ConverterBase#initializeBuilder(org.jdom.Element)
+     */
+    protected HPSTrackerJavaBuilder initializeBuilder(Element node) {
+       return new HPSTracker2014v1JavaBuilder(_debug, node);
+    }
+
+    /* (non-Javadoc)
+     * @see org.lcsim.detector.converter.compact.AbstractSubdetectorConverter#getSubdetectorType()
+     */
+    public Class getSubdetectorType() {
+        return HPSTracker2014v1.class;
+    }
+
+    
+}

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014JavaBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014JavaBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014JavaBuilder.java	Fri Apr 24 21:22:29 2015
@@ -47,7 +47,7 @@
 	public void build(ILogicalVolume trackingVolume) {
 
 		// build geometry
-        setBuilder(new HPSTestRunTracker2014GeometryDefinition(this._debug, node));
+        setBuilder(createGeometryDefinition(_debug, node));
 		
 		if(_builder==null) throw new RuntimeException("need to set builder class before calling build!");
 
@@ -199,6 +199,13 @@
 	}
 
 
+
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug, Element node) {
+        return new HPSTestRunTracker2014GeometryDefinition(debug, node);
+    }
+
+
 	
 	
 	

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014LCDDBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014LCDDBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014LCDDBuilder.java	Fri Apr 24 21:22:29 2015
@@ -32,13 +32,13 @@
 
 	
 	public void setBuilder() {
-	    setBuilder(new HPSTestRunTracker2014GeometryDefinition(_debug, node));
+	    setBuilder();
 	}
 	
 	public void build(Volume worldVolume) {
 		
 		// set and build geometry
-        setBuilder();
+        setBuilder(createGeometryDefinition(_debug, node));
         
 		if(_builder==null) throw new RuntimeException("need to set builder class before calling build!");
 
@@ -169,33 +169,14 @@
 		LCDDSurveyVolume lcddH = new LCDDSurveyVolume(bundle.hybrid, lcdd, lcddHM);
 		add(lcddH);
 
-	}	
+	}
 
-/*
-	public void setVisualization() {
 
-		if(isDebug()) System.out.printf("%s: Set LCDD visualization for %d LCDD geometry objects \n", getClass().getSimpleName(), lcddSurveyVolumes.size());
-		for(SurveyVolumeImpl g : lcddSurveyVolumes) {
-			if(isDebug()) System.out.printf("%s: Set LCDD vis for %s \n", getClass().getSimpleName(), g.getName());			
-			if(g.getName().endsWith("baseplate")) g.setVisName("BasePlateVis");
-			//else if(g.getName().contains("base")) g.setVisName("BaseVis");
-			else if(g.getName().endsWith("support_bottom") || g.getName().contains("support_top")) g.setVisName("SupportVolumeVis");
-			else if(g.getName().endsWith("support_plate_bottom") || g.getName().contains("support_plate_top")) g.setVisName("SupportPlateVis");
-			else if(g.getName().endsWith("halfmodule_axial")) g.setVisName("HalfModuleVis");
-			else if(g.getName().endsWith("halfmodule_stereo")) g.setVisName("HalfModuleVis");
-			else if(g.getName().endsWith("module")) g.setVisName("ModuleVis");
-			else if(g.getName().endsWith("cold")) g.setVisName("ColdBlockVis");
-			else if(g.getName().endsWith("lamination")) g.setVisName("KaptonVis");
-			else if(g.getName().endsWith("sensor")) g.setVisName("SensorVis");
-			else if(g.getName().endsWith("sensor_active")) g.setVisName("SensorVis");
-			else if(g.getName().endsWith("cf")) g.setVisName("CarbonFiberVis");
-			else if(g.getName().endsWith("hybrid")) g.setVisName("HybridVis");
-			else {
-				if(isDebug()) System.out.printf("%s: No LCDD vis for %s \n", getClass().getSimpleName(), g.getName());
-			}
-		}
-		if(isDebug()) System.out.printf("%s: DONE Set LCDD vis \n", getClass().getSimpleName());
-	}
-*/
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug,
+            Element node) {
+        return new HPSTestRunTracker2014GeometryDefinition(_debug, node);
+    }	
+
 
 }

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java	Fri Apr 24 21:22:29 2015
@@ -24,7 +24,7 @@
  * @author Per Hansson Adrian <[log in to unmask]>
  *
  */
-public class HPSTracker2014GeometryDefinition extends HPSTrackerGeometryDefinition {
+ public class HPSTracker2014GeometryDefinition extends HPSTrackerGeometryDefinition {
 
 
 
@@ -1649,7 +1649,6 @@
 
 
 
-    
     public static class LongAxialHoleHalfModule extends LongHalfModule {
 
         private final static double sensor_x = 1.382*inch;
@@ -1671,8 +1670,8 @@
     }
 
 
-
-
+    
+    
     public static class LongAxialSlotHalfModule extends LongHalfModule {
 
         private final static double sensor_x = 1.382*inch;
@@ -2121,7 +2120,7 @@
                 halfModule = new LongAxialHoleHalfModule(volName, mother, alignmentCorrection, layer, half);
                 bundle.halfModuleAxialHole = halfModuleBundle;
             } else {
-                halfModule = new LongAxialSlotHalfModule(volName, mother, alignmentCorrection, layer, half);
+                halfModule = createLongAxialSlotHalfModule(volName, mother, alignmentCorrection, layer, half);
                 bundle.halfModuleAxialSlot = halfModuleBundle;
             }
         } else {
@@ -2130,7 +2129,7 @@
                 halfModule = new LongStereoHoleHalfModule(volName, mother, alignmentCorrection, layer, half);
                 bundle.halfModuleStereoHole = halfModuleBundle;
             } else {
-                halfModule = new LongStereoSlotHalfModule(volName, mother, alignmentCorrection, layer, half);
+                halfModule = createLongStereoSlotHalfModule(volName, mother, alignmentCorrection, layer, half);
                 bundle.halfModuleStereoSlot = halfModuleBundle;
             }
         } 
@@ -2191,6 +2190,18 @@
             int layer, String half) {
         return new HalfModuleStereo(volName, mother, alignmentCorrection, layer, half);
         
+    }
+    
+    protected LongHalfModule createLongAxialSlotHalfModule(String name, SurveyVolume mother,
+            AlignmentCorrection alignmentCorrection, int layer,
+            String half) {
+        return new LongAxialSlotHalfModule(name, mother, alignmentCorrection, layer, half);
+    }
+
+    protected LongHalfModule createLongStereoSlotHalfModule(String name, SurveyVolume mother,
+            AlignmentCorrection alignmentCorrection, int layer,
+            String half) {
+        return new LongStereoSlotHalfModule(name, mother, alignmentCorrection, layer, half);
     }
     
     

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014JavaBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014JavaBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014JavaBuilder.java	Fri Apr 24 21:22:29 2015
@@ -40,6 +40,7 @@
 	
 	
 	
+	
 	/**
 	 * Build the JAVA geometry objects from the geometry definition.
 	 * @param trackingVolume - the reference volume.
@@ -47,7 +48,7 @@
 	public void build(ILogicalVolume trackingVolume) {
 
 		// build geometry
-        setBuilder(new HPSTracker2014GeometryDefinition(this._debug, node));
+        setBuilder(createGeometryDefinition(this._debug, node));
 		
 		if(_builder==null) throw new RuntimeException("need to set builder class before calling build!");
 
@@ -191,8 +192,10 @@
         
     }
 	
-
-	
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug, Element node) {
+        return new HPSTracker2014GeometryDefinition(debug, node);
+    }
 	
 	
 

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java	Fri Apr 24 21:22:29 2015
@@ -37,7 +37,7 @@
      * @see org.lcsim.geometry.compact.converter.HPSTestRunTracker2014LCDDBuilder#setBuilder()
      */
     public void setBuilder() {
-        setBuilder(new HPSTracker2014GeometryDefinition(_debug, node));
+        setBuilder(createGeometryDefinition(_debug, node));
     }
     
     /* (non-Javadoc)
@@ -236,5 +236,11 @@
         add(lcddH);
 */
     }   
+    
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug,
+            Element node) {
+        return new HPSTracker2014GeometryDefinition(_debug, node);
+    }
 
 }

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,88 @@
+package org.lcsim.geometry.compact.converter;
+
+import org.apache.commons.math3.geometry.euclidean.threed.Rotation;
+import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
+import org.jdom.Element;
+
+/**
+ * 
+ * Updated geometry information for the HPS tracker 2014
+
+ * @author Per Hansson Adrian <[log in to unmask]>
+ *
+ */
+public class HPSTracker2014v1GeometryDefinition extends HPSTracker2014GeometryDefinition {
+
+    public HPSTracker2014v1GeometryDefinition(boolean debug, Element node) {
+        super(debug, node);
+    }
+
+    public static class LongAxialSlotHalfModule extends HPSTracker2014GeometryDefinition.LongAxialSlotHalfModule  {
+
+        public LongAxialSlotHalfModule(String name, SurveyVolume mother,
+                AlignmentCorrection alignmentCorrection, int layer,
+                String half) {
+            super(name, mother, alignmentCorrection, layer, half);
+        }
+       
+        @Override
+        protected void applyGenericCoordinateSystemCorrections() {
+            super.applyGenericCoordinateSystemCorrections();
+            // apply 180 degree rotation around w ~ normal to the sensor plane
+            if(debug) System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString());
+            if(debug) System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString());
+            getCoord().rotateApache(getSlotRotation());
+            if(debug) System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString());
+            if(debug) System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString());
+        }
+    }
+    
+    public static class LongStereoSlotHalfModule extends HPSTracker2014GeometryDefinition.LongStereoSlotHalfModule {
+
+        public LongStereoSlotHalfModule(String name, SurveyVolume mother,
+                AlignmentCorrection alignmentCorrection, int layer, String half) {
+            super(name, mother, alignmentCorrection, layer, half);
+        }
+        
+        @Override
+        protected void applyGenericCoordinateSystemCorrections() {
+            // TODO Auto-generated method stub
+            super.applyGenericCoordinateSystemCorrections();
+            // apply 180 degree rotation around w ~ normal to the sensor plane
+            if(debug) System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString());
+            if(debug) System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString());
+            getCoord().rotateApache(getSlotRotation());
+            if(debug) System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString());
+            if(debug) System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString());
+        }
+    }
+
+    @Override
+    protected LongHalfModule createLongAxialSlotHalfModule(String name, SurveyVolume mother, 
+                                                            AlignmentCorrection alignmentCorrection, 
+                                                            int layer, String half) {
+        return new LongAxialSlotHalfModule(name, mother, alignmentCorrection, layer, half);
+    }
+    
+    @Override
+    protected LongHalfModule createLongStereoSlotHalfModule(String name,
+            SurveyVolume mother, AlignmentCorrection alignmentCorrection,
+            int layer, String half) {
+        
+        // TODO Auto-generated method stub
+        return super.createLongStereoSlotHalfModule(name, mother, alignmentCorrection,
+                layer, half);
+    }
+
+    
+    /**
+     * PI rotation around generic z-axis
+     * @return
+     */
+    private static Rotation getSlotRotation() {
+        return new Rotation(new Vector3D(0,0,1),Math.PI);
+    }
+    
+
+    
+}

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1JavaBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1JavaBuilder.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1JavaBuilder.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,17 @@
+package org.lcsim.geometry.compact.converter;
+
+import org.jdom.Element;
+
+public class HPSTracker2014v1JavaBuilder extends HPSTracker2014JavaBuilder {
+
+    public HPSTracker2014v1JavaBuilder(boolean debugFlag, Element node) {
+        super(debugFlag, node);
+    }
+
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug, Element node) {
+        return new HPSTracker2014v1GeometryDefinition(debug, node);
+    }
+    
+    
+}

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1LCDDBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1LCDDBuilder.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1LCDDBuilder.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,23 @@
+package org.lcsim.geometry.compact.converter;
+
+import org.jdom.Element;
+import org.lcsim.geometry.compact.converter.lcdd.util.LCDD;
+import org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector;
+
+public class HPSTracker2014v1LCDDBuilder extends HPSTracker2014LCDDBuilder {
+
+    public HPSTracker2014v1LCDDBuilder(boolean debugFlag, Element node,
+            LCDD lcdd, SensitiveDetector sens) {
+        super(debugFlag, node, lcdd, sens);
+    }
+
+    public void setBuilder() {
+        setBuilder(createGeometryDefinition(_debug, node));
+    }
+    
+    @Override
+    public HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug,
+        Element node) {
+        return new HPSTracker2014v1GeometryDefinition(_debug, node);
+    }
+}

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerJavaBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerJavaBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerJavaBuilder.java	Fri Apr 24 21:22:29 2015
@@ -33,6 +33,7 @@
 	}	
 	
 	public abstract void build(ILogicalVolume trackingVolume);
+	public abstract HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug, Element node);
 
 	
 	/**

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerLCDDBuilder.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerLCDDBuilder.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerLCDDBuilder.java	Fri Apr 24 21:22:29 2015
@@ -35,6 +35,8 @@
 
     
     public abstract void setBuilder();
+    
+    public abstract HPSTrackerGeometryDefinition createGeometryDefinition(boolean debug, Element node);
 	
 
 	public void setNode(Element node) {

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014Base.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014Base.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014Base.java	Fri Apr 24 21:22:29 2015
@@ -32,7 +32,7 @@
  */
 public abstract class HPSTracker2014Base extends LCDDSubdetector {
 
-    protected boolean _debug = false;
+    protected boolean _debug = true;
     protected static HPSTrackerLCDDBuilder builder;
     private final boolean buildBeamPlane = false;
     private final double beamPlaneWidth = 385.00;

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,26 @@
+package org.lcsim.geometry.compact.converter.lcdd;
+
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.lcsim.geometry.compact.converter.HPSTracker2014v1LCDDBuilder;
+import org.lcsim.geometry.compact.converter.HPSTrackerLCDDBuilder;
+import org.lcsim.geometry.compact.converter.lcdd.util.LCDD;
+import org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector;
+
+public class HPSTracker2014v1 extends HPSTracker2014
+{
+    public HPSTracker2014v1(Element node) throws JDOMException
+    {
+        super(node);
+    }
+
+    /* (non-Javadoc)
+     * @see org.lcsim.geometry.compact.converter.lcdd.HPSTracker2014Base#initializeBuilder(org.lcsim.geometry.compact.converter.lcdd.util.LCDD, org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector)
+     */
+    protected HPSTrackerLCDDBuilder initializeBuilder(LCDD lcdd, SensitiveDetector sens) {
+        return new HPSTracker2014v1LCDDBuilder(_debug,node,lcdd,sens);
+    }
+
+    
+    
+}

Added: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/subdetector/HPSTracker2014v1.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/subdetector/HPSTracker2014v1.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/subdetector/HPSTracker2014v1.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,30 @@
+package org.lcsim.geometry.subdetector;
+
+import hep.graphics.heprep.HepRep;
+import hep.graphics.heprep.HepRepFactory;
+
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.lcsim.detector.converter.heprep.DetectorElementToHepRepConverter;
+
+public class HPSTracker2014v1 extends AbstractTracker {
+    
+    public HPSTracker2014v1(Element node) throws JDOMException 
+    {
+        super(node);
+    }
+
+    public void appendHepRep(HepRepFactory factory, HepRep heprep) 
+    {
+        DetectorElementToHepRepConverter.convert(getDetectorElement(), factory, heprep, -1, false, getVisAttributes().getColor());
+    }
+    
+    public boolean isEndcap() {
+        return false;
+    }
+    
+    public boolean isBarrel() {
+        return true;
+    }
+
+}

Modified: projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014LCDDTest.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014LCDDTest.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014LCDDTest.java	Fri Apr 24 21:22:29 2015
@@ -28,7 +28,7 @@
    
    public void test_converter() throws Exception
    {
-       InputStream in = HPSTestRunTracker2014.class.getResourceAsStream("/org/lcsim/geometry/subdetector/HPSTracker2014.xml");
+       InputStream in = HPSTracker2014.class.getResourceAsStream("/org/lcsim/geometry/subdetector/HPSTracker2014.xml");
        OutputStream out = new BufferedOutputStream(new FileOutputStream(new TestOutputFile("HPSTracker2014.lcdd")));
        new Main().convert("HPSTracker2014",in,out);
    }

Added: projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1LCDDTest.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1LCDDTest.java	(added)
+++ projects/lcsim/trunk/detector-framework/src/test/java/org/lcsim/geometry/compact/converter/lcdd/HPSTracker2014v1LCDDTest.java	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,35 @@
+package org.lcsim.geometry.compact.converter.lcdd;
+
+import java.io.BufferedOutputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+*
+* @author Per Hansson Adrian <[log in to unmask]>
+*/
+public class HPSTracker2014v1LCDDTest extends TestCase
+{    
+   public HPSTracker2014v1LCDDTest(String name)
+   {
+   	super(name);
+   }
+   
+   public static TestSuite suite()
+   {
+       return new TestSuite(HPSTracker2014v1LCDDTest.class);
+   }
+   
+   public void test_converter() throws Exception
+   {
+       InputStream in = HPSTracker2014v1.class.getResourceAsStream("/org/lcsim/geometry/subdetector/HPSTracker2014v1.xml");
+       OutputStream out = new BufferedOutputStream(new FileOutputStream(new TestOutputFile("HPSTracker2014v1.lcdd")));
+       new Main().convert("HPSTracker2014v1",in,out);
+   }
+}

Added: projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HPSTracker2014v1.xml
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HPSTracker2014v1.xml	(added)
+++ projects/lcsim/trunk/detector-framework/src/test/resources/org/lcsim/geometry/subdetector/HPSTracker2014v1.xml	Fri Apr 24 21:22:29 2015
@@ -0,0 +1,337 @@
+<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="HPSTracker2014v1">
+    <comment>SVT survey-based geometry for 2014 proposal</comment>
+  </info>
+  
+  <define>
+    <!-- units -->
+    <constant name="mm" value="0.1*cm"/>
+    <constant name="inch" value="25.4*mm"/>
+
+    <!-- world -->
+    <constant name="world_side" value="500.0*cm" />
+    <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="200.0*cm"/>
+    <constant name="tracking_region_min" value="5.0*cm"/>
+    <constant name="tracking_region_zmax" value="131.8*cm"/>
+ 
+ 
+  </define>
+  
+  <materials>
+    <!-- Set tracking material to vacuum. -->
+    <material name="TrackingMaterial">
+      <D type="density" unit="g/cm3" value="0.0000000000000001" />
+      <fraction n="1.0" ref="Vacuum" />
+    </material>
+  </materials>
+  
+  <display>
+    <vis name="SvtBoxVis" alpha="1.0" r="1.0" g="1.0" b="0.0" drawingStyle="wireframe" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="SensorVis" alpha="1.0" r="1.0" g="0.0" b="0.0" drawingStyle="wireframe" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="ActiveSensorVis" alpha="1.0" r="1.0" g="0.0" b="0.0" drawingStyle="solid" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="CarbonFiberVis" alpha="1.0" r="0.88" g="0.88" b="0.88" drawingStyle="solid" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="KaptonVis" alpha="1.0" r="0.91" g="0.77" b="0.06" drawingStyle="solid" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="HybridVis" alpha="1.0" r="0.0" g="1.0" b="0" drawingStyle="solid" lineStyle="unbroken" showDaughters="true" visible="true"/>
+    <vis name="HalfModuleVis" alpha="1.0" r="1.0" g="1.0" b="1.0" drawingStyle="wireframe" lineStyle="dashed" showDaughters="true" visible="true"/>
+    <vis name="ColdBlockVis" alpha="1.0" r="0.75" g="0.73" b="0.75" drawingStyle="solid" lineStyle="dashed" showDaughters="true" visible="true"/>
+    <vis name="ModuleVis" alpha="1.0" r="1.0" g="1.0" b="1.0" drawingStyle="wireframe" lineStyle="dotted" showDaughters="true" visible="true"/>
+    <vis name="SupportPlateVis" alpha="1.0" r="0.45" g="0.45" b="0.45" drawingStyle="solid" lineStyle="dashed" showDaughters="true" visible="true"/>
+    <vis name="SupportVolumeVis" alpha="1.0" r="0.75" g="0.73" b="0.75" drawingStyle="wireframe" lineStyle="dashed" showDaughters="true" visible="true"/>
+    <vis name="BasePlateVis" alpha="1.0" r="0.35" g="0.35" b="0.35" drawingStyle="solid" lineStyle="dashed" showDaughters="true" visible="true"/>
+    <vis name="LayerVis" alpha="0.0" r="0.0" g="0.0" b="1.0" drawingStyle="wireframe" showDaughters="true" visible="false"/>
+    <vis name="ComponentVis" alpha="0.0" r="0.0" g="0.2" b="0.4" drawingStyle="solid" showDaughters="false" visible="false"/>
+    <vis name="BeamPlaneVis" alpha="1.0" r="1.0" g="1.0" b="1.0" drawingStyle="solid" lineStyle="unbroken" showDaughters="false" visible="true"/>
+    
+  </display>
+  
+  <detectors>
+    <detector id="1" name="Tracker" type="HPSTracker2014v1" readout="TrackerHits">
+        <!-- 
+        <SurveyVolumes>
+            <SurveyVolume name="base_plate">
+            <SurveyPos>
+            <point name="ball"  x="0.0" y="0.0" z="0.0"/>
+                <point name="vee"   x="1.0" y="0.0" z="0.0"/>
+                <point name="flat"  x="0.0" y="1.0" z="0.0"/>     
+                </SurveyPos>
+            </SurveyVolume>
+                <SurveyCoord>
+                    <origin x="" y="" z=""/>
+                    <unitVec name="u"  x="1.0" y="0.0" z="0.0"/>
+                    <unitVec name="v"  x="1.0" y="0.0" z="0.0"/>
+                    <unitVec name="w"  x="0.0" y="1.0" z="0.0"/>                    
+                </SurveyCoord>
+        </SurveyVolumes>
+     -->
+        <millepede_constants>
+        
+            <!-- top half-module translations -->
+            <millepede_constant name="11101" value="0.0"/>
+            <millepede_constant name="11102" value="0.0"/>
+            <millepede_constant name="11103" value="0.0"/>
+            <millepede_constant name="11104" value="0.0"/>
+            <millepede_constant name="11105" value="0.0"/>
+            <millepede_constant name="11106" value="0.0"/>
+            <millepede_constant name="11107" value="0.0"/>
+            <millepede_constant name="11108" value="0.0"/>
+            <millepede_constant name="11109" value="0.0"/>
+            <millepede_constant name="11110" value="0.0"/>
+            <millepede_constant name="11111" value="0.0"/>
+            <millepede_constant name="11112" value="0.0"/>
+            <millepede_constant name="11113" value="0.0"/>
+            <millepede_constant name="11114" value="0.0"/>
+            <millepede_constant name="11115" value="0.0"/>
+            <millepede_constant name="11116" value="0.0"/>
+            <millepede_constant name="11117" value="0.0"/>
+            <millepede_constant name="11118" value="0.0"/>
+
+            <millepede_constant name="11201" value="0.0"/>
+            <millepede_constant name="11202" value="0.0"/>
+            <millepede_constant name="11203" value="0.0"/>
+            <millepede_constant name="11204" value="0.0"/>
+            <millepede_constant name="11205" value="0.0"/>
+            <millepede_constant name="11206" value="0.0"/>
+            <millepede_constant name="11207" value="0.0"/>
+            <millepede_constant name="11208" value="0.0"/>
+            <millepede_constant name="11209" value="0.0"/>
+            <millepede_constant name="11210" value="0.0"/>
+            <millepede_constant name="11211" value="0.0"/>
+            <millepede_constant name="11212" value="0.0"/>
+            <millepede_constant name="11213" value="0.0"/>
+            <millepede_constant name="11214" value="0.0"/>
+            <millepede_constant name="11215" value="0.0"/>
+            <millepede_constant name="11216" value="0.0"/>
+            <millepede_constant name="11217" value="0.0"/>
+            <millepede_constant name="11218" value="0.0"/>
+
+            <millepede_constant name="11301" value="0.0"/>
+            <millepede_constant name="11302" value="0.0"/>
+            <millepede_constant name="11303" value="0.0"/>
+            <millepede_constant name="11304" value="0.0"/>
+            <millepede_constant name="11305" value="0.0"/>
+            <millepede_constant name="11306" value="0.0"/>
+            <millepede_constant name="11307" value="0.0"/>
+            <millepede_constant name="11308" value="0.0"/>
+            <millepede_constant name="11309" value="0.0"/>
+            <millepede_constant name="11310" value="0.0"/>
+            <millepede_constant name="11311" value="0.0"/>
+            <millepede_constant name="11312" value="0.0"/>
+            <millepede_constant name="11313" value="0.0"/>
+            <millepede_constant name="11314" value="0.0"/>
+            <millepede_constant name="11315" value="0.0"/>
+            <millepede_constant name="11316" value="0.0"/>
+            <millepede_constant name="11317" value="0.0"/>
+            <millepede_constant name="11318" value="0.0"/>
+            
+            
+            <!-- top half-module rotations -->
+            
+            <millepede_constant name="12101" value="0.0"/>
+            <millepede_constant name="12102" value="0.0"/>
+            <millepede_constant name="12103" value="0.0"/>
+            <millepede_constant name="12104" value="0.0"/>
+            <millepede_constant name="12105" value="0.0"/>
+            <millepede_constant name="12106" value="0.0"/>
+            <millepede_constant name="12107" value="0.0"/>
+            <millepede_constant name="12108" value="0.0"/>
+            <millepede_constant name="12109" value="0.0"/>
+            <millepede_constant name="12110" value="0.0"/>
+            <millepede_constant name="12111" value="0.0"/>
+            <millepede_constant name="12112" value="0.0"/>
+            <millepede_constant name="12113" value="0.0"/>
+            <millepede_constant name="12114" value="0.0"/>
+            <millepede_constant name="12115" value="0.0"/>
+            <millepede_constant name="12116" value="0.0"/>
+            <millepede_constant name="12117" value="0.0"/>
+            <millepede_constant name="12118" value="0.0"/>
+
+            <millepede_constant name="12201" value="0.0"/>
+            <millepede_constant name="12202" value="0.0"/>
+            <millepede_constant name="12203" value="0.0"/>
+            <millepede_constant name="12204" value="0.0"/>
+            <millepede_constant name="12205" value="0.0"/>
+            <millepede_constant name="12206" value="0.0"/>
+            <millepede_constant name="12207" value="0.0"/>
+            <millepede_constant name="12208" value="0.0"/>
+            <millepede_constant name="12209" value="0.0"/>
+            <millepede_constant name="12210" value="0.0"/>
+            <millepede_constant name="12211" value="0.0"/>
+            <millepede_constant name="12212" value="0.0"/>
+            <millepede_constant name="12213" value="0.0"/>
+            <millepede_constant name="12214" value="0.0"/>
+            <millepede_constant name="12215" value="0.0"/>
+            <millepede_constant name="12216" value="0.0"/>
+            <millepede_constant name="12217" value="0.0"/>
+            <millepede_constant name="12218" value="0.0"/>
+
+            <millepede_constant name="12301" value="0.0"/>
+            <millepede_constant name="12302" value="0.0"/>
+            <millepede_constant name="12303" value="0.0"/>
+            <millepede_constant name="12304" value="0.0"/>
+            <millepede_constant name="12305" value="0.0"/>
+            <millepede_constant name="12306" value="0.0"/>
+            <millepede_constant name="12307" value="0.0"/>
+            <millepede_constant name="12308" value="0.0"/>
+            <millepede_constant name="12309" value="0.0"/>
+            <millepede_constant name="12310" value="0.0"/>
+            <millepede_constant name="12311" value="0.0"/>
+            <millepede_constant name="12312" value="0.0"/>
+            <millepede_constant name="12313" value="0.0"/>
+            <millepede_constant name="12314" value="0.0"/>
+            <millepede_constant name="12315" value="0.0"/>
+            <millepede_constant name="12316" value="0.0"/>
+            <millepede_constant name="12317" value="0.0"/>
+            <millepede_constant name="12318" value="0.0"/>
+            
+            <!-- bottom half-module translations -->
+            
+            <millepede_constant name="21101" value="0.0"/>
+            <millepede_constant name="21102" value="0.0"/>
+            <millepede_constant name="21103" value="0.0"/>
+            <millepede_constant name="21104" value="0.0"/>
+            <millepede_constant name="21105" value="0.0"/>
+            <millepede_constant name="21106" value="0.0"/>
+            <millepede_constant name="21107" value="0.0"/>
+            <millepede_constant name="21108" value="0.0"/>
+            <millepede_constant name="21109" value="0.0"/>
+            <millepede_constant name="21110" value="0.0"/>
+            <millepede_constant name="21111" value="0.0"/>
+            <millepede_constant name="21112" value="0.0"/>
+            <millepede_constant name="21113" value="0.0"/>
+            <millepede_constant name="21114" value="0.0"/>
+            <millepede_constant name="21115" value="0.0"/>
+            <millepede_constant name="21116" value="0.0"/>
+            <millepede_constant name="21117" value="0.0"/>
+            <millepede_constant name="21118" value="0.0"/>
+            
+            <millepede_constant name="21201" value="0.0"/>
+            <millepede_constant name="21202" value="0.0"/>
+            <millepede_constant name="21203" value="0.0"/>
+            <millepede_constant name="21204" value="0.0"/>
+            <millepede_constant name="21205" value="0.0"/>
+            <millepede_constant name="21206" value="0.0"/>
+            <millepede_constant name="21207" value="0.0"/>
+            <millepede_constant name="21208" value="0.0"/>
+            <millepede_constant name="21209" value="0.0"/>
+            <millepede_constant name="21210" value="0.0"/>
+            <millepede_constant name="21211" value="0.0"/>
+            <millepede_constant name="21212" value="0.0"/>
+            <millepede_constant name="21213" value="0.0"/>
+            <millepede_constant name="21214" value="0.0"/>
+            <millepede_constant name="21215" value="0.0"/>
+            <millepede_constant name="21216" value="0.0"/>
+            <millepede_constant name="21217" value="0.0"/>
+            <millepede_constant name="21218" value="0.0"/>
+
+            <millepede_constant name="21301" value="0.0"/>
+            <millepede_constant name="21302" value="0.0"/>
+            <millepede_constant name="21303" value="0.0"/>
+            <millepede_constant name="21304" value="0.0"/>
+            <millepede_constant name="21305" value="0.0"/>
+            <millepede_constant name="21306" value="0.0"/>
+            <millepede_constant name="21307" value="0.0"/>
+            <millepede_constant name="21308" value="0.0"/>
+            <millepede_constant name="21309" value="0.0"/>
+            <millepede_constant name="21310" value="0.0"/>
+            <millepede_constant name="21311" value="0.0"/>
+            <millepede_constant name="21312" value="0.0"/>
+            <millepede_constant name="21313" value="0.0"/>
+            <millepede_constant name="21314" value="0.0"/>
+            <millepede_constant name="21315" value="0.0"/>
+            <millepede_constant name="21316" value="0.0"/>
+            <millepede_constant name="21317" value="0.0"/>
+            <millepede_constant name="21318" value="0.0"/>
+            
+            <!-- bottom half-module rotations -->
+            
+            <millepede_constant name="22101" value="0.0"/>
+            <millepede_constant name="22102" value="0.0"/>
+            <millepede_constant name="22103" value="0.0"/>
+            <millepede_constant name="22104" value="0.0"/>
+            <millepede_constant name="22105" value="0.0"/>
+            <millepede_constant name="22106" value="0.0"/>
+            <millepede_constant name="22107" value="0.0"/>
+            <millepede_constant name="22108" value="0.0"/>
+            <millepede_constant name="22109" value="0.0"/>
+            <millepede_constant name="22110" value="0.0"/>
+            <millepede_constant name="22111" value="0.0"/>
+            <millepede_constant name="22112" value="0.0"/>
+            <millepede_constant name="22113" value="0.0"/>
+            <millepede_constant name="22114" value="0.0"/>
+            <millepede_constant name="22115" value="0.0"/>
+            <millepede_constant name="22116" value="0.0"/>
+            <millepede_constant name="22117" value="0.0"/>
+            <millepede_constant name="22118" value="0.0"/>
+
+            <millepede_constant name="22201" value="0.0"/>
+            <millepede_constant name="22202" value="0.0"/>
+            <millepede_constant name="22203" value="0.0"/>
+            <millepede_constant name="22204" value="0.0"/>
+            <millepede_constant name="22205" value="0.0"/>
+            <millepede_constant name="22206" value="0.0"/>
+            <millepede_constant name="22207" value="0.0"/>
+            <millepede_constant name="22208" value="0.0"/>
+            <millepede_constant name="22209" value="0.0"/>
+            <millepede_constant name="22210" value="0.0"/>
+            <millepede_constant name="22211" value="0.0"/>
+            <millepede_constant name="22212" value="0.0"/>
+            <millepede_constant name="22213" value="0.0"/>
+            <millepede_constant name="22214" value="0.0"/>
+            <millepede_constant name="22215" value="0.0"/>
+            <millepede_constant name="22216" value="0.0"/>
+            <millepede_constant name="22217" value="0.0"/>
+            <millepede_constant name="22218" value="0.0"/>
+
+            <millepede_constant name="22301" value="0.0"/>
+            <millepede_constant name="22302" value="0.0"/>
+            <millepede_constant name="22303" value="0.0"/>
+            <millepede_constant name="22304" value="0.0"/>
+            <millepede_constant name="22305" value="0.0"/>
+            <millepede_constant name="22306" value="0.0"/>
+            <millepede_constant name="22307" value="0.0"/>
+            <millepede_constant name="22308" value="0.0"/>
+            <millepede_constant name="22309" value="0.0"/>
+            <millepede_constant name="22310" value="0.0"/>
+            <millepede_constant name="22311" value="0.0"/>
+            <millepede_constant name="22312" value="0.0"/>
+            <millepede_constant name="22313" value="0.0"/>
+            <millepede_constant name="22314" value="0.0"/>
+            <millepede_constant name="22315" value="0.0"/>
+            <millepede_constant name="22316" value="0.0"/>
+            <millepede_constant name="22317" value="0.0"/>
+            <millepede_constant name="22318" value="0.0"/>
+            
+            
+            <!-- top support tilt angles -->
+            <millepede_constant name="13100" value="0.0"/> <!-- + means opening -->
+            <millepede_constant name="13200" value="0.0"/>
+            <millepede_constant name="13300" value="0.0"/>
+            
+            <!-- bottom support tilt angles -->
+            <millepede_constant name="23100" value="0.0"/> <!-- - means opening -->
+            <millepede_constant name="23200" value="0.0"/>
+            <millepede_constant name="23300" value="0.0"/>
+            
+        </millepede_constants>
+    </detector>
+  </detectors>
+  <readouts>
+    <readout name="TrackerHits">
+      <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id>
+    </readout>
+  </readouts>
+  <fields>
+    <field type="BoxDipole" name="AnalyzingDipole" x="0*cm" y="0*cm"
+      z="45.22*cm" dx="22.86*cm" dy="7.62*cm" dz="46.22*cm" bx="0.0" by="-0.5"
+      bz="0.0">
+    </field>
+  </fields>
+</lccdd>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1