Print

Print


Commit in GeomConverter/src/org/lcsim/detector/tracker on MAIN
TrackerIdentifierHelper.java+121added 1.1
JM: first implementation of a basic IdentifierHelper for tracking subsystems

GeomConverter/src/org/lcsim/detector/tracker
TrackerIdentifierHelper.java added at 1.1
diff -N TrackerIdentifierHelper.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackerIdentifierHelper.java	7 Nov 2007 00:08:50 -0000	1.1
@@ -0,0 +1,121 @@
+package org.lcsim.detector.tracker;
+
+import org.lcsim.detector.DetectorIdentifierHelper;
+import org.lcsim.detector.identifier.IExpandedIdentifier;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierDictionary;
+import org.lcsim.detector.identifier.IIdentifierField;
+import org.lcsim.detector.identifier.IIdentifierDictionary.FieldNotFoundException;
+import org.lcsim.detector.identifier.IIdentifierDictionary.InvalidIndexException;
+
+/**
+ * Decode identifier fields that are specific to the tracking sub-system.
+ *
+ * @author Jeremy McCormick
+ * @version $Id: TrackerIdentifierHelper.java,v 1.1 2007/11/07 00:08:50 jeremy Exp $
+ */
+public class TrackerIdentifierHelper
+extends DetectorIdentifierHelper
+{    
+    int moduleIdx=-1;
+    int sensorIdx=-1;
+    int sideIdx=-1;
+    int stripIdx=-1;
+    
+    IIdentifierField moduleField = null;
+    IIdentifierField sensorField = null;
+    IIdentifierField sideField = null;
+    IIdentifierField stripField = null;
+    
+    public TrackerIdentifierHelper(IIdentifierDictionary iddict, SystemMap sysMap) throws InvalidIndexException, FieldNotFoundException
+    {
+        super(iddict, sysMap);
+        try {
+            moduleIdx = iddict.getFieldIndex("module");
+            sensorIdx = iddict.getFieldIndex("sensor");
+            sideIdx = iddict.getFieldIndex("side");
+            stripIdx = iddict.getFieldIndex("strip");
+            
+            moduleField = iddict.getField(moduleIdx);
+            sensorField = iddict.getField(sensorIdx);
+            sideField = iddict.getField(sideIdx);
+            stripField = iddict.getField(stripIdx);
+        }
+        catch (Exception x)
+        {
+            throw new RuntimeException(x);
+        }
+    }
+    			
+	/**
+	 * The module number.
+	 * @return The module number.
+	 */
+	public int getModuleValue(IIdentifier id)
+    {
+	    return moduleField.unpack(id);
+    }
+	
+	/**
+	 * The sensor number.
+	 * @return The sensor number.
+	 */
+	public int getSensorValue(IIdentifier id)
+    {
+        return sensorField.unpack(id);  
+    }
+	
+	/**
+	 * The module side number.
+	 * @return The module side number.
+	 */
+	public int getSideValue(IIdentifier id)
+    {
+        return sideField.unpack(id);   
+    }
+	
+	/**
+	 * The strip number.
+	 * @return The strip number.
+	 */
+	public int getStripValue(IIdentifier id)
+    {
+        return stripField.unpack(id);
+    }
+        
+    /**
+     * The module number.
+     * @return The module number.
+     */
+    public int getModuleValue(IExpandedIdentifier id)
+    {
+        return id.getValue(moduleIdx);
+    }
+    
+    /**
+     * The sensor number.
+     * @return The sensor number.
+     */
+    public int getSensorValue(IExpandedIdentifier id)
+    {
+        return id.getValue(sensorIdx); 
+    }
+    
+    /**
+     * The module side number.
+     * @return The module side number.
+     */
+    public int getSideValue(IExpandedIdentifier id)
+    {
+        return id.getValue(sideIdx);
+    }
+    
+    /**
+     * The strip number.
+     * @return The strip number.
+     */
+    public int getStripValue(IExpandedIdentifier id)
+    {
+        return id.getValue(stripIdx);
+    }
+}
CVSspam 0.2.8