Commit in hps-java/src/main/java/org/lcsim/hps on MAIN
monitoring/HPSCalibrationDriver.java+2-21.1 -> 1.2
monitoring/svt/SVTSimpleEventDisplay.java+4-31.6 -> 1.7
              /SVTHitReconstructionPlots.java+2-11.15 -> 1.16
              /SVTMonitoringPlots.java+5-41.4 -> 1.5
              /TrackingReconstructionPlots.java+1-11.8 -> 1.9
              /SVTEventInfo.java+2-11.6 -> 1.7
recon/tracking/SvtUtils.java+220added 1.1
              /HPSMakeSVTCellID.java+2-21.4 -> 1.5
              /HPSDataProcessingModule.java+4-41.13 -> 1.14
              /HPSHelicalTrackHitDriver.java+10-11.6 -> 1.7
              /HPSSVTSensorSetup.java+6-11.7 -> 1.8
              /HPSSVTCalibrationConstants.java+3-31.11 -> 1.12
              /SVTDataToRawTrackerHitDriver.java+19-41.9 -> 1.10
users/omoreno/SvtTrackAnalysis.java+22-31.2 -> 1.3
recon/tracking/apv25/HPSSiSensorReadout.java+4-31.8 -> 1.9
+306-33
1 added + 14 modified, total 15 files
SVTUtils - Singleton version of DAQ Maps; made compatibility changes to classes

hps-java/src/main/java/org/lcsim/hps/monitoring
HPSCalibrationDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- HPSCalibrationDriver.java	12 May 2012 23:09:05 -0000	1.1
+++ HPSCalibrationDriver.java	24 May 2012 17:08:18 -0000	1.2
@@ -12,12 +12,12 @@
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSCalibrationDriver.java,v 1.1 2012/05/12 23:09:05 meeg Exp $
+ * @version $Id: HPSCalibrationDriver.java,v 1.2 2012/05/24 17:08:18 omoreno Exp $
  */
 public class HPSCalibrationDriver extends Driver {
     public HPSCalibrationDriver() {
         add(new HPSEcalConditions());
-        add(new HPSSVTDAQMaps());
+ //       add(new HPSSVTDAQMaps());
         add(new HPSSVTSensorSetup());
     }
 }

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTSimpleEventDisplay.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- SVTSimpleEventDisplay.java	18 May 2012 08:26:35 -0000	1.6
+++ SVTSimpleEventDisplay.java	24 May 2012 17:08:18 -0000	1.7
@@ -13,6 +13,7 @@
 import org.lcsim.hps.monitoring.AIDAFrame;
 import org.lcsim.hps.monitoring.Resettable;
 import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
 import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
@@ -116,11 +117,11 @@
         for (int module = 0; module < 2; module++) {
             for (int layer = 0; layer < 10; layer++) {
                 int region = computePlotterRegion(layer + 1, module);
-                rth[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " RawTrackerHits", 640, -0.5, 639.5);
+                rth[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " RawTrackerHits", 640, -0.5, 639.5);
                 plotter.region(region).plot(rth[module][layer]);
-                th[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " TrackerHits", 640, -0.5, 639.5);
+                th[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " TrackerHits", 640, -0.5, 639.5);
                 plotter2.region(region).plot(th[module][layer]);
-                hth[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " HelicalTrackHits", 640, -0.5, 639.5);
+                hth[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " HelicalTrackHits", 640, -0.5, 639.5);
                 plotter3.region(region).plot(hth[module][layer]);
             }
         }

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTHitReconstructionPlots.java 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- SVTHitReconstructionPlots.java	24 May 2012 14:33:59 -0000	1.15
+++ SVTHitReconstructionPlots.java	24 May 2012 17:08:18 -0000	1.16
@@ -20,6 +20,7 @@
 import org.lcsim.hps.monitoring.Resettable;
 import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
 import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
 import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
@@ -226,7 +227,7 @@
         for (HPSFittedRawTrackerHit hrth : fittedrawHits) {
             SiSensor sensor = (SiSensor) hrth.getRawTrackerHit().getDetectorElement();
             int layer = hrth.getRawTrackerHit().getLayerNumber();
-            if (!HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor))
+            if (!SvtUtils.getInstance().isTopLayer(sensor))
                 layersBot[layer - 1]++;
             else
                 layersTop[layer - 1]++;

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTMonitoringPlots.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- SVTMonitoringPlots.java	22 May 2012 22:11:01 -0000	1.4
+++ SVTMonitoringPlots.java	24 May 2012 17:08:18 -0000	1.5
@@ -12,6 +12,7 @@
 import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
 import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
 import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
