Commit in GeomConverter/src/org/lcsim/detector/converter/compact on MAIN
DetectorConverter.java+22-41.28 -> 1.29


GeomConverter/src/org/lcsim/detector/converter/compact
DetectorConverter.java 1.28 -> 1.29
diff -u -r1.28 -r1.29
--- DetectorConverter.java	6 Nov 2007 20:50:06 -0000	1.28
+++ DetectorConverter.java	7 Nov 2007 00:09:08 -0000	1.29
@@ -37,11 +37,14 @@
 import org.lcsim.detector.material.MaterialStore;
 import org.lcsim.detector.solids.Box;
 import org.lcsim.detector.solids.Tube;
+import org.lcsim.detector.tracker.TrackerIdentifierHelper;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.Readout;
 import org.lcsim.geometry.compact.Constant;
 import org.lcsim.geometry.compact.Subdetector;
 import org.lcsim.geometry.subdetector.PolyconeSupport;
+import org.lcsim.geometry.subdetector.SiTrackerBarrel;
+import org.lcsim.geometry.subdetector.SiTrackerEndcap;
 import org.lcsim.geometry.util.IDDescriptor;
 
 public class DetectorConverter implements IDetectorConverter 
@@ -185,15 +188,30 @@
                     // Check that a dictionary was created.
                     if (iddict != null)
                     {                       
-                        try {                            
+                        try {
+                            // Create a DetectorIdHelper for this subdetector.
                             if (iddict.hasField("system") && iddict.hasField("barrel"))
                             {
-                                // Create a DetectorIdHelper for this subdetector.
-                                ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper( new DetectorIdentifierHelper( iddict, sysMap ) );
+                                IIdentifierHelper helper = null;
+                                 
+                                if (subdet instanceof SiTrackerBarrel || subdet instanceof SiTrackerEndcap)
+                                {
+                                    // Create a tracker-specific IdentifierHelper.
+                                    helper = new TrackerIdentifierHelper( iddict, sysMap );
+                                }
+                                else
+                                {
+                                    // Use the standard subdetector IdentifierHelper.
+                                    helper = new DetectorIdentifierHelper( iddict, sysMap );
+
+                                }
+                                
+                                // Set the IdentifierHelper on the subdetector's DetectorElement.
+                                ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper(helper);
                             }
                             else
                             {
-                                // Missing fields, probably a foreign file.  Use plain IdentifierHelper.
+                                // Dict is missing fields, so it is probably a foreign file.  Use the basic IdentifierHelper.
                                 ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper( new IdentifierHelper( iddict ) );
                             }
                         }
CVSspam 0.2.8