Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN
HPSMakeSVTCellID.java+63added 1.1
Class for making SVT CellID from values (fpga,hybrid,channel) in the SVT raw data

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSMakeSVTCellID.java added at 1.1
diff -N HPSMakeSVTCellID.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HPSMakeSVTCellID.java	28 Mar 2012 16:02:48 -0000	1.1
@@ -0,0 +1,63 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.lcsim.hps.recon.tracking;
+
+import org.lcsim.HPSDetectorTag;
+import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.geometry.Detector;
+import org.lcsim.hps.util.Pair;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.detector.identifier.IIdentifier;
+
+/**
+ *
+ * @author neal
+ */
+public class HPSMakeSVTCellID {
+    
+    public long HPSMakeSVTCellID(int hybrid, int fpgaAddress, int apv, int channel) {
+// Information from Jeremy about how the CellID is coded
+//                Here's the ID scheme for the SVT in that detector...
+//    <readout name="TrackerHits">
+//            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id> 
+//    </readout>
+// interpretation:
+// 0-5 System, 6-8 barrel, 9-12 layer, 13-24 module, 25 sensor
+// 32-33 signed side, 34-45 strip
+
+//                Detector detector;
+//                IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker");
+                Pair daqPair = new Pair(hybrid, fpgaAddress);
+                SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
+                IIdentifier sensorIdent = sensor.getIdentifier();
+                SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+
+                int layer = 0;
+                int module = sensorHelper.getModuleValue(sensorIdent);
+                if (module == 0) { //Layers 1-10 (Top SVT Volume)
+                    layer = sensorHelper.getLayerValue(sensorIdent);
+                } //Layers 11-20 (Bottom SVT Volume)
+                else {
+                    layer = sensorHelper.getLayerValue(sensorIdent) + 10;
+                }
+
+                int sensornum = sensorHelper.getSensorValue(sensorIdent);
+
+                int system = 0;
+
+                int barrel = 0;
+
+                int side = sensor.getSensorID(); // according to Omar
+
+                int strip = channel;
+
+                long CellID_ = system + (barrel << 6) + (layer << 9) + (module << 13) + (sensornum << 25)
+                        + (side << 32) + (strip << 34);
+
+                return (CellID_);
+            }
+}
+
CVSspam 0.2.12


Use REPLY-ALL to reply to list

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