Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN | |||
HPSSVTDAQMaps.java | +48 | -41 | 1.4 -> 1.5 |
Now uses conditions database to create maps
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
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