@@ -124,14 +125,14 @@
 		for (int module = 0; module < 2; module++) {
 			for (int layer = 0; layer < 10; layer++) {
 				int region = computePlotterRegion(layer + 1, module);
-				pedestalShifts[module][layer] = aida.profile1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.5);
+				pedestalShifts[module][layer] = aida.profile1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Pedestal Shifts", 640, -0.5, 639.5);
 //                pedestalShifts[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.5, 100, -500, 500);
 				plotter.region(region).plot(pedestalShifts[module][layer]);
-				t0s[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
+				t0s[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
 				plotter2.region(region).plot(t0s[module][layer]);
-				amps[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
+				amps[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
 				plotter3.region(region).plot(amps[module][layer]);
-				t0a[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
+				t0a[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
 				plotter4.region(region).plot(t0a[module][layer]);
 //                plotter3.region(region).style().zAxisStyle().setParameter("labelVertical", "false");
 //                                for (String str : plotter3.region(region).style().zAxisStyle().availableParameterOptions("labelVertical"))

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
TrackingReconstructionPlots.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- TrackingReconstructionPlots.java	24 May 2012 14:33:59 -0000	1.8
+++ TrackingReconstructionPlots.java	24 May 2012 17:08:18 -0000	1.9
@@ -460,7 +460,7 @@
             double x = htc.getPosition()[0];
             double y = htc.getPosition()[1];
             SiSensor sensor = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
-            if (HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor)) {
+            if (SvtUtils.getInstance().isTopLayer(sensor)) {
                 layersTop[htc.Layer() - 1]++;
                 Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
                 if (htc.Layer() == 1) {

hps-java/src/main/java/org/lcsim/hps/monitoring/svt
SVTEventInfo.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- SVTEventInfo.java	24 May 2012 14:33:59 -0000	1.6
+++ SVTEventInfo.java	24 May 2012 17:08:18 -0000	1.7
@@ -15,6 +15,7 @@
 import org.lcsim.geometry.Detector;
 import org.lcsim.hps.monitoring.Resettable;
 import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
@@ -169,7 +170,7 @@
 
         ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
         SiSensorElectrodes electrodes = ((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
-        if(!HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor))
+        if(!SvtUtils.getInstance().isTopLayer(sensor))
             return false;
         return true;
     }

hps-java/src/main/java/org/lcsim/hps/recon/tracking
SvtUtils.java added at 1.1
diff -N SvtUtils.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SvtUtils.java	24 May 2012 17:08:18 -0000	1.1
@@ -0,0 +1,220 @@
+package org.lcsim.hps.recon.tracking;
+
+//--- 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.ConditionsSet;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.geometry.Detector;
+
+//--- hps-java ---//
+import org.lcsim.hps.util.Pair;
+
+/**
+ * 
+ * @author Omar Moreno
+ * @version $Id: SvtUtils.java,v 1.1 2012/05/24 17:08:18 omoreno Exp $
+ */
+public class SvtUtils {
+		
+	// Use eager Singleton initialization since an instance will always be needed
+	private static final SvtUtils INSTANCE = new SvtUtils();
+	
+    // Set of sensors
+    private Set<SiSensor> sensors = new HashSet<SiSensor>();
+    
+    // Map from Sensor to Hybrid/FPGA pair
+    private Map<SiSensor /* Sensor */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> sensorToDAQPair
+    	= new HashMap<SiSensor, Pair<Integer, Integer>>();
+    
+    // Map from Hybrid/FPGA pair
+    private Map<Pair<Integer /* Hybrid */, Integer /* FPGA */>, SiSensor /* Sensor*/> daqPairToSensor
+   		= new HashMap<Pair<Integer, Integer>, SiSensor>();
+    
+    // Map from SVT top layer to Hybrid/FPGA pair
+    private Map<Integer /* Layer # */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> topLayerToDAQ
+    	= new HashMap<Integer, Pair<Integer, Integer>>();
+    
+    // Map from SVT bottom layer to Hybrid/FPGA pair
+    private Map<Integer /* Layer # */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> bottomLayerToDAQ
+    	= new HashMap<Integer, Pair<Integer, Integer>>();
+    
+    // Map sensor to an SVT top layer
+    private Map<SiSensor /* Sensor */, Integer /* Layer */> sensorToTopLayer
+    	= new HashMap<SiSensor, Integer>();
+    
+    // Map sensor to an SVT bottom layer
+    private Map<SiSensor /* Sensor */, Integer /* Layer */> sensorToBottomLayer
+    	= new HashMap<SiSensor, Integer>();
+
+    private SiSensor[][] sensorArray = new SiSensor[2][10];
+    
+	boolean debug = true;
+	String subdetectorName = "Tracker";
+	ConditionsManager mgr = ConditionsManager.defaultInstance();
+    
+    private SvtUtils(){}
+    
+    /**
+     * 
+     */
+    public static SvtUtils getInstance(){
+    	return INSTANCE;
+    }
+    
+    /**
+     * 
+     * @param sensor
+     * @return
+     */
+    public int getLayerNumber(SiSensor sensor){
+    	if(sensorToTopLayer.containsKey(sensor)) return sensorToTopLayer.get(sensor);
+		else if(sensorToBottomLayer.containsKey(sensor)) return sensorToBottomLayer.get(sensor);
+		else throw new RuntimeException("There is no layer associated with sensor " + sensor.getName());
+    }
+    
+    /**
+     * 
+     */
+    public boolean isTopLayer(SiSensor sensor){
+    	if(sensorToTopLayer.containsKey(sensor)) return true;
+		else if(sensorToBottomLayer.containsKey(sensor)) return false;
+		else throw new RuntimeException("There is no layer associated with sensor " + sensor.getName());
+    }
+    
+    /**
+     * 
+     */
+    public boolean isAxial(SiSensor sensor){
+    	if(this.isTopLayer(sensor) && this.getLayerNumber(sensor)%2 == 1) return true;
+    	else if(!this.isTopLayer(sensor) && this.getLayerNumber(sensor)%2 == 0) return true;
+    	return false;
+    }
+    
+    /**
+     * 
+     */
+    public SiSensor getSensor(int module, int layer){
+    	if(module < 0 || module > 1)
+    		throw new RuntimeException("Module number " + module + " is out of range!");
+    	else if(layer < 0 || layer > 10)
+    		throw new RuntimeException("Layer number " + layer + " is out of range!");
+    	return sensorArray[module][layer];
+    }
+    
+    /**
+     * 
+     */
+    public SiSensor getSensor(Pair<Integer, Integer> daqPair){
+    	return this.daqPairToSensor.get(daqPair);
+    }
+    
+    /**
+     * 
+     * @return
+     */
+    public Set<SiSensor> getSensors(){
+    	return sensors;
+    }
+    
+    /**
+     * 
+     */
+    public int getFPGA(SiSensor sensor){
+    	return this.sensorToDAQPair.get(sensor).getSecondElement();
+    }
+    
+    /**
+     * 
+     */
+    public int getHybrid(SiSensor sensor){
+    	return this.sensorToDAQPair.get(sensor).getFirstElement();
+    }
+    
+    /**
+     * 
+     */
+    public Pair<Integer, Integer> getDaqPair(SiSensor sensor){
+    	return this.sensorToDAQPair.get(sensor);
+    }
+    
+    /**
+     * 
+     */
+    protected void setupDaqMaps(Detector detector){
+    	
+        if (subdetectorName == null)
+            throw new RuntimeException("The subdetector name was not set!");
+        
+        // Get the SVT DAQ Maps
+        ConditionsSet topSvtDaqMap = mgr.getConditions("daqmap/SVTDAQMapTop");
+        ConditionsSet bottomSvtDaqMap = mgr.getConditions("daqmap/SVTDAQMapBottom");
+        String[] daqPair;
+        
+        // Loop over the top layers and fill the DAQ map
+        for (Object topLayer : topSvtDaqMap.keySet()) {
+            daqPair = topSvtDaqMap.getString(topLayer.toString()).split(" ");
+            if (debug)
+                System.out.println("Layer: " + topLayer.toString() + " FPGA: " + daqPair[1] +  " Hybrid: " + daqPair[0] );
+            topLayerToDAQ.put(Integer.parseInt(topLayer.toString()), new Pair<Integer, Integer>(Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1])));
+        }
+                
+    	// Loop over the bottom layers and fill the DAQ Map
+        for (Object bottomLayer : bottomSvtDaqMap.keySet()) {
+            daqPair = bottomSvtDaqMap.getString(bottomLayer.toString()).split(" ");
+            if (debug)
+                System.out.println("Layer: " + bottomLayer.toString() + " FPGA: " + daqPair[1] + " Hybrid: " + daqPair[0]);
+            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);
+
+        // Get all SVT sensors
+        sensors.addAll(detectorElement.findDescendants(SiSensor.class));    
+    
+        IIdentifier sensorIdent;
+        SiTrackerIdentifierHelper sensorHelper;
+        
+        // Create the maps
+        for(SiSensor sensor : sensors){
+        	
+        	// Get the sensor identifier
+        	sensorIdent = sensor.getIdentifier();
+        	
+            // Get the sensor identifier helper
+            sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+            
+            int layerNumber = sensorHelper.getLayerValue(sensorIdent);
+            int moduleNumber = sensorHelper.getModuleValue(sensorIdent);
+        	sensorArray[moduleNumber][layerNumber - 1] = sensor;
+            
+            if (moduleNumber == 0) {
+            	sensorToTopLayer.put(sensor, layerNumber);
+            	sensorToDAQPair.put(sensor, this.topLayerToDAQ.get(layerNumber));
+            	daqPairToSensor.put(topLayerToDAQ.get(layerNumber), sensor);
+            } else if(moduleNumber == 1){
+                sensorToBottomLayer.put(sensor, layerNumber);
+            	sensorToDAQPair.put(sensor, this.bottomLayerToDAQ.get(layerNumber));
+            	daqPairToSensor.put(bottomLayerToDAQ.get(layerNumber), sensor);
+            } else throw new RuntimeException("Invalid Module Number: " + sensorHelper.getModuleValue(sensorIdent));
+        }
+    
+        for (int module = 0; module < 2; module++) {
+            for (int layer = 0; layer < 10; layer++) {
+                if (sensorArray[module][layer] == null) {
+                    throw new RuntimeException("Couldn't find sensor with module " + module + ", layer " + layer + 1);
+                }
+            }
+        }
+    }
+    
+}

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSMakeSVTCellID.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- HPSMakeSVTCellID.java	10 Apr 2012 01:00:13 -0000	1.4
+++ HPSMakeSVTCellID.java	24 May 2012 17:08:18 -0000	1.5
@@ -27,8 +27,8 @@
 
 //                Detector detector;
 //                IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker");
-                Pair daqPair = new Pair(hybrid, fpgaAddress);
-                SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
+                Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(hybrid, fpgaAddress);
+                SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
                 IIdentifier sensorIdent = sensor.getIdentifier();
                 SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
 

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSDataProcessingModule.java 1.13 -> 1.14
diff -u -r1.13 -r1.14
--- HPSDataProcessingModule.java	25 Apr 2012 05:08:00 -0000	1.13
+++ HPSDataProcessingModule.java	24 May 2012 17:08:18 -0000	1.14
@@ -28,7 +28,7 @@
 /**
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSDataProcessingModule.java,v 1.13 2012/04/25 05:08:00 omoreno Exp $
+ * @version $Id: HPSDataProcessingModule.java,v 1.14 2012/05/24 17:08:18 omoreno Exp $
  */
 public class HPSDataProcessingModule extends Driver {
 	
@@ -90,7 +90,7 @@
 	@Override
 	public void detectorChanged(Detector detector) {
 
-		for (SiSensor sensor : HPSSVTDAQMaps.sensors) {
+		for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
 			// Map a sensor to its corresponding samples
 			sensorToSamplesMap.put(sensor, new HashMap<Integer, List<Double>>());
 		}
@@ -217,7 +217,7 @@
 		for (Map.Entry<SiSensor, Map<Integer, List<Double>>> sensor : sensorToSamplesMap.entrySet()) {
 
 			// Get the FPGA number
-			fpgaNumber = HPSSVTDAQMaps.sensorToDAQPair.get(sensor.getKey()).getSecondElement();
+			fpgaNumber = SvtUtils.getInstance().getFPGA(sensor.getKey());
 			if(fpgaNumber > SVT_TOTAL_FPGAS || fpgaNumber < 0)
 				throw new RuntimeException("FPGA Number out of range!");
 			if(debug) System.out.println(this.getClass().getSimpleName() + ": FPGA Number: " + fpgaNumber);
@@ -263,7 +263,7 @@
 				rawHits.add(rawHit);
 
 				// Get the hybrid number
-				hybridNumber = HPSSVTDAQMaps.sensorToDAQPair.get(sensor.getKey()).getFirstElement();
+				hybridNumber = SvtUtils.getInstance().getHybrid(sensor.getKey());
 				if(hybridNumber > TOTAL_HYBRIDS_PER_FPGA || hybridNumber < 0)
 					throw new RuntimeException("Hybrid number is out of range!");
 				//if(debug) System.out.println(this.getClass().getSimpleName() + ": Hybrid Number: " + hybridNumber);

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSHelicalTrackHitDriver.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- HPSHelicalTrackHitDriver.java	13 May 2012 21:38:20 -0000	1.6
+++ HPSHelicalTrackHitDriver.java	24 May 2012 17:08:18 -0000	1.7
@@ -61,7 +61,7 @@
 public class HPSHelicalTrackHitDriver extends Driver {
 //    private StereoHitMaker _crosser = new StereoHitMaker(2., 10.);
 
-    private boolean _debug = false;
+    private boolean _debug = true;
     private StereoHitMaker _crosser = new StereoHitMaker(0.0, 10.);
     private HitIdentifier _ID = new HitIdentifier();
     private String _outname = "HelicalTrackHits";
@@ -155,6 +155,7 @@
                     String id = makeID(_ID.getName(de), _ID.getLayer(de));
 
                     //  Check if hit is on a stereo pair layer
+                    // Why wouldn't it be on a pair? 
                     if (_stereomap.containsKey(id) || _stereomap.containsValue(id)) {
 
                         //  Create a HelicalTrackStrip for this hit
@@ -189,6 +190,14 @@
                     hitrelations.add(new MyLCRelation(hit3d, hit));
                 }
             }
+            
+            for(Map.Entry<String, List<HelicalTrackStrip>> entry : striplistmap.entrySet()){
+            	String ident = entry.getKey();
+            	List<HelicalTrackStrip> hts = entry.getValue();
+            	for(HelicalTrackStrip hstrip : hts ){
+            	}
+            	System.out.println(this.getClass().getSimpleName() + ": Total number of HelicalTrackStrips: " + ident + ": "  + hts.size());
+            }
 
             //  Now create the stereo hits
             //  Create a list of stereo hits

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSSVTSensorSetup.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- HPSSVTSensorSetup.java	16 Mar 2012 19:12:09 -0000	1.7
+++ HPSSVTSensorSetup.java	24 May 2012 17:08:18 -0000	1.8
@@ -21,13 +21,15 @@
 import org.lcsim.geometry.Detector;
 import org.lcsim.util.Driver;
 
+import org.lcsim.hps.recon.tracking.SvtUtils;
+
 /**
  * Setup driver for the HPSTracker subdetector.
  *
  * @author Mathew Graham <[log in to unmask]>
  * @author Omar Moreno   <[log in to unmask]>
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: HPSSVTSensorSetup.java,v 1.7 2012/03/16 19:12:09 jeremy Exp $
+ * @version $Id: HPSSVTSensorSetup.java,v 1.8 2012/05/24 17:08:18 omoreno Exp $
  */
 public class HPSSVTSensorSetup extends Driver {
 	
@@ -75,6 +77,9 @@
                 
         // Configure the sensors
         configureSensors(sensors);
+        
+        // Create DAQ Maps
+        SvtUtils.getInstance().setupDaqMaps(detector);
     }
     
     /**

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSSVTCalibrationConstants.java 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- HPSSVTCalibrationConstants.java	18 May 2012 03:48:45 -0000	1.11
+++ HPSSVTCalibrationConstants.java	24 May 2012 17:08:18 -0000	1.12
@@ -199,7 +199,7 @@
     }
 
     public static Double getNoise(SiSensor sensor, int channel) {
-        Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+        Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
         double[] noises = noiseMap.get(daqPair);
         if (noises == null) {
             return null;
@@ -209,7 +209,7 @@
     }
 
     public static Double getPedestal(SiSensor sensor, int channel) {
-        Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+        Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
         double[] pedestals = pedestalMap.get(daqPair);
         if (pedestals == null) {
             return null;
@@ -219,7 +219,7 @@
     }
 
     public static Double getTShaping(SiSensor sensor, int channel) {
-        Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+        Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
         double[] tps = tpMap.get(daqPair);
         if (tps == null) {
             return null;

hps-java/src/main/java/org/lcsim/hps/recon/tracking
SVTDataToRawTrackerHitDriver.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- SVTDataToRawTrackerHitDriver.java	8 May 2012 15:52:52 -0000	1.9
+++ SVTDataToRawTrackerHitDriver.java	24 May 2012 17:08:18 -0000	1.10
@@ -17,7 +17,7 @@
     String svtDataCollectionName = "SVTData";
     String rawTrackerHitOutputCollectionName = "SVTRawTrackerHits";
     String readoutName = "TrackerHits";
-    boolean debug = false;
+    boolean debug = true;
 
     public SVTDataToRawTrackerHitDriver() {
     }
@@ -53,12 +53,24 @@
 
         List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
         for (HPSSVTData svtData : svtDataCollection) {
-            Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(svtData.getHybridNumber(), svtData.getFPGAAddress());
-            SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
-            if (sensor == null) {
+        	if(debug)
+        		System.out.println(this.getClass().getSimpleName() + ": FPGA: " + svtData.getFPGAAddress() + " Hybrid: " + svtData.getHybridNumber());
+            
+        	Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(svtData.getHybridNumber(), svtData.getFPGAAddress());
+        	SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);        	
+        	
+        	if (sensor == null) {
                 throw new RuntimeException("Unexpected DAQ address: FPGA " + svtData.getFPGAAddress() + ", hybrid " + svtData.getHybridNumber());
             }
 
+        	if(debug){
+        		if(SvtUtils.getInstance().isTopLayer(sensor)){
+            		System.out.println(this.getClass().getSimpleName() + ": Top Layer Number: " + SvtUtils.getInstance().getLayerNumber(sensor));
+        		} else {
+        			System.out.println(this.getClass().getSimpleName() + ": Bottom Layer Number: " + SvtUtils.getInstance().getLayerNumber(sensor));
+        		}
+        	}  
+        	
             int sensorChannel = svtData.getSensorChannel();
             if (sensorChannel >= HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR) {
                 continue; //strip 639 exists as an APV channel but not as a sensor strip; drop it
@@ -80,6 +92,9 @@
 
             long cell_id = sensor.makeStripId(sensorChannel, sideNumber).getValue();
             RawTrackerHit myHit = new BaseRawTrackerHit(hitTime, cell_id, data, null, sensor);
+            
+            if(debug)
+            	System.out.println(this.getClass().getSimpleName() + "Cell ID Module " + myHit.getIdentifierFieldValue("module") + "Cell ID Layer: " + myHit.getIdentifierFieldValue("layer") + "Strip Number: " + myHit.getIdentifierFieldValue("strip"));
             myHit.getDetectorElement().getReadout().addHit((myHit));
             hits.add(new BaseRawTrackerHit(hitTime, cell_id, data, null, sensor));
         }

hps-java/src/main/java/org/lcsim/hps/users/omoreno
SvtTrackAnalysis.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SvtTrackAnalysis.java	16 May 2012 04:40:17 -0000	1.2
+++ SvtTrackAnalysis.java	24 May 2012 17:08:18 -0000	1.3
@@ -31,7 +31,7 @@
 /**
  * 
  * @author Omar Moreno
- * @version $Id: SvtTrackAnalysis.java,v 1.2 2012/05/16 04:40:17 omoreno Exp $
+ * @version $Id: SvtTrackAnalysis.java,v 1.3 2012/05/24 17:08:18 omoreno Exp $
  *
  */
 
@@ -47,7 +47,11 @@
 	
 	int npositive = 0;
 	int nnegative = 0;
-	
+	double ntracks = 0;
+	double ntracksTop = 0;
+	double ntracksBottom = 0;
+	double nTwoTracks = 0;
+	double nevents = 0;
 	
     SvtTrackExtrapolator extrapolator;
 	
@@ -286,7 +290,7 @@
 	}
 	
 	public void process(EventHeader event){
-		
+		nevents++;
 		
 		if(event.hasCollection(SiTrackerHitStrip1D.class, stripHitCollectionName)){
 			
@@ -311,6 +315,7 @@
     	List<Hep3Vector> ecalPos = new ArrayList<Hep3Vector>();
     	
     	for(SeedTrack track : tracks){
+    		ntracks++;
     		extrapolator.setTrack(track);
     		trackUtil.setTrack(track);
     		Hep3Vector positionEcal = extrapolator.getTrackPositionAtEcal();
@@ -320,6 +325,10 @@
     		aida.histogram2D("Track Position at Ecal").fill(positionEcal.y(), positionEcal.z());
     		aida.histogram2D("Track Position at Harp").fill(positionConverter.y(), positionConverter.z());
 
+    		if(positionEcal.z() > 0 ) ntracksTop++;
+    		else if(positionEcal.z() < 0) ntracksBottom++;
+    		
+    		
     		aida.histogram1D("DOCA").fill(trackUtil.getDoca());
     		aida.histogram1D("Z0").fill(trackUtil.getZ0());
     		aida.histogram1D("phi0").fill(trackUtil.getPhi0());
@@ -351,6 +360,7 @@
     			aida.histogram2D("Track Position at Ecal: Two Tracks").fill(positionEcal.y(), positionEcal.z());
     			aida.histogram2D("Track Position at Harp: Two Tracks").fill(positionConverter.y(), positionConverter.z()); 
     			aida.histogram1D("Px: Two Tracks").fill(track.getPX());
+    			if(tracks.size() == 2) nTwoTracks++;
     		}
     		
     		trackToEcalPosition.put(positionEcal, track);
@@ -398,6 +408,15 @@
     	
     	double ratio = nnegative/npositive;
     	System.out.println("Ratio of Negative to Position Tracks: " + ratio);
+	
+    	double tracksRatio = ntracks/nevents;
+    	double tracksTopRatio = ntracksTop/nevents;
+    	double tracksBottomRatio = ntracksBottom/nevents;
+    	double twoTrackRatio = nTwoTracks/nevents;
+    	System.out.println("Number of tracks per event: " + tracksRatio);
+    	System.out.println("Number of top tracks per event: " + tracksTopRatio);
+    	System.out.println("Number of bottom tracks per event: " + tracksBottomRatio);
+    	System.out.println("Number of two track events: " + twoTrackRatio);
 	}
 
 	@Override

hps-java/src/main/java/org/lcsim/hps/recon/tracking/apv25
HPSSiSensorReadout.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- HPSSiSensorReadout.java	21 Apr 2012 07:41:59 -0000	1.8
+++ HPSSiSensorReadout.java	24 May 2012 17:08:18 -0000	1.9
@@ -42,13 +42,14 @@
 import org.lcsim.hps.recon.tracking.HPSDataProcessingModule;
 import org.lcsim.hps.recon.tracking.HPSRTM;
 import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
 import org.lcsim.hps.util.ClockSingleton;
 
 /**
  * Class used to Readout HPS APV25's
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSSiSensorReadout.java,v 1.8 2012/04/21 07:41:59 omoreno Exp $
+ * @version $Id: HPSSiSensorReadout.java,v 1.9 2012/05/24 17:08:18 omoreno Exp $
  */
 
 public class HPSSiSensorReadout extends Driver {
@@ -153,7 +154,7 @@
 		super.detectorChanged(detector);
 
 		// Instantiate all maps
-		for(SiSensor sensor : HPSSVTDAQMaps.sensors){
+		for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
 			
 			sensorToPipelineMap.put(sensor, new HashMap<Integer, APV25AnalogPipeline>());
 			
@@ -201,7 +202,7 @@
 		}
 
 		// Loop over all sensors
-		for (SiSensor sensor : HPSSVTDAQMaps.sensors) {
+		for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
 			// Readout the sensors
 			readoutSensor(sensor);
 		}
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