Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN
HPSSVTDAQMaps.java+48-411.4 -> 1.5
Now uses conditions database to create maps

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSSVTDAQMaps.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- HPSSVTDAQMaps.java	11 Apr 2012 23:53:50 -0000	1.4
+++ HPSSVTDAQMaps.java	16 Apr 2012 17:21:32 -0000	1.5
@@ -3,11 +3,15 @@
 
 //--- java ---//
 import java.util.HashMap;
+
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
 //--- org.lcsim ---//
+import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException;
+import org.lcsim.conditions.ConditionsSet;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.tracker.silicon.SiSensor;
@@ -22,11 +26,14 @@
  * Creates maps between SVT sensors to FPGA and Hybrid pairs and vice versa
  *
  * @author Omar Moreno
- * @version $Id: HPSSVTDAQMaps.java,v 1.4 2012/04/11 23:53:50 omoreno Exp $ 
+ * @version $Id: HPSSVTDAQMaps.java,v 1.5 2012/04/16 17:21:32 omoreno Exp $ 
  */
 public class HPSSVTDAQMaps extends Driver {
     
     String subdetectorName = "Tracker";
+    boolean debug = true; 
+    
+    ConditionsManager mgr = ConditionsManager.defaultInstance();
     
     // Set of sensors
     Set<SiSensor> sensors = new HashSet<SiSensor>();
@@ -37,50 +44,21 @@
     // Map from Hybrid/FPGA pair
     public static Map<Pair<Integer /* Hybrid */, Integer /* FPGA */>, SiSensor /* Sensor */>  daqPairToSensor;
     
-    // Map from SVT Layer to Hybrid/FPGA pair
-    public Map<Integer /* Layer # */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> layerToDAQ;
+    // Map from SVT top layer to Hybrid/FPGA pair
+    private Map<Integer /* Layer # */, Pair<Integer /*Hybrid */, Integer /* FPGA */ >> topLayerToDAQ;
+
+    // Map from SVT bottom layer to Hybrid/FPGA pair
+    private Map<Integer /* Layer # */, Pair<Integer /*Hybrid */, Integer /* FPGA */ >> bottomLayerToDAQ;
 
     /**
      *  Default Constructor. 
-     *  NOTE: Currently all hybrid/fpga/layer data is hard coded
      */
     public HPSSVTDAQMaps()
     {
-        layerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>();
-        
-        // Hard code the layer to FPGA/Hybrid pair. Eventually, it may be better
-        // to load this information from a text file 
-        // NOTE: that the layer numbering is as follows: Top: 1-10, Bottom: 11-20
-        
-        
-        //                 Layer #                               Hybrid #      FPGA#
-        //-----------------------------------------------------------------------------------
-        // Top
-        layerToDAQ.put(        1,    new Pair<Integer, Integer>(    0,            0     ));
-        layerToDAQ.put(        2,    new Pair<Integer, Integer>(    1,            0     ));        
-        layerToDAQ.put(        3,    new Pair<Integer, Integer>(    2,            0     ));
-        layerToDAQ.put(        4,    new Pair<Integer, Integer>(    0,            1     ));
-        layerToDAQ.put(        5,    new Pair<Integer, Integer>(    1,            1     ));
-        layerToDAQ.put(        6,    new Pair<Integer, Integer>(    2,            1     ));
-        layerToDAQ.put(        7,    new Pair<Integer, Integer>(    0,            2     ));
-        layerToDAQ.put(        8,    new Pair<Integer, Integer>(    1,            2     ));
-        layerToDAQ.put(        9,    new Pair<Integer, Integer>(    2,            2     ));
-        layerToDAQ.put(       10,    new Pair<Integer, Integer>(    0,            6     ));
-        // Bottom
-        layerToDAQ.put(       11,    new Pair<Integer, Integer>(    0,            3     ));
-        layerToDAQ.put(       12,    new Pair<Integer, Integer>(    1,            3     ));
-        layerToDAQ.put(       13,    new Pair<Integer, Integer>(    2,            3     ));
-        layerToDAQ.put(       14,    new Pair<Integer, Integer>(    0,            4     ));
-        layerToDAQ.put(       15,    new Pair<Integer, Integer>(    1,            4     ));
-        layerToDAQ.put(       16,    new Pair<Integer, Integer>(    2,            4     ));
-        layerToDAQ.put(       17,    new Pair<Integer, Integer>(    0,            5     ));
-        layerToDAQ.put(       18,    new Pair<Integer, Integer>(    1,            5     ));
-        layerToDAQ.put(       19,    new Pair<Integer, Integer>(    2,            5     ));
-        layerToDAQ.put(       20,    new Pair<Integer, Integer>(    1,            6     ));
-    
-    
         sensorToDAQPair = new HashMap<SiSensor, Pair<Integer, Integer>>(); 
         daqPairToSensor = new HashMap<Pair<Integer, Integer>, SiSensor>();
+        topLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>();
+        bottomLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>();
         
     }
     
@@ -97,6 +75,36 @@
             throw new RuntimeException("The subdetector name was not set!");
         }
         
+        // Get the HPS detector conditions
+        try {
+			mgr.setDetector(detector.getDetectorName(), 0);
+		} catch (ConditionsNotFoundException e) {
+			System.out.println("The conditions for " + detector.getDetectorName() + " were not found!");
+		}
+        
+        // Get the top SVT DAQ Map 
+        ConditionsSet svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapTop");
+        
+        String[] daqPair;
+        
+        // Loop over the top layers and fill the DAQ map
+        for(Object topLayer : svtDAQMap.keySet()){
+        	daqPair = svtDAQMap.getString(topLayer.toString()).split(" ");
+        	if(debug) System.out.println("Layer: " + topLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]);
+        	topLayerToDAQ.put(Integer.parseInt(topLayer.toString()), new Pair<Integer, Integer>( Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1])));
+        	
+        }
+        
+        // Get the bottom SVT DAQ Map
+        svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapBottom");
+        
+        // Loop over the bottom layers and fill the DAQ map
+        for(Object bottomLayer : svtDAQMap.keySet()){
+        	daqPair = svtDAQMap.getString(bottomLayer.toString()).split(" ");	
+        	if(debug) System.out.println("Layer: " + bottomLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]);
+           	bottomLayerToDAQ.put(Integer.parseInt(bottomLayer.toString()), new Pair<Integer, Integer>( Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1])));
+        }
+        
         // Get the SVT
         IDetectorElement detectorElement 
            = detector.getDetectorElement().findDetectorElement(subdetectorName);
@@ -104,7 +112,7 @@
         // Get all SVT sensors
         sensors.addAll(detectorElement.findDescendants(SiSensor.class));
 
-        // Map sensors to 
+        // Map sensors to hybrid and FPGA
         createDAQMaps(sensors);
     
     }
@@ -134,12 +142,11 @@
             
             // Get the DAQ pair
             if(sensorHelper.getModuleValue(sensorIdent) == 0){
-                daqPair = layerToDAQ.get(sensorHelper.getLayerValue(sensorIdent));
-            } else daqPair = layerToDAQ.get(sensorHelper.getLayerValue(sensorIdent) + 10);
+                daqPair = topLayerToDAQ.get(sensorHelper.getLayerValue(sensorIdent));
+            } else daqPair = bottomLayerToDAQ.get(sensorHelper.getLayerValue(sensorIdent));
         
             sensorToDAQPair.put(sensor, daqPair);
             daqPairToSensor.put(daqPair, sensor);
         }
     }
-    
 }
\ No newline at end of file
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