Commit in java/branches/hps_java_trunk_HPSJAVA-255 on MAIN
analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java+19-171245 -> 1246
analysis/src/main/java/org/hps/analysis/examples/LCIOTrackAnalysis.java+10-51245 -> 1246
                                                /TrackAnalysis.java+19-171245 -> 1246
conditions/src/main/java/org/hps/conditions/deprecated/CalibrationDriver.java+4-41245 -> 1246
ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java+1-21245 -> 1246
ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java+1-11245 -> 1246
evio/src/main/java/org/hps/evio/SVTEvioReader.java+54-201245 -> 1246
                               /SVTHitWriter.java+44-171245 -> 1246
monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/PedestalPlots.java+14-71245 -> 1246
                                                               /SVTEventInfo.java+4-21245 -> 1246
                                                               /SVTHitPulsePlots.java+10-61245 -> 1246
                                                               /SVTHitReconstructionPlots.java+22-71245 -> 1246
                                                               /SVTMonitoringPlots.java+30-111245 -> 1246
                                                               /SVTPulseFitPlots.java+41-131245 -> 1246
                                                               /SVTSimpleEventDisplay.java+30-61245 -> 1246
                                                               /TrackTimePlots.java+65-111245 -> 1246
                                                               /TrackingReconstructionPlots.java+12-91245 -> 1246
recon/src/main/java/org/hps/recon/filtering/InTimeHitsFilter.java+9-61245 -> 1246
                                           /MinimumHitsFilter.java+8-61245 -> 1246
steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToLcio.lcsim+1-11245 -> 1246
tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java+100-771245 -> 1246
tracking/src/main/java/org/hps/recon/tracking/DataTrackerHitDriver.java-81245 -> 1246
                                             /DumbShaperFit.java+14-91245 -> 1246
                                             /HelicalTrackHitDriver.java+22-141245 -> 1246
                                             /MaterialSupervisor.java-41245 -> 1246
                                             /NearestNeighborRMSClusterer.java+23-61245 -> 1246
                                             /NoiselessReadoutChip.java+6-61245 -> 1246
                                             /RawTrackerHitFitterDriver.java+9-61245 -> 1246
                                             /SVTBadChannelFilterDriver.java+24-141245 -> 1246
                                             /ShaperAnalyticFitAlgorithm.java+30-141245 -> 1246
                                             /ShaperFitAlgorithm.java+3-21245 -> 1246
                                             /ShaperLinearFitAlgorithm.java+34-131245 -> 1246
                                             /ShaperPileupFitAlgorithm.java+7-51245 -> 1246
                                             /TrackUtils.java+6-61245 -> 1246
                                             /TrackerHitUtils.java+5-31245 -> 1246
tracking/src/main/java/org/hps/recon/tracking/apv25/DataProcessingModule.java+6-61245 -> 1246
                                                   /HPSDataProcessingModule.java+12-101245 -> 1246
                                                   /HPSSiSensorReadout.java+6-61245 -> 1246
                                                   /RearTransitionModule.java+9-71245 -> 1246
                                                   /SvtHalfModule.java+6-71245 -> 1246
                                                   /SvtReadout.java+6-131245 -> 1246
                                                   /TestRunDataProcessingModule.java+9-41245 -> 1246
tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java+8-51245 -> 1246
users/src/main/java/org/hps/users/meeg/LCIOTrackAnalysis.java+13-51245 -> 1246
users/src/main/java/org/hps/users/mgraham/HelicalTrackHitResidualsDriver.java+6-31245 -> 1246
                                         /SVTRawTrackerHitThresholdDriver.java+6-71245 -> 1246
users/src/main/java/org/hps/users/omoreno/PlotUtils.java+10-51245 -> 1246
                                         /SimpleSvtTrigger.java+3-41245 -> 1246
                                         /SvtHitCorrelations.java+14-191245 -> 1246
                                         /SvtHitEfficiency.java+40-371245 -> 1246
                                         /SvtPerformance.java+6-101245 -> 1246
                                         /SvtQA.java+359-3881245 -> 1246
                                         /SvtTrackRecoEfficiency.java+18-171245 -> 1246
users/src/main/java/org/hps/users/phansson/DataTrackerFakeHitDriver.java+4-21245 -> 1246
                                          /ModuleMPAlignmentInput.java+11-61245 -> 1246
                                          /ROOTFlatTupleDriver.java+7-51245 -> 1246
                                          /StripMPAlignmentInput.java+17-71245 -> 1246
                                          /TrackingGeometryChecker.java+6-61245 -> 1246
+1263-934
58 modified files
Merge hps-java_HPSJAVA-88 changes through r1245 into hps_java_trunk_HPSJAVA-255.  This merges the SVT database conditions branch with the ECal database conditions branch.

java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/dataquality
SvtMonitoring.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/dataquality/SvtMonitoring.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -7,6 +7,7 @@
 import hep.aida.IHistogram1D;
 import hep.aida.IPlotter;
 import hep.aida.IPlotterStyle;
+
 import java.io.IOException;
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -14,9 +15,9 @@
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import org.hps.conditions.deprecated.SvtUtils;
+
 import org.hps.recon.tracking.ShapeFitParameters;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.GenericObject;
 import org.lcsim.event.LCRelation;
@@ -40,7 +41,7 @@
     private Detector detector = null;
     private IPlotter plotter;
     private final String trackerName = "Tracker";
-    private List<SiSensor> sensors;
+    private List<HpsSiSensor> sensors;
     private Map<String, int[]> occupancyMap;
     private Map<String, Double> avgOccupancyMap;
     private Map<String, String> avgOccupancyNames;
@@ -74,14 +75,14 @@
         aida.tree().cd("/");
 
         // Make a list of SiSensors in the SVT.
-        sensors = this.detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
+        sensors = this.detector.getSubdetector(trackerName).getDetectorElement().findDescendants(HpsSiSensor.class);
 
         // Reset the data structure that keeps track of strip occupancies.
         resetOccupancyMap();
 
         // Setup the occupancy plots.
         aida.tree().cd("/");
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             //IHistogram1D occupancyPlot = aida.histogram1D(sensor.getName().replaceAll("Tracker_TestRunModule_", ""), 640, 0, 639);
             IHistogram1D occupancyPlot = createSensorPlot(plotDir + "occupancy_", sensor, maxChannels, 0, maxChannels - 1);
             IHistogram1D t0Plot = createSensorPlot(plotDir + "t0Hit_", sensor, 50, -50., 50.);
@@ -114,7 +115,7 @@
             for (LCRelation hit : fittedTrackerHits) {
                 RawTrackerHit rth = (RawTrackerHit) hit.getFrom();
                 GenericObject pars = (GenericObject) hit.getTo();
-                String sensorName = getNiceSensorName((SiSensor) rth.getDetectorElement());
+                String sensorName = getNiceSensorName((HpsSiSensor) rth.getDetectorElement());
                 //this is a clever way to get the parameters we want from the generic object
                 double t0 = ShapeFitParameters.getT0(pars);
                 double amp = ShapeFitParameters.getAmp(pars);
@@ -130,7 +131,7 @@
 //            System.out.println("Found a Si cluster collection");
             List<TrackerHit> siClusters = (List<TrackerHit>) event.get(trackerHitCollectionName);
             for (TrackerHit cluster : siClusters) {
-                String sensorName = getNiceSensorName((SiSensor) ((RawTrackerHit) cluster.getRawHits().get(0)).getDetectorElement());
+                String sensorName = getNiceSensorName((HpsSiSensor) ((RawTrackerHit) cluster.getRawHits().get(0)).getDetectorElement());
                 double t0 = cluster.getTime();
                 double dedx = cluster.getdEdx() * 1e6;
 //                System.out.println("dedx = "+dedx);
@@ -140,7 +141,7 @@
         }
     }
 
-    private IHistogram1D getSensorPlot(String prefix, SiSensor sensor) {
+    private IHistogram1D getSensorPlot(String prefix, HpsSiSensor sensor) {
         String hname = prefix + getNiceSensorName(sensor);
         return aida.histogram1D(hname);
     }
@@ -149,7 +150,7 @@
         return aida.histogram1D(prefix + sensorName);
     }
 
-    private IHistogram1D createSensorPlot(String prefix, SiSensor sensor, int nchan, double min, double max) {
+    private IHistogram1D createSensorPlot(String prefix, HpsSiSensor sensor, int nchan, double min, double max) {
         String hname = prefix + getNiceSensorName(sensor);
         IHistogram1D hist = aida.histogram1D(hname, nchan, min, max);
         hist.setTitle(sensor.getName().replaceAll(nameStrip, "")
@@ -168,7 +169,7 @@
         sigt0Names = new HashMap<String, String>();
         avgt0Map = new HashMap<String, Double>();
         sigt0Map = new HashMap<String, Double>();
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             occupancyMap.put(sensor.getName(), new int[640]);
             avgOccupancyMap.put(sensor.getName(), -999.);
             String occName = "avgOcc_" + getNiceSensorName(sensor);
@@ -181,7 +182,7 @@
         }
     }
 
-    private String getNiceSensorName(SiSensor sensor) {
+    private String getNiceSensorName(HpsSiSensor sensor) {
         return sensor.getName().replaceAll(nameStrip, "")
                 .replace("module", "mod")
                 .replace("layer", "lyr")
@@ -199,7 +200,7 @@
     public void fillEndOfRunPlots() {
         // Plot strip occupancies.
         System.out.println("SvtMonitoring::endOfData  filling occupancy plots");
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             Double avg = 0.0;
             //IHistogram1D sensorHist = aida.histogram1D(sensor.getName());
             IHistogram1D sensorHist = getSensorPlot(plotDir + "occupancy_", sensor);
@@ -236,10 +237,11 @@
 
         int irTop = 0;
         int irBot = 0;
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             IHistogram1D sensPlot = getSensorPlot(plotDir + "t0Hit_", sensor);
             IFitResult result = fitGaussian(sensPlot, fitter, "range=\"(-8.0,8.0)\"");
-            boolean isTop = SvtUtils.getInstance().isTopLayer(sensor);
+            
+            boolean isTop = sensor.isTopLayer();
             if (isTop) {
                 plotterTop.region(irTop).plot(sensPlot);
                 plotterTop.region(irTop).plot(result.fittedFunction());
@@ -266,7 +268,7 @@
 
     @Override
     public void dumpDQMData() {
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             String name = avgOccupancyNames.get(sensor.getName());
             double occ = avgOccupancyMap.get(sensor.getName());
             checkAndUpdate(name, occ);
@@ -281,7 +283,7 @@
 
     @Override
     public void printDQMData() {
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             System.out.println(avgOccupancyNames.get(sensor.getName()) + ":  " + avgOccupancyMap.get(sensor.getName()));
             System.out.println(avgt0Names.get(sensor.getName()) + ":  " + avgt0Map.get(sensor.getName()));
             System.out.println(sigt0Names.get(sensor.getName()) + ":  " + sigt0Map.get(sensor.getName()));
@@ -290,7 +292,7 @@
 
     @Override
     public void printDQMStrings() {
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
             System.out.println("ALTER TABLE dqm ADD " + avgOccupancyNames.get(sensor.getName()) + " double;");
             System.out.println("ALTER TABLE dqm ADD " + avgt0Names.get(sensor.getName()) + " double;");
             System.out.println("ALTER TABLE dqm ADD " + sigt0Names.get(sensor.getName()) + " double;");

java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples
LCIOTrackAnalysis.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples/LCIOTrackAnalysis.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples/LCIOTrackAnalysis.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -8,7 +8,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor; 
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.Identifier;
 import org.lcsim.event.MCParticle;
@@ -20,7 +21,6 @@
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: LCIOTrackAnalysis.java,v 1.3 2013/10/24 18:11:43 meeg Exp $
  */
 public class LCIOTrackAnalysis {
 
@@ -73,15 +73,19 @@
                 int module = -1;
                 List<RawTrackerHit> rawHits = cl.getRawHits();
 //                System.out.println("RawHits: " + rawHits.size());
+                HpsSiSensor sensor = null; 
                 for (RawTrackerHit rawHit : rawHits) {
 //                    System.out.println(rawHit.getCellID());
                     IIdentifier id = new Identifier(rawHit.getCellID());
-                    int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                    //===> int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                    sensor = ((HpsSiSensor) rawHit.getDetectorElement());
+                    int newLayer = sensor.getLayerNumber();
                     if (layer != -1 && layer != newLayer) {
                         System.out.format("TrackerHit has hits from multiple layers: %d and %d\n", layer, newLayer);
                     }
                     layer = newLayer;
-                    int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                    //===> int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                    int newModule = sensor.getModuleNumber();
                     if (module != -1 && module != newModule) {
                         System.out.format("TrackerHit has hits from multiple modules: %d and %d\n", module, newModule);
                     }
@@ -98,7 +102,8 @@
                 _hitLocationPerLayer.put(layer, new BasicHep3Vector(cl.getPosition()));
                 _nhitsNew++;
 
-                boolean isAxial = SvtUtils.getInstance().isAxial(SvtUtils.getInstance().getSensor(module, layer - 1));
+                //===> boolean isAxial = SvtUtils.getInstance().isAxial(SvtUtils.getInstance().getSensor(module, layer - 1));
+                boolean isAxial = sensor.isAxial(); 
                 if (isAxial) {
                     _nAxialhits++;
                 } else {

java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples
TrackAnalysis.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples/TrackAnalysis.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/analysis/src/main/java/org/hps/analysis/examples/TrackAnalysis.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,17 +1,5 @@
-/*
- * TrackAnalysis.java
- *
- * Created on October 16, 2008, 6:09 PM
- *
- */
 package org.hps.analysis.examples;
 
-import hep.physics.matrix.BasicMatrix;
-import hep.physics.matrix.SymmetricMatrix;
-import hep.physics.vec.BasicHep3Matrix;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -19,13 +7,20 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+
+import hep.physics.matrix.BasicMatrix;
+import hep.physics.matrix.SymmetricMatrix;
+import hep.physics.vec.BasicHep3Matrix;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+
 import org.apache.commons.math3.linear.Array2DRowRealMatrix;
 import org.apache.commons.math3.linear.ArrayRealVector;
 import org.apache.commons.math3.linear.EigenDecomposition;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.hps.conditions.deprecated.SvtUtils;
-import static org.hps.recon.tracking.CoordinateTransformations.transformVectorToTracking;
-import org.hps.recon.tracking.TrackerHitUtils;
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor; 
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.Identifier;
 import org.lcsim.event.MCParticle;
@@ -40,10 +35,15 @@
 import org.lcsim.fit.helicaltrack.HelicalTrackHit;
 import org.lcsim.fit.helicaltrack.HelicalTrackStrip;
 
+//===> import org.hps.conditions.deprecated.SvtUtils;
+import static org.hps.recon.tracking.CoordinateTransformations.transformVectorToTracking;
+import org.hps.recon.tracking.TrackerHitUtils;
+
 /**
  *
  * @author Richard Partridge & Matt Graham
  */
+// TODO: This class needs to be cleaned up
 public class TrackAnalysis {
 
     private enum HelixPar {
@@ -224,11 +224,13 @@
             for (RawTrackerHit rawHit : rawHits) {
 //                    System.out.println(rawHit.getCellID());
                 IIdentifier id = new Identifier(rawHit.getCellID());
-                int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                //===> int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                int newLayer = ((HpsSiSensor) rawHit.getDetectorElement()).getLayerNumber();
                 if (layer != -1 && layer != newLayer)
                     System.out.format("TrackerHit has hits from multiple layers: %d and %d\n", layer, newLayer);
                 layer = newLayer;
-                int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                //===> int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                int newModule = ((HpsSiSensor) rawHit.getDetectorElement()).getModuleNumber();
                 if (module != -1 && module != newModule)
                     System.out.format("TrackerHit has hits from multiple modules: %d and %d\n", module, newModule);
                 module = newModule;

java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/deprecated
CalibrationDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/deprecated/CalibrationDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/deprecated/CalibrationDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -23,7 +23,7 @@
 
     public CalibrationDriver() {
         add(new EcalConditions());
-        add(new HPSSVTSensorSetup());
+        //add(new HPSSVTSensorSetup());
     }
 
     public void setRunNumber(int runNumber) {
@@ -55,10 +55,10 @@
         	EcalConditions.setGainFilename(gainFilename);
         	EcalConditions.loadCalibration();
         }
-        if (fixRunNumber && (!HPSSVTCalibrationConstants.pedestalLoaded() || !HPSSVTCalibrationConstants.tpLoaded())) {
+        /*if (fixRunNumber && (!HPSSVTCalibrationConstants.pedestalLoaded() || !HPSSVTCalibrationConstants.tpLoaded())) {
             System.out.println("Loading calibration for set run: " + runNumber);
             loadCalibsByRun(runNumber);
-        }
+        }*/
     }
 
     @Override
@@ -76,7 +76,7 @@
     }
 
     private void loadCalibsByRun(int run) {
-        HPSSVTCalibrationConstants.loadCalibration(run);
+        //HPSSVTCalibrationConstants.loadCalibration(run);
         FieldMap.loadFieldMap(run);
     }
 

java/branches/hps_java_trunk_HPSJAVA-255/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui
Viewer.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/ui/Viewer.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -98,8 +98,7 @@
         // Set the scaling settings.
         ecalPanel.setScaleMinimum(0.00001);
         ecalPanel.setScaleMaximum(3);
-       // ecalPanel.setScalingLogarithmic();
-        ecalPanel.setScalingLinear();
+        ecalPanel.setScalingLogarithmic();
         
         // Disable the crystals in the calorimeter panel along the beam gap.
         for (int i = -23; i < 24; i++) {

java/branches/hps_java_trunk_HPSJAVA-255/ecal-readout-sim/src/main/java/org/hps/readout/ecal
MollerTriggerDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/ecal-readout-sim/src/main/java/org/hps/readout/ecal/MollerTriggerDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -438,4 +438,4 @@
     private int clusterHitCountCount = 0;                          // Track the clusters which pass the hit count cut.
     private int clusterTotalEnergyCount = 0;                       // Track the clusters which pass the total energy cut.
     private int clusterPositionCount = 0;                          // Track the clusters which pass the positional cut.
-}
\ No newline at end of file
+}

java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio
SVTEvioReader.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,40 +1,51 @@
 package org.hps.evio;
 
-//--- java ---//
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
-import org.hps.conditions.deprecated.HPSSVTConstants;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.readout.svt.FpgaData;
-import org.hps.readout.svt.SVTData;
-//--- Coda ---//
 import org.jlab.coda.jevio.BaseStructure;
 import org.jlab.coda.jevio.EvioEvent;
-//--- org.lcsim ---//
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.GenericObject;
-//--- hps-java ---//
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.geometry.Subdetector;
+import org.lcsim.lcio.LCIOUtil;
+import org.hps.conditions.deprecated.HPSSVTConstants;
+//import org.hps.conditions.deprecated.SvtUtils;
+import org.hps.readout.svt.FpgaData;
+import org.hps.readout.svt.SVTData;
 import org.hps.util.Pair;
-import org.lcsim.lcio.LCIOUtil;
 
-
-//--- Constants ---//
 import static org.hps.evio.EventConstants.SVT_BANK_TAG;
 
 /**
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: SVTEvioReader.java,v 1.10 2013/07/27 01:52:49 omoreno Exp $
  */
 public class SVTEvioReader extends EvioReader {
 
-    String fpgaDataCollectionName = "FPGAData";
+    
+	// A Map from FPGA and Hybrid daq pair to the corresponding sensor
+    private Map<Pair<Integer /* FPGA */, Integer /* Hybrid */>,
+    			HpsSiSensor /* Sensor*/> daqPairToSensor = new HashMap<Pair<Integer, Integer>, HpsSiSensor>();
+	
+    
+    // Subdetector name
+    private static final String subdetectorName = "Tracker";
+   
+    // Flag indicating whether the DAQ map has been setup 
+    boolean isDaqMapSetup = false; 
+   
+    // Collection names
+	String fpgaDataCollectionName = "FPGAData";
     String readoutName = "TrackerHits";
-
+    
     /**
      *
      */
@@ -46,6 +57,20 @@
     public void setReadoutName(String readoutName) {
         this.readoutName = readoutName;
     }
+    
+    // TODO: Move this class to the DaqMapping class instead
+    private void setupDaqMap(Subdetector subdetector){
+    	List<HpsSiSensor> sensors = subdetector.getDetectorElement().findDescendants(HpsSiSensor.class);
+    
+        for(HpsSiSensor sensor : sensors){
+        	// FIXME: For now, use the FEB ID and FEB Hybrid ID.  This will need to be changed to 
+        	//		  use the Fpga and hybrid number once HpsTestRunSensor is ready
+        	Pair<Integer, Integer> daqPair 
+    			= new Pair<Integer, Integer>(sensor.getFebID(), sensor.getFebHybridID());
+        	daqPairToSensor.put(daqPair, sensor);
+        }
+        isDaqMapSetup = true; 
+    }
 
     /**
      *
@@ -53,10 +78,15 @@
     @Override
     public boolean makeHits(EvioEvent event, EventHeader lcsimEvent) {
         // Create DAQ Maps
-        if (!SvtUtils.getInstance().isSetup()) {
-            SvtUtils.getInstance().setup(lcsimEvent.getDetector());
-        }
+        //===> if (!SvtUtils.getInstance().isSetup()) {
+        //===>     SvtUtils.getInstance().setup(lcsimEvent.getDetector());
+        //===> }
 
+    	// TODO: This needs to be done in a smarter way
+    	if(!isDaqMapSetup){
+    		setupDaqMap(lcsimEvent.getDetector().getSubdetector(subdetectorName));
+    	}
+    	
         // Create a list to hold the temperatures 
         List<FpgaData> fpgaDataCollection = new ArrayList<FpgaData>();
 
@@ -149,14 +179,18 @@
         return foundBank;
     }
 
-    private static RawTrackerHit makeHit(int[] data) {
+    private RawTrackerHit makeHit(int[] data) {
         int hitTime = 0;
         Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(SVTData.getFPGAAddress(data), SVTData.getHybridNumber(data));
-        SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
+        HpsSiSensor sensor = daqPairToSensor.get(daqPair);
+        //===> SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
 
         int sensorChannel = SVTData.getSensorChannel(data);
-        long cell_id = SvtUtils.makeCellID(sensor, sensorChannel);
+        long cell_id = sensor.makeChannelID(sensorChannel);
+        //===> long cell_id = SvtUtils.makeCellID(sensor, sensorChannel);
+        
 
         return new BaseRawTrackerHit(hitTime, cell_id, SVTData.getAllSamples(data), null, sensor);
     }
+    
 }

java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio
SVTHitWriter.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -5,36 +5,46 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.HPSSVTConstants;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.readout.svt.FpgaData;
-import org.hps.readout.svt.SVTData;
 import org.jlab.coda.jevio.DataType;
 import org.jlab.coda.jevio.EventBuilder;
 import org.jlab.coda.jevio.EvioBank;
 import org.jlab.coda.jevio.EvioException;
+
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.LCRelation;
 import org.lcsim.event.RawTrackerHit;
+import org.lcsim.geometry.Subdetector;
 import org.lcsim.lcio.LCIOConstants;
 
+import org.hps.conditions.deprecated.HPSSVTConstants;
+//===> import org.hps.conditions.deprecated.SvtUtils;
+import org.hps.readout.svt.FpgaData;
+import org.hps.readout.svt.SVTData;
+
 import static org.hps.evio.EventConstants.SVT_BANK_NUMBER;
 import static org.hps.evio.EventConstants.SVT_BANK_TAG;
 
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: SVTHitWriter.java,v 1.5 2013/05/22 18:45:33 jeremy Exp $
  */
 public class SVTHitWriter implements HitWriter {
 
     boolean debug = false;
+    
+    // Subdetector name
+    private static final String subdetectorName = "Tracker";
+
+    // Collection names
     private String hitCollectionName = "SVTRawTrackerHits";
     private String fpgaDataCollectionName = "FPGAData";
     private String relationCollectionName = "SVTTrueHitRelations";
-    String readoutName = "TrackerHits";
-
+    private String readoutName = "TrackerHits";
+    
+    List<Integer> fpgaNumbers = new ArrayList<Integer>(); 
+    
     public SVTHitWriter() {
     }
 
@@ -46,15 +56,26 @@
     public boolean hasData(EventHeader event) {
         return event.hasCollection(RawTrackerHit.class, hitCollectionName);
     }
-
+    
     //make some dummy FpgaData to use in case there isn't any real FpgaData
-    private static Map<Integer, FpgaData> makeFpgaData() {
+    private Map<Integer, FpgaData> makeFpgaData(Subdetector subdetector) {
         double[] temps = new double[HPSSVTConstants.TOTAL_HYBRIDS_PER_FPGA * HPSSVTConstants.TOTAL_TEMPS_PER_HYBRID];
         for (int i = 0; i < HPSSVTConstants.TOTAL_HYBRIDS_PER_FPGA * HPSSVTConstants.TOTAL_TEMPS_PER_HYBRID; i++) {
             temps[i] = 23.0;
         }
+        
         Map<Integer, FpgaData> fpgaData = new HashMap<Integer, FpgaData>();
-        for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+    	List<HpsSiSensor> sensors = subdetector.getDetectorElement().findDescendants(HpsSiSensor.class);
+    
+    	// FIXME: For now, just fill the FPGA numbers list using the sensors. 
+    	//		  This should be moved to the daqMapping class.
+    	for(HpsSiSensor sensor : sensors){
+        	if(!fpgaNumbers.contains(sensor.getFebID())){
+        		fpgaNumbers.add(sensor.getFebID());
+        	}
+        }
+        //===> for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+        for (Integer fpgaNumber : fpgaNumbers) {
             fpgaData.put(fpgaNumber, new FpgaData(fpgaNumber, temps, 0));
         }
 
@@ -65,21 +86,26 @@
     public void writeData(EventHeader event, EventBuilder builder) {
 
         List<RawTrackerHit> hits = event.get(RawTrackerHit.class, hitCollectionName);
-        Map<Integer, FpgaData> fpgaData = makeFpgaData();
+        Map<Integer, FpgaData> fpgaData = makeFpgaData(event.getDetector().getSubdetector(subdetectorName));
 
         System.out.println("Writing " + hits.size() + " SVT hits");
         System.out.println("Writing " + fpgaData.size() + " FPGA data");
 
         Map<Integer, List<int[]>> fpgaHits = new HashMap<Integer, List<int[]>>();
 
-        for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+        //===> for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+        for (Integer fpgaNumber : fpgaNumbers) {
             fpgaHits.put(fpgaNumber, new ArrayList<int[]>());
         }
 
         for (RawTrackerHit hit : hits) {
-            int fpgaAddress = SvtUtils.getInstance().getFPGA((SiSensor) hit.getDetectorElement());
-            int hybridNumber = SvtUtils.getInstance().getHybrid((SiSensor) hit.getDetectorElement());
-            int sensorChannel = hit.getIdentifierFieldValue("strip");
+            //===> int fpgaAddress = SvtUtils.getInstance().getFPGA((SiSensor) hit.getDetectorElement());
+            // FIXME: For now use the FEB ID until HpsTestRunSensor is ready
+        	int fpgaAddress = ((HpsSiSensor) hit.getDetectorElement()).getFebID();
+            //int hybridNumber = SvtUtils.getInstance().getHybrid((SiSensor) hit.getDetectorElement());
+            // FIXME: For now use the FEB Hybrid ID until HpsTestRunSensor is ready
+            int hybridNumber = ((HpsSiSensor) hit.getDetectorElement()).getFebHybridID();
+        	int sensorChannel = hit.getIdentifierFieldValue("strip");
             int apvNumber = SVTData.getAPV(sensorChannel);
             int channelNumber = SVTData.getAPVChannel(sensorChannel);
 
@@ -93,7 +119,8 @@
 
         // Iterate over FPGA's 0 - 6
 //        for (int fpgaNumber = 0; fpgaNumber < SVT_TOTAL_NUMBER_FPGAS; fpgaNumber++) {
-        for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+        //===> for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
+        for (Integer fpgaNumber : fpgaNumbers) {
             FpgaData fpgaDatum = fpgaData.get(fpgaNumber);
             int[] header = fpgaDatum.extractData();
 
@@ -150,7 +177,7 @@
         List<LCRelation> trueHitRelations = event.get(LCRelation.class, relationCollectionName);
         toEvent.put(relationCollectionName, trueHitRelations, LCRelation.class, 0);
 
-        List<FpgaData> fpgaData = new ArrayList(makeFpgaData().values());
+        List<FpgaData> fpgaData = new ArrayList(makeFpgaData(event.getDetector().getSubdetector(subdetectorName)).values());
         System.out.println("Writing " + fpgaData.size() + " FPGA data");
 
         toEvent.put(fpgaDataCollectionName, fpgaData, FpgaData.class, 0);

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
PedestalPlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/PedestalPlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/PedestalPlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -16,8 +16,10 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.SvtUtils;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -28,7 +30,6 @@
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: $
  */
 public class PedestalPlots extends Driver {
 
@@ -41,7 +42,9 @@
     private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
     private String fitFile = null;
     private boolean plotTimeSeries = false;
-
+    private static final String subdetectorName = "Tracker";
+    
+    
     public void setFitFile(String fitFile) {
         this.fitFile = fitFile;
     }
@@ -61,7 +64,10 @@
         sumsqs = new HashMap<SiSensor, double[]>();
         plots = new HashMap<SiSensor, IDataPointSet[]>();
 
-        for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        List<SiSensor> sensors = detector.getSubdetector(subdetectorName).getDetectorElement().findDescendants(SiSensor.class);
+        
+        //===> for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        for (SiSensor sensor : sensors) {
             hists.put(sensor, aida.histogram2D(sensor.getName() + " sample 1 vs. ch", 640, -0.5, 639.5, 500, -500.0, 3000.0));
             if (plotTimeSeries) {
                 counts.put(sensor, new int[640]);
@@ -86,9 +92,10 @@
             List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
 
             for (RawTrackerHit hit : rawTrackerHits) {
-                SiSensor sensor = (SiSensor) hit.getDetectorElement();
+                HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
                 int strip = hit.getIdentifierFieldValue("strip");
-                double pedestal = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
+                double pedestal = sensor.getPedestal(strip, 0);
+                //===> double pedestal = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
                 hists.get(sensor).fill(strip, hit.getADCValues()[0] - pedestal);
 
                 if (plotTimeSeries) {

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTEventInfo.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventInfo.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTEventInfo.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -12,11 +12,12 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.util.Resettable;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.EventHeader;
@@ -171,7 +172,8 @@
 
         ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
         SiSensorElectrodes electrodes = ((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
-        if(!SvtUtils.getInstance().isTopLayer(sensor))
+        //===> if(!SvtUtils.getInstance().isTopLayer(sensor))
+        if(!((HpsSiSensor) sensor).isTopLayer())
             return false;
         return true;
     }

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTHitPulsePlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTHitPulsePlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTHitPulsePlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -14,10 +14,12 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.hps.util.Resettable;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -124,17 +126,19 @@
 
     private void fillPlots(RawTrackerHit hit) {
         String sensorName = hit.getDetectorElement().getName();
-        SiSensor sensor = (SiSensor) hit.getDetectorElement();
+        HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
         int strip = hit.getIdentifierFieldValue("strip");
         short[] adcVal = hit.getADCValues();
-        double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
-        double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
+        //===> double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
+        //===> double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
         for (int i = 0; i < 6; i++) {
-            double pedSub = (adcVal[i] - ped);
+            //===> double pedSub = (adcVal[i] - ped);
+            double pedSub = (adcVal[i] - sensor.getPedestal(strip, i));
             aida.histogram2D(sensorName + "_AdcVsChan").fill(pedSub, strip);
             //only plot hits above threshold...
 //            if (pedSub / noise > 3 && hasAdjacentHit(hit) && noise < 70)
-            if (hasAdjacentHit(hit) && noise < 100) {
+            //===> if (hasAdjacentHit(hit) && noise < 100) {
+            if (hasAdjacentHit(hit) && sensor.getNoise(strip, i) < 100) {
                 aida.profile1D(sensorName + "_pulse").fill(24.0 * i, pedSub);
             }
         }

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTHitReconstructionPlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTHitReconstructionPlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTHitReconstructionPlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -15,13 +15,14 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.FittedRawTrackerHit;
 import org.hps.util.Resettable;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.DopedSilicon;
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -33,8 +34,6 @@
 /**
  *
  * @author mgraham
- * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg
- * Exp $
  */
 public class SVTHitReconstructionPlots extends Driver implements Resettable {
 
@@ -51,12 +50,12 @@
     IPlotter plotter4;
     IPlotter plotter5;
     IPlotter plotter6;
-    IHistogram1D nrawPlot[][] = new IHistogram1D[2][10];
+    /*IHistogram1D nrawPlot[][] = new IHistogram1D[2][10];
     IHistogram1D nrecoPlot[][] = new IHistogram1D[2][10];
     IHistogram1D nclustPlot[][] = new IHistogram1D[2][10];
     IHistogram1D clusterSizePlot[][] = new IHistogram1D[2][10];
     IHistogram1D clusterAmpPlot[][] = new IHistogram1D[2][10];
-    IHistogram2D clposVsStrip[][] = new IHistogram2D[2][10];
+    IHistogram2D clposVsStrip[][] = new IHistogram2D[2][10];*/
     private Map<String, Integer> sensorRegionMap;
     private String outputPlots = null;
 
@@ -133,6 +132,21 @@
         style8.zAxisStyle().setParameter("scale", "log");
         plotter6.createRegions(5, 4);
 
+       
+       // TODO: Check if this block of code is equivalent to the block commented out below
+       for(SiSensor sensor : sensors){
+    	   
+                int region = computePlotterRegion(sensor);
+                plotter1.region(region).plot(aida.histogram1D(sensor.getName() + "_raw_hits", 10, -0.5, 9.5));
+                plotter3.region(region).plot(aida.histogram1D(sensor.getName() + "_reco_hits", 10, -0.5, 9.5));
+                plotter2.region(region).plot(aida.histogram1D(sensor.getName() + "_cluster_hits", 10, -0.5, 9.5));
+                plotter4.region(region).plot(aida.histogram1D(sensor.getName() + "_cluster_size", 9, 0.5, 9.5));
+                plotter5.region(region).plot(aida.histogram1D(sensor.getName() + "_cluster_amp", 50, 0, 4000.0));
+                ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Cluster amplitude [ADC counts]");
+                plotter6.region(region).plot(aida.histogram2D(sensor.getName() + "_cluster_vs_strip", 128, 0, 640, 100, -50, 50));
+       }
+        
+        /* ===> 
         for (int module = 0; module < 2; module++) {
             for (int layer = 0; layer < 10; layer++) {
                 SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
@@ -152,7 +166,7 @@
                 ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Cluster amplitude [ADC counts]");
                 plotter6.region(region).plot(clposVsStrip[module][layer]);
             }
-        }
+        } ===> */
 
 //        plotter5.region(0).plot(aida.histogram1D("Tracker_TestRunModule_layer6_module0_sensor0" + "_cluster_amp"));
 //        ((PlotterRegion) plotter5.region(0)).getPlot().getXAxis().setLabel("Cluster amplitude [ADC counts]");
@@ -198,7 +212,8 @@
         for (FittedRawTrackerHit hrth : fittedrawHits) {
             SiSensor sensor = (SiSensor) hrth.getRawTrackerHit().getDetectorElement();
             int layer = hrth.getRawTrackerHit().getLayerNumber();
-            if (!SvtUtils.getInstance().isTopLayer(sensor)) {
+            //===> if (!SvtUtils.getInstance().isTopLayer(sensor)) {
+            if (!((HpsSiSensor) sensor).isTopLayer()) {
                 layersBot[layer - 1]++;
             } else {
                 layersTop[layer - 1]++;

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTMonitoringPlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTMonitoringPlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTMonitoringPlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -6,12 +6,13 @@
 import hep.aida.IProfile1D;
 
 import java.util.List;
+
 import org.apache.commons.math3.special.Gamma;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.FittedRawTrackerHit;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
@@ -25,8 +26,6 @@
  * to 20.
  *
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: SensorOccupancyPlotsDriver.java,v 1.12 2012/04/13 00:06:55
- * jeremy Exp $
  *
  */
 public class SVTMonitoringPlots extends Driver {
@@ -42,6 +41,9 @@
     private IHistogram2D[][] t0s = new IHistogram2D[2][10];
     private IHistogram2D[][] amps = new IHistogram2D[2][10];
 
+    private static final String subdetectorName = "Tracker";
+    
+    
     public SVTMonitoringPlots() {
     }
 
@@ -68,6 +70,8 @@
         //plotterFrame = new AIDAFrame();
         //plotterFrame.setTitle("HPS SVT Monitoring");
 
+        List<HpsSiSensor> sensors = detector.getSubdetector(subdetectorName).getDetectorElement().findDescendants(HpsSiSensor.class);
+
         // Setup the plotter.
         IAnalysisFactory fac = aida.analysisFactory();
 
@@ -102,9 +106,22 @@
         plotter3.style().zAxisStyle().setParameter("scale", "log");
         plotter3.style().zAxisStyle().setVisible(false);
         plotter3.createRegions(4, 5);
+        
+        aida.tree().cd("/");
+        // Setup the occupancy plots.
+        for(HpsSiSensor sensor : sensors){
+        	int module = sensor.getModuleNumber();
+        	int layer = sensor.getLayerNumber(); 
+            int region = computePlotterRegion(layer + 1, module);
+            pedestalShifts[module][layer] = aida.profile1D(sensor.getName() + " Pedestal Shifts", 640, -0.5, 639.5);
+            plotter.region(region).plot(pedestalShifts[module][layer]);
+            t0s[module][layer] = aida.histogram2D(sensor.getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
+            plotter2.region(region).plot(t0s[module][layer]);
+            amps[module][layer] = aida.histogram2D(sensor.getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
+           plotter3.region(region).plot(amps[module][layer]);
+        }
 
-        // Setup the occupancy plots.
-        aida.tree().cd("/");
+        /* ===> 
         for (int module = 0; module < 2; module++) {
             for (int layer = 0; layer < 10; layer++) {
                 int region = computePlotterRegion(layer + 1, module);
@@ -117,7 +134,7 @@
                 amps[module][layer] = aida.histogram2D(sensor.getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
                 plotter3.region(region).plot(amps[module][layer]);
             }
-        }
+        } ===> */
         //plotterFrame.pack();
         //plotterFrame.setVisible(true);
     }
@@ -140,8 +157,9 @@
             for (RawTrackerHit hit : rawTrackerHits) {
                 int layer = hit.getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
                 int module = hit.getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
-                double pedestal = HPSSVTCalibrationConstants.getPedestal((SiSensor) hit.getDetectorElement(), hit.getIdentifierFieldValue("strip"));
-                pedestalShifts[module][layer - 1].fill(hit.getIdentifierFieldValue("strip"), hit.getADCValues()[0] - pedestal);
+                //===> double pedestal = HPSSVTCalibrationConstants.getPedestal((SiSensor) hit.getDetectorElement(), hit.getIdentifierFieldValue("strip"));
+                double pedestal = ((HpsSiSensor) hit.getDetectorElement()).getPedestal(hit.getIdentifierFieldValue("strip"), 0);
+                pedestalShifts[module][layer - 1].fill(hit.getIdentifierFieldValue("strip"), hit.getADCValues()[0]- pedestal);
             }
         }
 
@@ -152,7 +170,8 @@
                 int module = fit.getRawTrackerHit().getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
                 int strip = fit.getRawTrackerHit().getIdentifierFieldValue("strip");
                 if (fit.getShapeFitParameters().getChiProb() > Gamma.regularizedGammaQ(4, 5)) {
-                    double noise = HPSSVTCalibrationConstants.getNoise((SiSensor) fit.getRawTrackerHit().getDetectorElement(), strip);
+                    //===> double noise = HPSSVTCalibrationConstants.getNoise((SiSensor) fit.getRawTrackerHit().getDetectorElement(), strip);
+                    double noise = ((HpsSiSensor) fit.getRawTrackerHit().getDetectorElement()).getNoise(strip, 0);
                     if (fit.getAmp() > 4 * noise) {
                         t0s[module][layer - 1].fill(strip, fit.getT0());
                     }

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTPulseFitPlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTPulseFitPlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTPulseFitPlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -11,12 +11,14 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.hps.conditions.deprecated.HPSSVTConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.FittedRawTrackerHit;
 import org.hps.util.Resettable;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.geometry.Detector;
 import org.lcsim.util.Driver;
@@ -25,8 +27,6 @@
 /**
  *
  * @author mgraham
- * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg
- * Exp $
  */
 public class SVTPulseFitPlots extends Driver implements Resettable {
 
@@ -47,8 +47,12 @@
     private IHistogram2D[][] shape = new IHistogram2D[2][10];
 //    private IHistogram2D shape;
 
+    private static final String subdetectorName = "Tracker";
+    
     protected void detectorChanged(Detector detector) {
 
+        List<HpsSiSensor> sensors = detector.getSubdetector(subdetectorName).getDetectorElement().findDescendants(HpsSiSensor.class);
+
         aida.tree().cd("/");
 
         IAnalysisFactory fac = aida.analysisFactory();
@@ -92,6 +96,26 @@
         plotter5.style().zAxisStyle().setVisible(false);
         plotter5.createRegions(4, 5);
 
+        
+        // Setup the occupancy plots.
+        for(HpsSiSensor sensor : sensors){
+        	int module = sensor.getModuleNumber();
+        	int layer = sensor.getLayerNumber(); 
+            int region = computePlotterRegion(layer + 1, module);
+            t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 50, -100, 100.0);
+            plotter.region(region).plot(t0[module][layer]);
+            amp[module][layer] = aida.histogram1D(sensor.getName() + "_amplitude", 50, 0, 2000.0);
+            plotter2.region(region).plot(amp[module][layer]);
+            chiprob[module][layer] = aida.histogram1D(sensor.getName() + "_chiprob", 100, 0, 1.0);
+            plotter3.region(region).plot(chiprob[module][layer]);
+            t0a[module][layer] = aida.histogram2D(sensor.getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
+            plotter4.region(region).plot(t0a[module][layer]);
+            shape[module][layer] = aida.histogram2D(sensor.getName() + " Shape", 200, -1, 3, 200, -0.5, 2);
+            plotter5.region(region).plot(shape[module][layer]);
+        }
+        
+
+        /* ==> 
         for (int module = 0; module < 2; module++) {
             for (int layer = 0; layer < 10; layer++) {
                 SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
@@ -108,7 +132,7 @@
                 plotter5.region(region).plot(shape[module][layer]);
 
             }
-        }
+        } ===> */
     }
 
     public SVTPulseFitPlots() {
@@ -126,7 +150,7 @@
         ++eventCount;
         List<FittedRawTrackerHit> fittedrawHits = event.get(FittedRawTrackerHit.class, fittedTrackerHitCollectionName);
         for (FittedRawTrackerHit fit : fittedrawHits) {
-            SiSensor sensor = (SiSensor) fit.getRawTrackerHit().getDetectorElement();
+            HpsSiSensor sensor = (HpsSiSensor) fit.getRawTrackerHit().getDetectorElement();
             int strip = fit.getRawTrackerHit().getIdentifierFieldValue("strip");
             int layer = fit.getRawTrackerHit().getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
             int module = fit.getRawTrackerHit().getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
@@ -138,14 +162,18 @@
             aida.histogram1D(sensorName + "_amplitude").fill(fittedAmp);
             aida.histogram1D(sensorName + "_chiprob").fill(fit.getShapeFitParameters().getChiProb());
 
-            double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
-            double pedestal = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
-            double tp = HPSSVTCalibrationConstants.getTShaping(sensor, strip);
-
+            //===> double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
+            //===> double pedestal = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
+            //===> double tp = HPSSVTCalibrationConstants.getTShaping(sensor, strip);
+            double tp = sensor.getShapeFitParameters(strip)[HpsSiSensor.TP_INDEX];
+            
             t0a[module][layer - 1].fill(fit.getT0(), fit.getAmp());
-            if (fit.getAmp() > 4 * noise) {
+            //===> if (fit.getAmp() > 4 * noise) {
+            if (fit.getAmp() > 4 * sensor.getNoise(strip, 0)) {
                 for (int i = 0; i < fit.getRawTrackerHit().getADCValues().length; i++) {
-                    shape[module][layer - 1].fill((i * HPSSVTConstants.SAMPLING_INTERVAL - fit.getT0()) / tp, (fit.getRawTrackerHit().getADCValues()[i] - pedestal) / fit.getAmp());
+                    //====> shape[module][layer - 1].fill((i * HPSSVTConstants.SAMPLING_INTERVAL - fit.getT0()) / tp, (fit.getRawTrackerHit().getADCValues()[i] - pedestal) / fit.getAmp());
+                    shape[module][layer - 1].fill((i * HPSSVTConstants.SAMPLING_INTERVAL - fit.getT0()) / tp,
+                    		(fit.getRawTrackerHit().getADCValues()[i] - sensor.getPedestal(strip, i)) / fit.getAmp());
 //                    shape.fill((i * HPSSVTConstants.SAMPLE_INTERVAL - hrth.getT0()) / tp, (hrth.getRawTrackerHit().getADCValues()[i] - pedestal) / hrth.getAmp());
                 }
             }

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
SVTSimpleEventDisplay.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTSimpleEventDisplay.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SVTSimpleEventDisplay.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -5,10 +5,15 @@
 import hep.aida.IPlotterFactory;
 //import hep.aida.jfree.plot.style.DefaultHistogram1DStyle;
 
+
+
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.util.Resettable;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.fit.helicaltrack.HelicalTrackHit;
@@ -22,7 +27,6 @@
  * This class can be configured to reset after each event for use as an
  * event display by calling {@link #setSingleEvent(boolean)}.
  * 
- * @version $Id: SVTSimpleEventDisplay.java,v 1.13 2013/11/06 19:19:55 jeremy Exp $
  */
 public class SVTSimpleEventDisplay extends Driver implements Resettable {
 
@@ -53,6 +57,11 @@
      */
     private boolean singleEvent = true;
 
+    /*
+     * Subdetector Name 
+     */
+    private static final String subdetectorName = "Tracker";
+
     /**
      * Class constructor.
      */
@@ -117,12 +126,14 @@
      * Configure this Driver for a new Detector, e.g. setup the plots and show them.
      */
     protected void detectorChanged(Detector detector) {
+        List<HpsSiSensor> sensors = detector.getSubdetector(subdetectorName).getDetectorElement().findDescendants(HpsSiSensor.class);
+
         createPlotterFactory();
         setupRawTrackerHitPlots();
         setupTrackerHitPlots();
         setupHelicalTrackHitPlots();
         setupHitCountPlots();
-        setupOccupancyPlots();
+        setupOccupancyPlots(sensors);
         showPlots();
     }
 
@@ -180,9 +191,22 @@
         plotter4.show();
     }
 
-    private void setupOccupancyPlots() {
+    private void setupOccupancyPlots(List<HpsSiSensor> sensors) {
         aida.tree().cd("/");
-        for (int module = 0; module < 2; module++) {
+        
+        for(HpsSiSensor sensor : sensors){
+        	int module = sensor.getModuleNumber();
+        	int layer = sensor.getLayerNumber(); 
+            int region = computePlotterRegion(layer + 1, module);
+            rth[module][layer] = aida.histogram1D(sensor.getName() + " RawTrackerHits", 640, -0.5, 639.5);
+            plotter.region(region).plot(rth[module][layer]);
+            th[module][layer] = aida.histogram1D(sensor.getName() + " TrackerHits", 640, -0.5, 639.5);
+            plotter2.region(region).plot(th[module][layer]);
+            hth[module][layer] = aida.histogram1D(sensor.getName() + " HelicalTrackHits", 640, -0.5, 639.5);
+            plotter3.region(region).plot(hth[module][layer]);
+        }
+  
+        /* ===> 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(SvtUtils.getInstance().getSensor(module, layer).getName() + " RawTrackerHits", 640, -0.5, 639.5);
@@ -192,7 +216,7 @@
                 hth[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " HelicalTrackHits", 640, -0.5, 639.5);
                 plotter3.region(region).plot(hth[module][layer]);
             }
-        }
+        } ===> */
     }
 
     /**

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
TrackTimePlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackTimePlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -9,13 +9,11 @@
 
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.readout.ecal.TriggerData;
 import org.hps.util.Resettable;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.DopedSilicon;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
@@ -29,8 +27,6 @@
 /**
  *
  * @author meeg
- * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg
- * Exp $
  */
 public class TrackTimePlots extends Driver implements Resettable {
 
@@ -49,6 +45,8 @@
     private IHistogram1D[] trackTimeRange = new IHistogram1D[2];
     private IHistogram2D[] trackTimeMinMax = new IHistogram2D[2];
 
+    private static final String subdetectorName = "Tracker";
+
     @Override
     protected void detectorChanged(Detector detector) {
     	//plotterFrame = new AIDAFrame();
@@ -56,6 +54,8 @@
 
         aida.tree().cd("/");
 
+        List<HpsSiSensor> sensors = detector.getSubdetector(subdetectorName).getDetectorElement().findDescendants(HpsSiSensor.class);
+
         IPlotterFactory fac = aida.analysisFactory().createPlotterFactory();
 
         IPlotterStyle style;
@@ -120,7 +120,59 @@
         style.dataStyle().errorBarStyle().setVisible(false);
         plotter7.createRegions(2, 2);
 
+        
+        for(HpsSiSensor sensor : sensors){
+        	int module = sensor.getModuleNumber();
+        	int layer = sensor.getLayerNumber(); 
+            int region = computePlotterRegion(layer + 1, module);
+        
+            t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 75, -50, 100.0);
+            plotter.region(region).plot(t0[module][layer]);
+            ((PlotterRegion) plotter.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
+            trackHitT0[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_timing", 75, -50, 4000.0);
+            plotter3.region(region).plot(trackHitT0[module][layer]);
+            ((PlotterRegion) plotter3.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
+            trackHitDt[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_dt", 50, -20, 20.0);
+            plotter4.region(region).plot(trackHitDt[module][layer]);
+            ((PlotterRegion) plotter4.region(region)).getPlot().getXAxis().setLabel("Hit time residual [ns]");
+            trackHit2D[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_2D", 75, -50, 100.0, 50, -20, 20.0);
+            plotter5.region(region).plot(trackHit2D[module][layer]);
+            ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Track time [ns]");
+            ((PlotterRegion) plotter5.region(region)).getPlot().getYAxis().setLabel("Hit time [ns]");
+            trackHitDtChan[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_chan", 200, -20, 20, 50, -20, 20.0);
+            plotter6.region(region).plot(trackHitDtChan[module][layer]);
+            ((PlotterRegion) plotter6.region(region)).getPlot().getXAxis().setLabel("Hit position [mm]");
+            ((PlotterRegion) plotter6.region(region)).getPlot().getYAxis().setLabel("Hit time residual [ns]");
+        }
+        	
         for (int module = 0; module < 2; module++) {
+        
+            trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Time", 75, -50, 100.0);
+            plotter2.region(module).plot(trackT0[module]);
+            ((PlotterRegion) plotter2.region(module)).getPlot().getXAxis().setLabel("Track time [ns]");
+            trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
+            plotter2.region(module + 2).plot(trackTrigTime[module]);
+            ((PlotterRegion) plotter2.region(module+2)).getPlot().getXAxis().setLabel("Track time [ns]");
+            ((PlotterRegion) plotter2.region(module+2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
+            style = plotter2.region(module + 2).style();
+            style.setParameter("hist2DStyle", "colorMap");
+            style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+            style.zAxisStyle().setParameter("scale", "log");
+
+            trackTimeRange[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Hit Time Range", 75, 0, 30.0);
+            plotter7.region(module).plot(trackTimeRange[module]);
+            ((PlotterRegion) plotter7.region(module)).getPlot().getXAxis().setLabel("Track time range [ns]");
+            trackTimeMinMax[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " First and Last Track Hit Times", 75, -50, 100.0, 75, -50, 100.0);
+            plotter7.region(module + 2).plot(trackTimeMinMax[module]);
+            ((PlotterRegion) plotter7.region(module+2)).getPlot().getXAxis().setLabel("First track hit time [ns]");
+            ((PlotterRegion) plotter7.region(module+2)).getPlot().getYAxis().setLabel("Last track hit time [ns]");
+            style = plotter7.region(module + 2).style();
+            style.setParameter("hist2DStyle", "colorMap");
+            style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+            style.zAxisStyle().setParameter("scale", "log");
+        }
+        	
+       /* ===> for (int module = 0; module < 2; module++) {
             for (int layer = 0; layer < 10; layer++) {
                 SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
                 int region = computePlotterRegion(layer + 1, module);
@@ -165,7 +217,7 @@
             style.setParameter("hist2DStyle", "colorMap");
             style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
             style.zAxisStyle().setParameter("scale", "log");
-        }
+        } ===> */
 //        shape = aida.histogram2D("Shape", 200, -1, 3, 200, -0.5, 2);
 //        plotter5.region(0).plot(shape);
 
@@ -225,12 +277,14 @@
             }
         }
 
-        IIdentifierHelper helper = SvtUtils.getInstance().getHelper();
+        //===> IIdentifierHelper helper = SvtUtils.getInstance().getHelper();
         List<SiTrackerHitStrip1D> hits = event.get(SiTrackerHitStrip1D.class, hitCollection);
         for (SiTrackerHitStrip1D hit : hits) {
-            IIdentifier id = hit.getSensor().getIdentifier();
-            int layer = helper.getValue(id, "layer");
-            int module = helper.getValue(id, "module");
+            //===> IIdentifier id = hit.getSensor().getIdentifier();
+            //===> int layer = helper.getValue(id, "layer");
+             int layer = ((HpsSiSensor) hit.getSensor()).getLayerNumber(); 
+             int module = ((HpsSiSensor) hit.getSensor()).getModuleNumber(); 
+            //===> int module = helper.getValue(id, "module");
 //            System.out.format("%d, %d, %d\n",hit.getCellID(),layer,module);
             t0[module][layer - 1].fill(hit.getTime());
         }

java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt
TrackingReconstructionPlots.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/TrackingReconstructionPlots.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -15,9 +15,9 @@
 import java.util.logging.Logger;
 
 import org.hps.conditions.deprecated.BeamlineConstants;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.ecal.HPSEcalCluster;
 import org.hps.recon.tracking.DumbShaperFit;
 import org.hps.recon.tracking.HelixConverter;
@@ -27,6 +27,7 @@
 import org.hps.recon.tracking.TrackUtils;
 import org.hps.util.Resettable;
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.LCIOParameters.ParameterName;
 import org.lcsim.event.RawTrackerHit;
@@ -615,8 +616,9 @@
 //            htc.resetTrackDirection();
             double x = htc.getPosition()[0];
             double y = htc.getPosition()[1];
-            SiSensor sensor = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
-            if (SvtUtils.getInstance().isTopLayer(sensor)) {
+            HpsSiSensor sensor = ((HpsSiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
+            //===> if (SvtUtils.getInstance().isTopLayer(sensor)) {
+            if (sensor.isTopLayer()) {
                 layersTop[htc.Layer() - 1]++;
                 Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
                 if (htc.Layer() == 1) {
@@ -791,10 +793,10 @@
                     aida.histogram1D(modNum + "Residual Y(mm) Bottom").fill(htcross.getCorrectedPosition().z() - zTr);//these hits should be rotated track hits already
 
                 }
-                SiSensor sensor = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
+                HpsSiSensor sensor = ((HpsSiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
                 double x = htcross.getCorrectedPosition().y();
                 double y = htcross.getCorrectedPosition().z();
-                if (SvtUtils.getInstance().isTopLayer(sensor)) {
+                if (sensor.isTopLayer()) {
                     layersTop[htc.Layer() - 1]++;
                     Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
                     if (htc.Layer() == 1) {
@@ -833,8 +835,9 @@
                 for (HelicalTrackStrip hts : htcross.getStrips()) {
                     double clusterSum = 0;
                     for (RawTrackerHit rawHit : (List<RawTrackerHit>) hts.rawhits()) {
-                        ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) rawHit.getDetectorElement(), rawHit.getIdentifierFieldValue("strip"));
-                        for (ShapeFitParameters fit : _shaper.fitShape(rawHit, constants)) {
+                        //===> ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) rawHit.getDetectorElement(), rawHit.getIdentifierFieldValue("strip"));
+                    	//===>for (ShapeFitParameters fit : _shaper.fitShape(rawHit, constants)) {
+                    	for (ShapeFitParameters fit : _shaper.fitShape(rawHit)) {
                             double amp = fit.getAmp();
                             clusterSum += amp;
                             aida.histogram1D("Amp (HitOnTrack)").fill(amp);

java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering
InTimeHitsFilter.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering/InTimeHitsFilter.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering/InTimeHitsFilter.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -2,10 +2,13 @@
 
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.FittedRawTrackerHit;
+
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
@@ -13,9 +16,8 @@
 import org.lcsim.event.RawTrackerHit;
 
 /**
-
- @author mgraham
- @version $Id:
+ *
+ * @author mgraham
  */
 public class InTimeHitsFilter extends EventReconFilter{
    
@@ -81,13 +83,14 @@
     }
 
     private boolean isHitOnTop(RawTrackerHit hit){
-        SiSensor sensor=(SiSensor) hit.getDetectorElement();
+        HpsSiSensor sensor=(HpsSiSensor) hit.getDetectorElement();
         IIdentifier id=hit.getIdentifier();
         SiTrackerIdentifierHelper _sid_helper=(SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
 
         ChargeCarrier carrier=ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
         SiSensorElectrodes electrodes=((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
-        if(!SvtUtils.getInstance().isTopLayer(sensor))
+        //===> if(!SvtUtils.getInstance().isTopLayer(sensor))
+        if(!sensor.isTopLayer())
             return false;
         return true;
     }

java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering
MinimumHitsFilter.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering/MinimumHitsFilter.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/recon/src/main/java/org/hps/recon/filtering/MinimumHitsFilter.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -2,9 +2,11 @@
 
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
@@ -12,9 +14,8 @@
 import org.lcsim.event.RawTrackerHit;
 
 /**
-
- @author mgraham
- @version $Id:
+ *
+ * @author mgraham
  */
 public class MinimumHitsFilter extends EventReconFilter{
   
@@ -60,13 +61,14 @@
 
 
     private boolean isHitOnTop(RawTrackerHit hit){
-        SiSensor sensor=(SiSensor) hit.getDetectorElement();
+    	HpsSiSensor sensor=(HpsSiSensor) hit.getDetectorElement();
         IIdentifier id=hit.getIdentifier();
         SiTrackerIdentifierHelper _sid_helper=(SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
 
         ChargeCarrier carrier=ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
         SiSensorElectrodes electrodes=((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
-        if(!SvtUtils.getInstance().isTopLayer(sensor))
+        //===> if(!SvtUtils.getInstance().isTopLayer(sensor))
+        if(!sensor.isTopLayer())
             return false;
         return true;
     }

java/branches/hps_java_trunk_HPSJAVA-255/steering-files/src/main/resources/org/hps/steering/readout
HPS2014ReadoutToLcio.lcsim 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToLcio.lcsim	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToLcio.lcsim	2014-10-20 04:54:20 UTC (rev 1246)
@@ -26,7 +26,7 @@
 
     <drivers>
         <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
-            <eventInterval>1000</eventInterval>
+            <eventInterval>1</eventInterval>
         </driver> 
         <driver name="CalibrationDriver" type="org.hps.conditions.deprecated.CalibrationDriver">
 <!--            <runNumber>1351</runNumber>    -->

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/readout/svt
SimpleSvtReadout.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,6 +1,5 @@
 package org.hps.readout.svt;
 
-//--- java ---//
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -8,42 +7,48 @@
 import java.util.PriorityQueue;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTConstants;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.readout.ecal.ClockSingleton;
-import org.hps.readout.ecal.ReadoutTimestamp;
-import org.hps.readout.ecal.TriggerableDriver;
-import org.hps.util.RandomGaussian;
-//--- lcsim ---//
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.geometry.Detector;
+
+import org.lcsim.lcio.LCIOConstants;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.LCRelation;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.base.BaseLCRelation;
 import org.lcsim.event.base.BaseRawTrackerHit;
-import org.lcsim.geometry.Detector;
-import org.lcsim.lcio.LCIOConstants;
+
 import org.lcsim.recon.tracking.digitization.sisim.CDFSiSensorSim;
 import org.lcsim.recon.tracking.digitization.sisim.SiElectrodeData;
 import org.lcsim.recon.tracking.digitization.sisim.SiElectrodeDataCollection;
 import org.lcsim.recon.tracking.digitization.sisim.SiSensorSim;
 import org.lcsim.recon.tracking.digitization.sisim.config.SimTrackerHitReadoutDriver;
 
+import org.hps.conditions.deprecated.HPSSVTConstants;
+import org.hps.readout.ecal.ClockSingleton;
+import org.hps.readout.ecal.ReadoutTimestamp;
+import org.hps.readout.ecal.TriggerableDriver;
+import org.hps.util.RandomGaussian;
+
 /**
- * 
+ * SVT readout simulation. 
+ *  
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: SimpleSvtReadout.java,v 1.19 2013/08/07 23:38:32 meeg Exp $
  */
 public class SimpleSvtReadout extends TriggerableDriver {
-
+	
+	//-----------------//
+	//--- Constants ---//
+	//-----------------//
+	private static final String SVT_SUBDETECTOR_NAME = "Tracker";
+	
     private SimTrackerHitReadoutDriver readoutDriver = new SimTrackerHitReadoutDriver();
     private SiSensorSim siSimulation = new CDFSiSensorSim();
-    private String outputCollection = "SVTRawTrackerHits";
-    private String relationCollection = "SVTTrueHitRelations";
     private Map<SiSensor, PriorityQueue<StripHit>[]> hitMap = new HashMap<SiSensor, PriorityQueue<StripHit>[]>();
+    private List<SiSensor> sensors = null;
+    
     // readout period time offset in ns
     private double readoutOffset = 0.0;
     private double readoutLatency = 280.0;
@@ -52,6 +57,7 @@
     private double timeOffset = 30.0;
     private boolean noPileup = false;
     private boolean addNoise = true;
+    
     // cut settings
     private boolean enableThresholdCut = true;
     private int samplesAboveThreshold = 3;
@@ -59,6 +65,11 @@
     private boolean enablePileupCut = true;
     private boolean dropBadChannels = true;
 
+    // Collection Names
+    private String outputCollection = "SVTRawTrackerHits";
+    private String relationCollection = "SVTTrueHitRelations";
+    
+    
     public SimpleSvtReadout() {
         add(readoutDriver);
         triggerDelay = 100.0;
@@ -103,12 +114,17 @@
     public void detectorChanged(Detector detector) {
         super.detectorChanged(detector);
 
+		// Get the collection of all SiSensors from the SVT 
+        sensors 
+        	= detector.getSubdetector(SVT_SUBDETECTOR_NAME).
+        			getDetectorElement().findDescendants(SiSensor.class);
+        
         String[] readouts = { readout };
         readoutDriver.setCollections(readouts);
 
         if (!noPileup) {
-            for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
-                PriorityQueue<StripHit>[] hitQueues = new PriorityQueue[HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR];
+            for(SiSensor sensor : sensors){
+        		PriorityQueue<StripHit>[] hitQueues = new PriorityQueue[HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR];
                 hitMap.put(sensor, hitQueues);
             }
         }
@@ -136,12 +152,12 @@
             }
 
             // dump stale hits
-            for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+            for (SiSensor sensor : sensors) {
                 PriorityQueue<StripHit>[] hitQueues = hitMap.get(sensor);
                 for (int i = 0; i < hitQueues.length; i++) {
                     if (hitQueues[i] != null) {
                         while (!hitQueues[i].isEmpty() && hitQueues[i].peek().time < ClockSingleton.getTime() - (readoutLatency + pileupCutoff)) {
-                            // System.out.format("Time %f: Dump stale hit with time %f\n",ClockSingleton.getTime(),hitQueues[i].peek().time);
+                            System.out.format("Time %f: Dump stale hit with time %f\n",ClockSingleton.getTime(),hitQueues[i].peek().time);
                             hitQueues[i].poll();
                         }
                         if (hitQueues[i].isEmpty()) {
@@ -154,38 +170,36 @@
             // If an ECal trigger is received, make hits from pipelines
             checkTrigger(event);
         } else {
-            // Create a list to hold the analog data
+            
+        	// Create a list to hold the analog data
             List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
 
             for (StripHit stripHit : stripHits) {
-                SiSensor sensor = stripHit.sensor;
+                HpsSiSensor sensor = (HpsSiSensor) stripHit.sensor;
                 int channel = stripHit.channel;
                 double amplitude = stripHit.amplitude;
                 short[] samples = new short[6];
 
                 double[] signal = new double[6];
-                for (int i = 0; i < 6; i++) {
-                    signal[i] = HPSSVTCalibrationConstants.getPedestal(sensor, channel);
+                for (int sampleN = 0; sampleN < 6; sampleN++) {
+                	signal[sampleN] = sensor.getPedestal(channel, sampleN);
                 }
                 if (addNoise) {
                     addNoise(sensor, channel, signal);
                 }
 
-                for (int i = 0; i < 6; i++) {
-                    double time = i * HPSSVTConstants.SAMPLING_INTERVAL - timeOffset;
-                    signal[i] += amplitude * pulseAmplitude(time, HPSSVTCalibrationConstants.getTShaping(sensor, channel));
-                    // signal[i] += amplitude * pulseAmplitude(time,
-                    // HPSSVTCalibrationConstants.getTShaping(sensor, channel)) +
-                    // HPSSVTCalibrationConstants.getPedestal(sensor, channel);
-                    samples[i] = (short) Math.round(signal[i]);
+                for (int sampleN = 0; sampleN < 6; sampleN++) {
+                    double time = sampleN * HPSSVTConstants.SAMPLING_INTERVAL - timeOffset;
+                    double tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX];
+                    signal[sampleN] = amplitude * pulseAmplitude(time, tp);
+                    samples[sampleN] = (short) Math.round(signal[sampleN]);
                 }
 
-                long cell_id = SvtUtils.makeCellID(sensor, channel);
-
-                RawTrackerHit hit = new BaseRawTrackerHit(0, cell_id, samples, new ArrayList<SimTrackerHit>(stripHit.simHits), sensor);
-                // System.out.println("Making RTH");
+                long channel_id = sensor.makeChannelID(channel);
+                RawTrackerHit hit = new BaseRawTrackerHit(0, channel_id, samples, new ArrayList<SimTrackerHit>(stripHit.simHits), sensor);
+                 System.out.println("Making RTH");
                 if (readoutCuts(hit)) {
-                    // System.out.println("RTH passed cuts");
+                     System.out.println("RTH passed cuts");
                     hits.add(hit);
                 }
             }
@@ -193,13 +207,19 @@
             int flags = 1 << LCIOConstants.TRAWBIT_ID1;
             // flags += 1 << LCIOConstants.RTHBIT_HITS;
             event.put(outputCollection, hits, RawTrackerHit.class, flags, readout);
-            // System.out.println("Made " + hits.size() + " RawTrackerHits");
+            System.out.println("Made " + hits.size() + " RawTrackerHits");
         }
     }
 
+    /**
+     * 
+     * @return Collection of StripHits
+     */
     private List<StripHit> doSiSimulation() {
+    	
         List<StripHit> stripHits = new ArrayList<StripHit>();
-        for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        
+        for (SiSensor sensor : sensors) {
 
             // Set the sensor to be used in the charge deposition simulation
             siSimulation.setSensor(sensor);
@@ -242,6 +262,7 @@
 
                         double resistorValue = 100; // Ohms
                         double inputStageGain = 1.5;
+                        // FIXME: This should use the gains instead
                         double amplitude = (charge / HPSSVTConstants.MIP) * resistorValue * inputStageGain * Math.pow(2, 14) / 2000;
 
                         stripHits.add(new StripHit(sensor, channel, amplitude, time, simHits));
@@ -255,32 +276,31 @@
     }
 
     private void addNoise(SiSensor sensor, int channel, double[] signal) {
-        double noise = HPSSVTCalibrationConstants.getNoise(sensor, channel);
-        for (int i = 0; i < 6; i++) {
-            signal[i] += RandomGaussian.getGaussian(0, noise);
+        for (int sampleN = 0; sampleN < 6; sampleN++) {
+            signal[sampleN] += RandomGaussian.getGaussian(0, ((HpsSiSensor) sensor).getNoise(channel, sampleN));
         }
     }
 
     private boolean readoutCuts(RawTrackerHit hit) {
         if (enableThresholdCut && !samplesAboveThreshold(hit)) {
-            // System.out.println("Failed threshold cut");
+            System.out.println("Failed threshold cut");
             return false;
         }
         if (enablePileupCut && !pileupCut(hit)) {
-            // System.out.println("Failed pileup cut");
+            System.out.println("Failed pileup cut");
             return false;
         }
         if (dropBadChannels && !badChannelCut(hit)) {
-            // System.out.println("Failed bad channel cut");
+            System.out.println("Failed bad channel cut");
             return false;
         }
         return true;
     }
 
     private boolean badChannelCut(RawTrackerHit hit) {
-        SiSensor sensor = (SiSensor) hit.getDetectorElement();
+        HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
         int channel = hit.getIdentifierFieldValue("strip");
-        return !HPSSVTCalibrationConstants.isBadChannel(sensor, channel);
+        return !sensor.isBadChannel(channel);
     }
 
     private boolean pileupCut(RawTrackerHit hit) {
@@ -289,16 +309,17 @@
     }
 
     private boolean samplesAboveThreshold(RawTrackerHit hit) {
-        SiSensor sensor = (SiSensor) hit.getDetectorElement();
+        HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
         int channel = hit.getIdentifierFieldValue("strip");
-        HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
-        double pedestal = HPSSVTCalibrationConstants.getPedestal(sensor, channel);
-        double noise = HPSSVTCalibrationConstants.getNoise(sensor, channel);
+        double pedestal = 0; 
+        double noise = 0; 
         int count = 0;
         short[] samples = hit.getADCValues();
-        for (int i = 0; i < samples.length; i++) {
-            // System.out.format("%d, %d\n", samples[i] - pedestal, noise * 3.0);
-            if (samples[i] - pedestal > noise * noiseThreshold) {
+        for (int sampleN = 0; sampleN < samples.length; sampleN++) {
+        	pedestal = sensor.getPedestal(channel, sampleN);
+        	noise = sensor.getNoise(channel, sampleN);
+             //System.out.format("%d, %d\n", samples[sampleN] - pedestal, noise * 3.0);
+            if (samples[sampleN] - pedestal > noise * noiseThreshold) {
                 count++;
             }
         }
@@ -310,7 +331,7 @@
         if (noPileup) {
             return;
         }
-        // System.out.println("Got trigger");
+         System.out.println("Got trigger");
 
         // Create a list to hold the analog data
         List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
@@ -318,15 +339,15 @@
         // Calculate time of first sample
         double firstSample = Math.floor((ClockSingleton.getTime() - readoutLatency - readoutOffset) / HPSSVTConstants.SAMPLING_INTERVAL) * HPSSVTConstants.SAMPLING_INTERVAL + readoutOffset;
 
-        for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        for (SiSensor sensor : sensors) {
             PriorityQueue<StripHit>[] hitQueues = hitMap.get(sensor);
             for (int channel = 0; channel < hitQueues.length; channel++) {
                 if (!addNoise && (hitQueues[channel] == null || hitQueues[channel].isEmpty())) {
                     continue;
                 }
                 double[] signal = new double[6];
-                for (int i = 0; i < 6; i++) {
-                    signal[i] = HPSSVTCalibrationConstants.getPedestal(sensor, channel);
+                for (int sampleN = 0; sampleN < 6; sampleN++) {
+                    signal[sampleN] = ((HpsSiSensor) sensor).getPedestal(channel, sampleN);
                 }
                 if (addNoise) {
                     addNoise(sensor, channel, signal);
@@ -337,34 +358,39 @@
                 if (hitQueues[channel] != null) {
                     for (StripHit hit : hitQueues[channel]) {
                         double totalContrib = 0;
-                        for (int i = 0; i < 6; i++) {
-                            double sampleTime = firstSample + i * HPSSVTConstants.SAMPLING_INTERVAL;
-                            double signalAtTime = hit.amplitude * pulseAmplitude(sampleTime - hit.time, HPSSVTCalibrationConstants.getTShaping(sensor, channel));
+                        double meanNoise = 0; 
+                        for (int sampleN = 0; sampleN < 6; sampleN++) {
+                            double sampleTime = firstSample + sampleN * HPSSVTConstants.SAMPLING_INTERVAL;
+                            System.out.println("sampleTime: " + sampleTime);
+                            double tp = ((HpsSiSensor) sensor).getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX];
+                            System.out.println("tp: " + tp);
+                            double signalAtTime = hit.amplitude * pulseAmplitude(sampleTime - hit.time, tp);
+                            System.out.println("SignalAtTime: " + signalAtTime);
                             totalContrib += signalAtTime;
-                            signal[i] += signalAtTime;
-                            // System.out.format("new value of signal[%d] = %f\n", i, signal[i]);
+                            System.out.println("totalContrib: " + totalContrib);
+                            signal[sampleN] += signalAtTime;
+                            meanNoise += ((HpsSiSensor) sensor).getNoise(channel, sampleN);
+                            System.out.format("new value of signal[%d] = %f\n", sampleN, signal[sampleN]);
                         }
-                        if (totalContrib > 4.0 * HPSSVTCalibrationConstants.getNoise(sensor, channel)) {
-                            // System.out.format("adding %d simHits\n", hit.simHits.size());
+                        meanNoise /= 6;
+                        System.out.println("Mean noise: " + meanNoise);
+                        // Compare to the mean noise of the six samples instead
+                        if(totalContrib > 4.0*meanNoise){ 
+                        	 System.out.format("adding %d simHits\n", hit.simHits.size());
                             simHits.addAll(hit.simHits);
                         }
                     }
                 }
 
                 short[] samples = new short[6];
-                for (int i = 0; i < 6; i++) {
-                    samples[i] = (short) Math.round(signal[i]);
+                for (int sampleN = 0; sampleN < 6; sampleN++) {
+                    samples[sampleN] = (short) Math.round(signal[sampleN]);
                 }
-                // if (hitQueues[channel] != null && !hitQueues[channel].isEmpty()) {
-                // for (int i = 0; i < 6; i++) {
-                // System.out.format("samples[%d] = %d\n", i, samples[i]);
-                // }
-                // }
-                long cell_id = SvtUtils.makeCellID(sensor, channel);
-                RawTrackerHit hit = new BaseRawTrackerHit(0, cell_id, samples, simHits, sensor);
+                long channel_id = ((HpsSiSensor) sensor).makeChannelID(channel); 
+                RawTrackerHit hit = new BaseRawTrackerHit(0, channel_id, samples, simHits, sensor);
                 if (readoutCuts(hit)) {
                     hits.add(hit);
-                    // System.out.format("simHits: %d\n", simHits.size());
+                     System.out.format("simHits: %d\n", simHits.size());
                     for (SimTrackerHit simHit : hit.getSimTrackerHits()) {
                         LCRelation hitRelation = new BaseLCRelation(hit, simHit);
                         trueHitRelations.add(hitRelation);
@@ -374,7 +400,6 @@
         }
 
         int flags = 1 << LCIOConstants.TRAWBIT_ID1;
-        // flags += 1 << LCIOConstants.RTHBIT_HITS;
         event.put(outputCollection, hits, RawTrackerHit.class, flags, readout);
         event.put(relationCollection, trueHitRelations, LCRelation.class, 0);
         System.out.println("Made " + hits.size() + " RawTrackerHits");
@@ -384,8 +409,6 @@
     @Override
     public double readoutDeltaT() {
         double triggerTime = ClockSingleton.getTime() + triggerDelay;
-        // int cycle = (int) Math.floor((triggerTime - readoutOffset + ClockSingleton.getDt()) /
-        // Apv25Constants.SAMPLING_INTERVAL);
         // Calculate time of first sample
         double firstSample = Math.floor((triggerTime - readoutLatency - readoutOffset) / HPSSVTConstants.SAMPLING_INTERVAL) * HPSSVTConstants.SAMPLING_INTERVAL + readoutOffset;
 

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
DataTrackerHitDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/DataTrackerHitDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/DataTrackerHitDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -5,7 +5,6 @@
 import java.util.List;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
@@ -230,13 +229,6 @@
         // toString());
         event.put(this.stripHitOutputCollectionName, stripHits1D, SiTrackerHitStrip1D.class, 0, toString());
         if (debug) {
-            for (int mod = 0; mod < 2; mod++) {
-                for (int layer = 0; layer < 10; layer++) {
-                    counts[mod][layer] += SvtUtils.getInstance().getSensor(mod, layer).getReadout().getHits(SiTrackerHit.class).size();
-                }
-            }
-        }
-        if (debug) {
             System.out.println("[ DataTrackerHitDriver ] - " + this.stripHitOutputCollectionName + " has " + stripHits1D.size() + " hits.");
         }
     }

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
DumbShaperFit.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/DumbShaperFit.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/DumbShaperFit.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -2,15 +2,17 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+
+
+//===>import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.RawTrackerHit;
 
 /**
  *
  * @author Matt Graham
  */
-// FIXME: Is there some other description besides "dumb" that could be used in this class name?
-// --JM
+// FIXME: Change the name of the class to SimpleShaperFit - OM
 // TODO: Add class documentation.
 public class DumbShaperFit implements ShaperFitAlgorithm {
 
@@ -24,19 +26,22 @@
     }
 
     @Override
-    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
-        short[] adcVals = rth.getADCValues();
-        return this.fitShape(adcVals, constants);
+    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth) {
+        short[] samples = rth.getADCValues();
+        HpsSiSensor sensor =(HpsSiSensor) rth.getDetectorElement();
+        int channel = rth.getIdentifierFieldValue("strip");
+        return fitShape(channel, samples, sensor);
     }
-
-    public Collection<ShapeFitParameters> fitShape(short[] adcVals, ChannelConstants constants) {
+    
+    public Collection<ShapeFitParameters> fitShape(int channel, short[] samples, HpsSiSensor sensor){
+    	
         ShapeFitParameters fitresults = new ShapeFitParameters();
         double[] pedSub = {-99.0, -99.0, -99.0, -99.0, -99.0, -99.0};
         double maxADC = -99999;
         int iMax = -1;
         double t0 = -999;
         for (int i = 0; i < 6; i++) {
-            pedSub[i] = adcVals[i] - constants.getPedestal();
+            pedSub[i] = samples[i] - sensor.getPedestal(channel, i);
             if (pedSub[i] > maxADC) {
                 maxADC = pedSub[i];
                 iMax = i;

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
HelicalTrackHitDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -8,11 +8,13 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.StereoPair;
-import org.hps.conditions.deprecated.StereoPair.detectorVolume;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.StereoPair;
+//===> import org.hps.conditions.deprecated.StereoPair.detectorVolume;
+//===> import org.hps.conditions.deprecated.SvtUtils;
+
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.ITransform3D;
+import org.lcsim.detector.converter.compact.subdetector.SvtStereoLayer;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiTrackerModule;
 import org.lcsim.event.EventHeader;
@@ -28,19 +30,22 @@
 import org.lcsim.fit.helicaltrack.HelicalTrackStrip;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
+import org.lcsim.detector.converter.compact.subdetector.HpsTracker2;
 import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
 import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
 import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType;
 
 /**
+ * Driver used to create stereo hits from clusters.
  *
+ *
  * @author Mathew Graham <[log in to unmask]>
  * @author Per Hansson <[log in to unmask]>
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HelicalTrackHitDriver.java,v 1.10 2013/10/17 22:08:33 omoreno
- * Exp $
+ * 
  */
 // TODO: Add class documentation.
+// FIXME: The option to run using the Common geometry should be removed
 public class HelicalTrackHitDriver extends org.lcsim.fit.helicaltrack.HelicalTrackHitDriver {
 
     private boolean _debug = false;
@@ -48,6 +53,7 @@
     // dt cut time in ns
     private String _subdetectorName = "Tracker";
     private final Map<String, String> _stereomap = new HashMap<String, String>();
+    private	List<SvtStereoLayer> stereoLayers = null; 
     private final List<String> _colnames = new ArrayList<String>();
     private boolean _doTransformToTracking = true;
 
@@ -279,23 +285,22 @@
                     hitsOnSensor.add(strip);
                 }
 
-                for (StereoPair stereoPair : SvtUtils.getInstance().getStereoPairs()) {
+                //===> for (StereoPair stereoPair : SvtUtils.getInstance().getStereoPairs()) {
+                for (SvtStereoLayer stereoLayer : stereoLayers) {
 
                     // Form the stereo hits and add them to our hit list
                     List<HelicalTrackCross> newCrosses;
 
-                    if (stereoPair.getDetectorVolume() == detectorVolume.Top) {
-                        newCrosses = _crosser.MakeHits(striplistmap.get(stereoPair.getAxialSensor()), striplistmap.get(stereoPair.getStereoSensor()));
-                    } else if (stereoPair.getDetectorVolume() == detectorVolume.Bottom) {
-                        newCrosses = _crosser.MakeHits(striplistmap.get(stereoPair.getStereoSensor()), striplistmap.get(stereoPair.getAxialSensor()));
+                    //===> if (stereoPair.getDetectorVolume() == detectorVolume.Top) {
+                    if (stereoLayer.getAxialSensor().isTopLayer()) {
+                        newCrosses = _crosser.MakeHits(striplistmap.get(stereoLayer.getAxialSensor()), striplistmap.get(stereoLayer.getStereoSensor()));
+                    //===> } else if (stereoPair.getDetectorVolume() == detectorVolume.Bottom) {
+                    } else if (stereoLayer.getAxialSensor().isBottomLayer()) {
+                        newCrosses = _crosser.MakeHits(striplistmap.get(stereoLayer.getStereoSensor()), striplistmap.get(stereoLayer.getAxialSensor()));
                     } else {
                         throw new RuntimeException("stereo pair is neither top nor bottom");
                     }
 
-                    if (_debug) {
-                        System.out.printf("%s: Found %d stereo hits from sensors\n%s: %s : %d hits\n%s: %s with %d hits\n", this.getClass().getSimpleName(), newCrosses.size(), this.getClass().getSimpleName(), stereoPair.getAxialSensor().getName(), striplistmap.get(stereoPair.getAxialSensor()) == null ? 0 : striplistmap.get(stereoPair.getAxialSensor()).size(), this.getClass().getSimpleName(), stereoPair.getStereoSensor().getName(), striplistmap.get(stereoPair.getStereoSensor()) == null ? 0 : striplistmap.get(stereoPair.getStereoSensor()).size());
-                    }
-
                     helicalTrackCrosses.addAll(newCrosses);
                 } // Loop over stereo pairs
             }
@@ -360,6 +365,9 @@
     @Override
     protected void detectorChanged(Detector detector) {
 
+    	// Get the collection of stereo layers from the detector
+    	stereoLayers = ((HpsTracker2) detector.getSubdetector(this._subdetectorName).getDetectorElement()).getStereoPairs();
+    	
         /*
          * Setup default pairing
          */

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
MaterialSupervisor.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/MaterialSupervisor.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/MaterialSupervisor.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -6,7 +6,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.IGeometryInfo;
 import org.lcsim.detector.ILogicalVolume;
@@ -78,9 +77,6 @@
 
             SiStripPlane plane = new SiStripPlane(module);
 
-            if (DEBUG) {
-                System.out.printf("%s: %5d %32s %15.2fx%.2f %10.2f %10.3f %10s\n", this.getClass().getSimpleName(), plane.getId(), plane.origin().toString(), plane.getUnmeasuredDimension(), plane.getMeasuredDimension(), plane.getThickness(), plane.getThicknessInRL() * 100, SvtUtils.getInstance().isAxial(module) ? "axial" : "stereo");
-            }
             _detectorVolumes.add(plane);
         }
         if (DEBUG) {

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
NearestNeighborRMSClusterer.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/NearestNeighborRMSClusterer.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/NearestNeighborRMSClusterer.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -8,14 +8,18 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+
 import org.apache.commons.math3.special.Gamma;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTConstants;
+
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+//===> import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.RawTrackerHit;
 
+import org.hps.conditions.deprecated.HPSSVTConstants;
+
 /**
  *
  * @author Matt Graham
@@ -156,8 +160,15 @@
 
             // Get the signal from the readout chip
             double signal = base_hit.getAmp();
-            double noiseRMS = HPSSVTCalibrationConstants.getNoise((SiSensor) rth.getDetectorElement(), channel_number);
-
+            double noiseRMS = 0; 
+            for(int sampleN = 0; sampleN < HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES; sampleN++){
+            	noiseRMS += ((HpsSiSensor) rth.getDetectorElement()).getNoise(channel_number, sampleN);
+            }
+            noiseRMS = noiseRMS/HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES;
+            
+            //===> double noiseRMS = HPSSVTCalibrationConstants.getNoise((SiSensor) rth.getDetectorElement(), channel_number);
+            
+            
             // Mark this hit as available for clustering if it is above the neighbor threshold
             if (signal / noiseRMS >= _neighbor_threshold && passChisqCut(base_hit)) {
                 clusterableSet.add(channel_number);
@@ -205,7 +216,13 @@
                 cluster.add(channel_to_hit.get(clustered_cell));
                 FittedRawTrackerHit hit = channel_to_hit.get(clustered_cell);
                 cluster_signal += hit.getAmp();
-                cluster_noise_squared += Math.pow(HPSSVTCalibrationConstants.getNoise((SiSensor) hit.getRawTrackerHit().getDetectorElement(), clustered_cell), 2);
+                double strip_noise = 0; 
+                for(int sampleN = 0; sampleN < HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES; sampleN++){
+                	strip_noise += ((HpsSiSensor) hit.getRawTrackerHit().getDetectorElement()).getNoise(clustered_cell, sampleN);
+                }
+                strip_noise = strip_noise/HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES;
+                cluster_noise_squared += Math.pow(strip_noise, 2); 
+                //===> cluster_noise_squared += Math.pow(HPSSVTCalibrationConstants.getNoise((SiSensor) hit.getRawTrackerHit().getDetectorElement(), clustered_cell), 2);
                 cluster_weighted_time += hit.getT0() * hit.getAmp();
                 // cluster_noise_squared +=0; //need to get the noise from the calib. const. class
                 // Get the neigbor channels

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
NoiselessReadoutChip.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/NoiselessReadoutChip.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/NoiselessReadoutChip.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,6 +1,3 @@
-/*
- * Class BasicReadoutChip
- */
 package org.hps.recon.tracking;
 
 import java.util.ArrayList;
@@ -8,8 +5,9 @@
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.recon.tracking.digitization.sisim.ReadoutChip;
@@ -166,7 +164,9 @@
 
         // Loop over the channels contained in the SiElectrodeDataCollection
         for (Integer channel : data.keySet()) {
-            if (dropBadChannels && HPSSVTCalibrationConstants.isBadChannel((SiSensor) electrodes.getDetectorElement(), channel)) {
+        	
+        	if(dropBadChannels && ((HpsSiSensor) electrodes.getDetectorElement()).isBadChannel(channel)){
+            //===> if (dropBadChannels && HPSSVTCalibrationConstants.isBadChannel((SiSensor) electrodes.getDetectorElement(), channel)) {
                 // System.out.format("%d bad\n", channel);
                 continue;
             }

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
RawTrackerHitFitterDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -5,11 +5,11 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
 import org.hps.conditions.deprecated.HPSSVTConstants;
 import org.hps.readout.ecal.ReadoutTimestamp;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+//===> import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
@@ -112,10 +112,13 @@
         // Make a fitted hit from this cluster
         for (RawTrackerHit hit : rawHits) {
             int strip = hit.getIdentifierFieldValue("strip");
-            ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) hit.getDetectorElement(), strip);
-            for (ShapeFitParameters fit : _shaper.fitShape(hit, constants)) {
+            HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
+            //===> ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) hit.getDetectorElement(), strip);
+            //for (ShapeFitParameters fit : _shaper.fitShape(hit, constants)) {
+            for (ShapeFitParameters fit : _shaper.fitShape(hit)) {
                 if (correctT0Shift) {
-                    fit.setT0(fit.getT0() - constants.getT0Shift());
+                    //===> fit.setT0(fit.getT0() - constants.getT0Shift());
+                    fit.setT0(fit.getT0() - sensor.getT0Shift());
                 }
                 if (subtractTOF) {
                     double tof = hit.getDetectorElement().getGeometry().getPosition().magnitude() / (Const.SPEED_OF_LIGHT * Const.nanosecond);

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
SVTBadChannelFilterDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -3,39 +3,49 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.EventHeader.LCMetaData;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.util.Driver;
 
 /**
+ * Driver used to filter out RawTrackerHits that have been identified to come
+ * from noisy/dead channels.  
  * 
  * @author Sho Uemura <[log in to unmask]>
+ * @version $Id$
+ * 
  */
-// TODO: Add class documentation.
 public class SVTBadChannelFilterDriver extends Driver {
 
+	// RawTrackerHit collection name 
     private String rawTrackerHitCollection = "SVTRawTrackerHits";
 
     @Override
     public void process(EventHeader event) {
+    	
         if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollection)) {
-            List<RawTrackerHit> hits = event.get(RawTrackerHit.class, rawTrackerHitCollection);
-            LCMetaData meta = event.getMetaData(hits);
-            Iterator<RawTrackerHit> i = hits.iterator();
-            while (i.hasNext()) {
-                RawTrackerHit hit = i.next();
+            
+        	// Get the list of raw hits from the event
+        	List<RawTrackerHit> hits = event.get(RawTrackerHit.class, rawTrackerHitCollection);
+        	
+            // Get the hits meta data from the event
+        	LCMetaData meta = event.getMetaData(hits);
+            
+        	// Iterate over all raw hits in the event.  If the raw hit is 
+        	// identified to come from a noisy/bad channel, remove it from
+        	// the list of raw hits.
+            Iterator<RawTrackerHit> hitsIterator = hits.iterator();
+            while (hitsIterator.hasNext()) {
+                
+            	RawTrackerHit hit = hitsIterator.next();
                 hit.setMetaData(meta);
                 int strip = hit.getIdentifierFieldValue("strip");
-                SiSensor sensor = (SiSensor) hit.getDetectorElement();
+                HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
 
-                // System.out.format("module %d, layer %d, strip %d\n",
-                // hit.getIdentifierFieldValue("module"), hit.getIdentifierFieldValue("layer"),
-                // hit.getIdentifierFieldValue("strip"));
-                if (HPSSVTCalibrationConstants.isBadChannel(sensor, strip)) {
-                    i.remove();
+                if(sensor.isBadChannel(strip)){
+                	hitsIterator.remove();
                 }
 
                 if (!sensor.getReadout().getHits(RawTrackerHit.class).isEmpty()) {

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
ShaperAnalyticFitAlgorithm.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperAnalyticFitAlgorithm.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperAnalyticFitAlgorithm.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -2,9 +2,11 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+
 import org.apache.commons.math3.special.Gamma;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
 import org.hps.conditions.deprecated.HPSSVTConstants;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.RawTrackerHit;
 
 /**
@@ -22,23 +24,27 @@
     }
 
     @Override
-    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
-        return this.fitShape(rth.getADCValues(), constants);
+    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth) {
+        short[] samples = rth.getADCValues();
+        HpsSiSensor sensor =(HpsSiSensor) rth.getDetectorElement();
+        int channel = rth.getIdentifierFieldValue("strip");
+        return this.fitShape(channel, samples, sensor);
+    	//===> return this.fitShape(rth.getADCValues(), constants);
     }
 
-    public Collection<ShapeFitParameters> fitShape(short[] samples, ChannelConstants constants) {
+    public Collection<ShapeFitParameters> fitShape(int channel, short[] samples, HpsSiSensor sensor) {
         double minChisq = Double.POSITIVE_INFINITY;
         int bestStart = 0;
         ShapeFitParameters fit = new ShapeFitParameters();
         for (int i = 0; i < samples.length - 2; i++) {
-            double chisq = fitSection(samples, constants, fit, i);
+            double chisq = fitSection(channel, samples, sensor, fit, i);
             // System.out.println("i = " + i + ", " + fit);
             if (chisq < minChisq) {
                 minChisq = chisq;
                 bestStart = i;
             }
         }
-        fitSection(samples, constants, fit, bestStart);
+        fitSection(channel, samples, sensor, fit, bestStart);
         // System.out.format("%f\t%f\t%f\t%f\t%f\t%f\n", samples[0] - constants.getPedestal(),
         // samples[1] - constants.getPedestal(), samples[2] - constants.getPedestal(), samples[3] -
         // constants.getPedestal(), samples[4] - constants.getPedestal(), samples[5] -
@@ -49,21 +55,27 @@
         return fits;
     }
 
-    private double fitSection(short[] samples, ChannelConstants constants, ShapeFitParameters fit, int start) {
+    private double fitSection(int channel, short[] samples, HpsSiSensor sensor, ShapeFitParameters fit, int start) {
         int length = samples.length - start;
         double[] y = new double[length];
         double[] t = new double[length];
 
+        double tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX];
+
         for (int i = 0; i < length; i++) {
-            y[i] = samples[start + i] - constants.getPedestal();
+            //===> y[i] = samples[start + i] - constants.getPedestal();
+        	y[i] = samples[start + i] - sensor.getPedestal(channel, i);
             t[i] = HPSSVTConstants.SAMPLING_INTERVAL * i;
         }
 
         double[] p = new double[length];
         double[] a = new double[length];
         for (int i = 0; i < length; i++) {
-            p[i] = y[i] / constants.getNoise();
-            a[i] = Math.exp(1 - t[i] / constants.getTp()) / (constants.getTp() * constants.getNoise());
+            //===> p[i] = y[i] / constants.getNoise();
+            p[i] = y[i] / sensor.getNoise(channel, i);
+            //===> a[i] = Math.exp(1 - t[i] / constants.getTp()) / (constants.getTp() * constants.getNoise());
+            
+            a[i] = Math.exp(1 - t[i] /tp  / (tp * sensor.getNoise(channel, i)));
         }
 
         double pa, aatt, pat, aat, aa;
@@ -81,13 +93,15 @@
         }
 
         double t0 = (pa * aatt - pat * aat) / (pa * aat - aa * pat);
-        double A = pa / ((Math.exp(t0 / constants.getTp()) * (aat - t0 * aa)));
+        //===> double A = pa / ((Math.exp(t0 / constants.getTp()) * (aat - t0 * aa)));
+        double A = pa / ((Math.exp(t0 / tp) * (aat - t0 * aa)));
 
         double time_var = 0;
         double height_var = 0;
         for (int i = 0; i < length; i++) {
             double dt_dp = a[i] * (aatt - t[i] * aat - t0 * (aat - t[i] * aa)) / (pa * aat - aa * pat);
-            double dh_dp = (a[i] * Math.exp(-1.0 * t0 / constants.getTp()) + A * dt_dp * aa) / (aat - t0 * aa) - A * dt_dp / constants.getTp();
+            //===> double dh_dp = (a[i] * Math.exp(-1.0 * t0 / constants.getTp()) + A * dt_dp * aa) / (aat - t0 * aa) - A * dt_dp / constants.getTp();
+            double dh_dp = (a[i] * Math.exp(-1.0 * t0 / tp) + A * dt_dp * aa) / (aat - t0 * aa) - A * dt_dp / tp;
             time_var += dt_dp * dt_dp;
             height_var += dh_dp * dh_dp;
         }
@@ -100,8 +114,10 @@
         double chisq = 0;
         for (int i = 0; i < samples.length; i++) {
             double ti = HPSSVTConstants.SAMPLING_INTERVAL * i;
-            double fit_y = A * (Math.max(0, (ti - t0)) / constants.getTp()) * Math.exp(1 - (ti - t0) / constants.getTp()) + constants.getPedestal();
-            chisq += Math.pow((fit_y - samples[i]) / constants.getNoise(), 2);
+            //===> double fit_y = A * (Math.max(0, (ti - t0)) / constants.getTp()) * Math.exp(1 - (ti - t0) / constants.getTp()) + constants.getPedestal();
+            double fit_y = A * (Math.max(0, (ti - t0)) / tp) * Math.exp(1 - (ti - t0) / tp) + sensor.getPedestal(channel, i);
+            //===> chisq += Math.pow((fit_y - samples[i]) / constants.getNoise(), 2);
+            chisq += Math.pow((fit_y - samples[i]) / sensor.getNoise(channel, i), 2);
         }
 
         if (A > 0 && chisq < Double.POSITIVE_INFINITY) {

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
ShaperFitAlgorithm.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperFitAlgorithm.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperFitAlgorithm.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,7 +1,7 @@
 package org.hps.recon.tracking;
 
 import java.util.Collection;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+//import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
 import org.lcsim.event.RawTrackerHit;
 
 /**
@@ -11,7 +11,8 @@
 // TODO: Add class documentation.
 public interface ShaperFitAlgorithm {
 
-    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants);
+    //===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants);
+    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rawHit);
 
     public void setDebug(boolean debug);
 }

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
ShaperLinearFitAlgorithm.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperLinearFitAlgorithm.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperLinearFitAlgorithm.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -7,6 +7,7 @@
 import java.util.logging.Level;
 import java.util.logging.LogManager;
 import java.util.logging.Logger;
+
 import org.apache.commons.math3.linear.Array2DRowRealMatrix;
 import org.apache.commons.math3.linear.ArrayRealVector;
 import org.apache.commons.math3.linear.CholeskyDecomposition;
@@ -19,10 +20,13 @@
 import org.freehep.math.minuit.FunctionMinimum;
 import org.freehep.math.minuit.MnSimplex;
 import org.freehep.math.minuit.MnUserParameters;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
-import org.hps.conditions.deprecated.HPSSVTConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.RawTrackerHit;
 
+import org.hps.conditions.deprecated.HPSSVTConstants;
+
 /**
  * Fast fitter; currently only fits single hits. Uses Tp from ChannelConstants;
  * fits values and errors for T0 and amplitude.
@@ -34,13 +38,15 @@
     private final int nPulses;
     final double[] amplitudes;
     final double[] amplitudeErrors;
-    private ChannelConstants channelConstants;
+    //===> private ChannelConstants channelConstants;
+    HpsSiSensor sensor = null;
     private final double[] sigma = new double[HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES];
     private final double[] y = new double[HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES];
     private int firstUsedSample;
     private int nUsedSamples;
     private int firstFittedPulse;
     private int nFittedPulses;
+    private int channel; 
     private boolean debug = false;
     private static final Logger minuitLoggger = Logger.getLogger("org.freehep.math.minuit");
 
@@ -61,17 +67,27 @@
     }
 
     @Override
-    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
-        return this.fitShape(rth.getADCValues(), constants);
+    //===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, ChannelConstants constants) {
+    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth) {
+        short[] samples = rth.getADCValues();
+        HpsSiSensor sensor =(HpsSiSensor) rth.getDetectorElement();
+        int channel = rth.getIdentifierFieldValue("strip");
+        return fitShape(channel, samples, sensor);
+        //===> return this.fitShape(rth.getADCValues(), constants);
     }
 
-    public Collection<ShapeFitParameters> fitShape(short[] samples, ChannelConstants constants) {
-        channelConstants = constants;
+    public Collection<ShapeFitParameters> fitShape(int channelNumber, short[] samples, HpsSiSensor siSensor) {
+    //===> public Collection<ShapeFitParameters> fitShape(short[] samples, ChannelConstants constants) {
+        // channelConstants = constants;
+    	this.sensor = siSensor;
+    	this.channel = channelNumber;
         double[] signal = new double[HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES];
 
         for (int i = 0; i < samples.length; i++) {
-            signal[i] = samples[i] - constants.getPedestal();
-            sigma[i] = constants.getNoise();
+            //===> signal[i] = samples[i] - constants.getPedestal();
+            signal[i] = samples[i] - sensor.getPedestal(channel, i);
+            //===> sigma[i] = constants.getNoise();
+            sigma[i] = sensor.getNoise(channel, i);
         }
 
 //        if (signal[0]>300.0) {
@@ -155,7 +171,8 @@
 
                 //subtract first pulse from fit input
                 for (int i = 0; i < samples.length; i++) {
-                    fitData[i] -= amplitudes[firstFittedPulse] * getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * i - frontFit.userState().value(0), channelConstants);
+                    //===> fitData[i] -= amplitudes[firstFittedPulse] * getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * i - frontFit.userState().value(0), channelConstants);
+                    fitData[i] -= amplitudes[firstFittedPulse] * getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * i - frontFit.userState().value(0), this.channel, this.sensor);
                 }
 
                 if (debug) {
@@ -298,7 +315,8 @@
 
         for (int j = 0; j < nUsedSamples; j++) {
             for (int i = 0; i < nFittedPulses; i++) {
-                sc_mat.setEntry(i, j, getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * (firstUsedSample + j) - times[i], channelConstants) / sigma[firstUsedSample + j]);
+                //===> sc_mat.setEntry(i, j, getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * (firstUsedSample + j) - times[i], channelConstants) / sigma[firstUsedSample + j]);
+                sc_mat.setEntry(i, j, getAmplitude(HPSSVTConstants.SAMPLING_INTERVAL * (firstUsedSample + j) - times[i], this.channel, this.sensor) / sigma[firstUsedSample + j]);
             }
             y_vec.setEntry(j, y[firstUsedSample + j] / sigma[firstUsedSample + j]);
             var_vec.setEntry(j, sigma[firstUsedSample + j] * sigma[firstUsedSample + j]);
@@ -334,11 +352,14 @@
         return chisq;
     }
 
-    private static double getAmplitude(double time, ChannelConstants channelConstants) {
+    //===> private static double getAmplitude(double time, ChannelConstants channelConstants) {
+    private static double getAmplitude(double time, int channel, HpsSiSensor sensor) {
         if (time < 0) {
             return 0;
         }
-        return (time / channelConstants.getTp()) * Math.exp(1 - time / channelConstants.getTp());
+        double tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX];
+        //===> return (time / channelConstants.getTp()) * Math.exp(1 - time / channelConstants.getTp());
+        return (time / tp) * Math.exp(1 - time / tp);
     }
 
     @Override

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
ShaperPileupFitAlgorithm.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperPileupFitAlgorithm.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/ShaperPileupFitAlgorithm.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,13 +1,12 @@
 package org.hps.recon.tracking;
 
 import java.util.Collection;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.lcsim.event.RawTrackerHit;
 
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: $
  */
 public class ShaperPileupFitAlgorithm implements ShaperFitAlgorithm {
 
@@ -26,13 +25,16 @@
         refitThreshold = threshold;
     }
 
-    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, HPSSVTCalibrationConstants.ChannelConstants constants) {
-        Collection<ShapeFitParameters> fittedPulses = onePulseFitter.fitShape(rth, constants);
+    //===> public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth, HPSSVTCalibrationConstants.ChannelConstants constants) {
+    public Collection<ShapeFitParameters> fitShape(RawTrackerHit rth) {
+        //===> Collection<ShapeFitParameters> fittedPulses = onePulseFitter.fitShape(rth, constants);
+        Collection<ShapeFitParameters> fittedPulses = onePulseFitter.fitShape(rth);
         double singlePulseChiProb = fittedPulses.iterator().next().getChiProb();
         totalFits++;
         if (singlePulseChiProb < refitThreshold) {
             refitAttempts++;
-            Collection<ShapeFitParameters> doublePulse = twoPulseFitter.fitShape(rth, constants);
+            //===> Collection<ShapeFitParameters> doublePulse = twoPulseFitter.fitShape(rth, constants);
+            Collection<ShapeFitParameters> doublePulse = twoPulseFitter.fitShape(rth);
             double doublePulseChiProb = doublePulse.iterator().next().getChiProb();
             if (doublePulseChiProb > singlePulseChiProb) {
                 refitsAccepted++;

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
TrackUtils.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/TrackUtils.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,6 +1,5 @@
 package org.hps.recon.tracking;
 
-//--- hep ---//
 import hep.physics.matrix.SymmetricMatrix;
 import hep.physics.vec.BasicHep3Vector;
 import hep.physics.vec.Hep3Matrix;
@@ -13,16 +12,14 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.BeamlineConstants;
-import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.ITransform3D;
 import org.lcsim.detector.solids.Box;
 import org.lcsim.detector.solids.Point3D;
 import org.lcsim.detector.solids.Polygon3D;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.RawTrackerHit;
-//--- org.lcsim ---//
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
 import org.lcsim.fit.helicaltrack.HelicalTrackFit;
@@ -35,6 +32,8 @@
 import org.lcsim.recon.tracking.seedtracker.SeedCandidate;
 import org.lcsim.recon.tracking.seedtracker.SeedTrack;
 import org.lcsim.util.swim.Helix;
+import org.hps.conditions.deprecated.BeamlineConstants;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 
 /**
  * Assorted helper functions for the track and helix objects in lcsim. Re-use as much of HelixUtils
@@ -338,7 +337,6 @@
         Box sensorSolid = (Box) sensor.getGeometry().getLogicalVolume().getSolid();
         Polygon3D sensorFace = sensorSolid.getFacesNormalTo(new BasicHep3Vector(0, 0, 1)).get(0);
         if (debug) {
-            System.out.println("sensorContainsTrack:  Sensor: " + SvtUtils.getInstance().getDescription(sensor));
             System.out.println("sensorContainsTrack:  Track Position: " + trackPosition.toString());
         }
 
@@ -543,7 +541,9 @@
         List<TrackerHit> hitsOnTrack = track.getTrackerHits();
         for (TrackerHit hit : hitsOnTrack) {
             HelicalTrackHit hth = (HelicalTrackHit) hit;
-            if (SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit) hth.getRawHits().get(0)).getDetectorElement())) {
+            //===> if (SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit) hth.getRawHits().get(0)).getDetectorElement())) {
+            HpsSiSensor sensor = ((HpsSiSensor) ((RawTrackerHit) hth.getRawHits().get(0)).getDetectorElement());
+            if(sensor.isTopLayer()){
                 n[0] = n[0] + 1;
             } else {
                 n[1] = n[1] + 1;

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking
TrackerHitUtils.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/TrackerHitUtils.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/TrackerHitUtils.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -11,7 +11,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.ITransform3D;
 import org.lcsim.detector.identifier.ExpandedIdentifier;
@@ -20,6 +21,7 @@
 import org.lcsim.detector.identifier.IIdentifierDictionary;
 import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.event.RawTrackerHit;
@@ -31,7 +33,6 @@
 /**
  * 
  * @author Per Hansson <[log in to unmask]>
- * @version $Id: TrackerHitUtils.java,v 1.4 2013/10/15 00:33:53 phansson Exp $
  */
 // TODO: Add class documentation.
 public class TrackerHitUtils {
@@ -269,7 +270,8 @@
         IIdentifierDictionary dictionary = helper.getIdentifierDictionary();
 
         // Fill in the layer number
-        id.setValue(dictionary.getFieldIndex("layer"), SvtUtils.getInstance().getLayerNumber(sensor));
+        //===> id.setValue(dictionary.getFieldIndex("layer"), SvtUtils.getInstance().getLayerNumber(sensor));
+        id.setValue(dictionary.getFieldIndex("layer"), ((HpsSiSensor) sensor).getLayerNumber());
 
         // Pack and return the identifier
         return helper.pack(id);

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
DataProcessingModule.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/DataProcessingModule.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/DataProcessingModule.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -4,7 +4,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -13,9 +13,9 @@
 /**
  * 
  * @author Omar Moreno
- * @version $Id: DataProcessingModule.java,v 1.1 2013/03/15 21:05:28 meeg Exp $
  */
-public abstract class DataProcessingModule extends Driver{
+// TODO: Sandbox this class
+public abstract class DataProcessingModule extends Driver {
 
     Map<SiSensor, SvtDataBlocks> sensorToDataBlocks = new HashMap<SiSensor, SvtDataBlocks>();
 	
@@ -35,12 +35,12 @@
     
     protected abstract List<RawTrackerHit> findRawHits();
 	
-    @Override
-    public void detectorChanged(Detector detector){
+
+    /*public void detectorChanged(Detector detector){
         for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
             sensorToDataBlocks.put(sensor, new SvtDataBlocks());
         }
-    }
+    }*/
     
 	@Override
 	public void process(EventHeader event){

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
HPSDataProcessingModule.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/HPSDataProcessingModule.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/HPSDataProcessingModule.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -15,7 +15,7 @@
 //--- org.lcsim ---//
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.readout.svt.SVTData;
 import org.lcsim.detector.IReadout;
 import org.lcsim.detector.tracker.silicon.SiSensor;
@@ -30,8 +30,8 @@
 /**
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSDataProcessingModule.java,v 1.3 2013/03/15 21:05:28 meeg Exp $
  */
+// TODO: Sandbox this class
 public class HPSDataProcessingModule extends Driver {
 	
 	// A map relating a sensor to all sample blocks collected from that sensor
@@ -92,10 +92,10 @@
 	@Override
 	public void detectorChanged(Detector detector) {
 
-		for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+		/*for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
 			// Map a sensor to its corresponding samples
 			sensorToSamplesMap.put(sensor, new HashMap<Integer, List<Double>>());
-		}
+		}*/
 	}
 
 	/**
@@ -219,10 +219,11 @@
 		for (Map.Entry<SiSensor, Map<Integer, List<Double>>> sensor : sensorToSamplesMap.entrySet()) {
 
 			// Get the FPGA number
-			fpgaNumber = SvtUtils.getInstance().getFPGA(sensor.getKey());
+			/* ===> 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);
+			===> */
 
 			// Clear the temporary list
 			svtFpgaData.clear();
@@ -265,10 +266,11 @@
 				rawHits.add(rawHit);
 
 				// Get the hybrid number
-				hybridNumber = SvtUtils.getInstance().getHybrid(sensor.getKey());
-				if(hybridNumber > TOTAL_HYBRIDS_PER_FPGA || hybridNumber < 0)
+				//===> 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);
+				===> */
 
 				// Find the APV number. Note that strip numbering is from 639 to 0
 				apvNumber = (TOTAL_APV25_PER_HYBRID - 1) - (int) Math.floor(samples.getKey()/128);
@@ -284,14 +286,14 @@
 				//if(debug) System.out.println(this.getClass().getSimpleName() + ": Raw Channel Number: " + rawChannel);
 				
 				// Create an svtData packet
-				SVTData data = new SVTData(hybridNumber, apvNumber, rawChannel, fpgaNumber, adc);
+				/* ===> SVTData data = new SVTData(hybridNumber, apvNumber, rawChannel, fpgaNumber, adc);
 				svtData.add(data);
 				svtFpgaData.add(data);
-				
+				===> */
 				samples.getValue().clear();
 			}
 
-			HPSSVTDataBuffer.addToBuffer(svtFpgaData, fpgaNumber);
+			//===> HPSSVTDataBuffer.addToBuffer(svtFpgaData, fpgaNumber);
 		}
 		if(debug) System.out.println(this.getClass().getName() + ": Total RawTrackerHits before cuts: " + rawHitsNoCuts.size());
 		if(debug) System.out.println(this.getClass().getName() + ": Total RawTrackerHits: " + rawHits.size());

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
HPSSiSensorReadout.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/HPSSiSensorReadout.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/HPSSiSensorReadout.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -20,7 +20,7 @@
 import org.apache.commons.math.distribution.BinomialDistributionImpl;
 import org.apache.commons.math.distribution.NormalDistribution;
 import org.apache.commons.math.distribution.NormalDistributionImpl;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.readout.ecal.ClockSingleton;
 //--- hps-java ---//
 import org.hps.recon.tracking.apv25.HPSAPV25.APV25Channel.APV25AnalogPipeline;
@@ -43,8 +43,8 @@
  * Class used to Readout HPS APV25's
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSSiSensorReadout.java,v 1.12 2013/03/15 21:05:28 meeg Exp $
  */
+// TODO: Sandbox this classes
 public class HPSSiSensorReadout extends Driver {
 
     //
@@ -142,7 +142,7 @@
         super.detectorChanged(detector);
 
         // Instantiate all maps
-        for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        /*for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
 
             sensorToPipelineMap.put(sensor, new HashMap<Integer, APV25AnalogPipeline>());
 
@@ -158,7 +158,7 @@
 
             sensorToAnalogDataMap.put(sensor, new HashMap<Integer, double[]>());
             sensorToDigitalDataMap.put(sensor, new HashMap<Integer, double[]>());
-        }
+        }*/
     }
 
     /**
@@ -193,10 +193,10 @@
         }
 
         // Loop over all sensors
-        for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
+        /*for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
             // Readout the sensors
             readoutSensor(sensor);
-        }
+        }*/
 
         // If a trigger is received readout the APV25 and digitize all hits
         if (HPSAPV25.readoutBit) {

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
RearTransitionModule.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/RearTransitionModule.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/RearTransitionModule.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,25 +1,22 @@
 package org.hps.recon.tracking.apv25;
 
-//--- java ---//
-//--- Constants ---//
-import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.hps.conditions.deprecated.HPSSVTConstants;
+import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR;
 import org.hps.util.RandomGaussian;
-//--- org.lcsim ---//
+
 import org.lcsim.event.EventHeader;
 import org.lcsim.util.Driver;
-//--- hps-java ---//
 
 /**
  * 
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: RearTransitionModule.java,v 1.2 2013/04/25 22:11:14 meeg Exp $
  */
+// TODO: Sandbox this class. 
 public class RearTransitionModule extends Driver {
 
     String apv25AnalogDataCollectionName = "APV25AnalogData";
@@ -116,15 +113,20 @@
                     apv25Output[index] *= (HPSSVTConstants.MIP/HPSSVTConstants.MULTIPLEXER_GAIN);
 
                     // Digitize the signal 
+                   
+                    // FIXME: Update to use the new conditions system at some point. 
+                    /* ===> 
                     apv25Output[index] *= HPSSVTCalibrationConstants.getGain(analogDatum.getSensor(), physicalChannel);
 
                     // Add pedestal and noise
                     double pedestal = HPSSVTCalibrationConstants.getPedestal(analogDatum.getSensor(), physicalChannel);
                     double noise = HPSSVTCalibrationConstants.getNoise(analogDatum.getSensor(), physicalChannel);
+                    
                     if(!noiseless)
                         apv25Output[index] += RandomGaussian.getGaussian(pedestal, noise);            
                     else
                         apv25Output[index] += pedestal;
+                    ===> */
                 }
 
                 // Add the digital data to the list

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
SvtHalfModule.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/SvtHalfModule.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/SvtHalfModule.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,18 +1,16 @@
 package org.hps.recon.tracking.apv25;
 
-//--- constants ---//
 import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_APV25_PER_HYBRID;
-
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.hps.conditions.deprecated.HPSSVTConstants;
-//--- lcsim ---//
+
 import org.lcsim.detector.tracker.silicon.SiSensor;
 
 /**
  * 
  * @author Omar Moreno
- * @version $Id: SvtHalfModule.java,v 1.7 2013/04/25 22:11:14 meeg Exp $
  */
+// TODO: Sandbox this class. 
 public class SvtHalfModule {
 
     private SiSensor sensor;
@@ -30,13 +28,14 @@
                 int physicalChannel = 639 - (chip*128 + 127 - channel);
                 
                 // Mark all bad channels which were found during QA
-                if(HPSSVTCalibrationConstants.isBadChannel(sensor, physicalChannel)){
+               // FIXME: Update to use the new conditions system at some point. 
+                /* ===> if(HPSSVTCalibrationConstants.isBadChannel(sensor, physicalChannel)){
                     apv25[chip].getChannel(channel).markAsBadChannel();
                 }
 
                 // Set the shaping time
                 double tp = HPSSVTCalibrationConstants.getTShaping(sensor, physicalChannel);
-                apv25[chip].getChannel(channel).setShapingTime(tp);
+                apv25[chip].getChannel(channel).setShapingTime(tp); <=== */
             }
         }
     }

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
SvtReadout.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/SvtReadout.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/SvtReadout.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,7 +1,6 @@
 
 package org.hps.recon.tracking.apv25;
 
-//--- java ---//
 import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_APV25_CHANNELS;
 import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_NUMBER_OF_SAMPLES;
 import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR;
@@ -16,9 +15,8 @@
 import java.util.Set;
 
 import org.hps.conditions.deprecated.HPSSVTConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.readout.ecal.ClockSingleton;
-//--- lcsim ---//
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
@@ -30,14 +28,12 @@
 import org.lcsim.recon.tracking.digitization.sisim.SiSensorSim;
 import org.lcsim.recon.tracking.digitization.sisim.config.SimTrackerHitReadoutDriver;
 import org.lcsim.util.Driver;
-//--- Constants ---//
-//--- hps-java ---//
 
 /**
  * 
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: SvtReadout.java,v 1.12 2013/04/25 22:11:14 meeg Exp $
  */
+// TODO: Sandbox this class
 public class SvtReadout extends Driver {
 
     private Set<SvtHalfModule> halfModules = new HashSet<SvtHalfModule>();
@@ -122,9 +118,9 @@
         super.detectorChanged(detector);
         
         // Instantiate all SVT Half modules
-        for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
+        /*for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
             halfModules.add(new SvtHalfModule(sensor));
-        }
+        }*/
         
         // Set the trigger latency
         for(SvtHalfModule halfModule : halfModules){
@@ -256,12 +252,12 @@
                     double charge = pedestalRun ? 0 : electrodeData.getCharge();
                     
                     if(debug){
-                        if(charge > 0){ 
+                        /*if(charge > 0){ 
                         	System.out.println(this.getClass().getSimpleName() 
                         		+ ": Sensor: " + SvtUtils.getInstance().getDescription(halfModule.getSensor()) 
                         		+ ": Injecting charge " + charge + " into channel " + physicalChannel);
                         	sensorToChannel.get(halfModule.getSensor()).add(physicalChannel);
-                        }
+                        }*/
                     }
                     
                     // Inject the charge into the APV25 amplifier chain
@@ -295,9 +291,6 @@
             		if(sensorToChannel.get(halfModule.getSensor()).contains(physicalChannel)){
             			int channel = physicalChannel - TOTAL_STRIPS_PER_SENSOR
                                 + halfModule.getAPV25Number(physicalChannel)*TOTAL_APV25_CHANNELS + (TOTAL_APV25_CHANNELS - 1); 
-            			System.out.println("\nPhysical Channel: " + physicalChannel 
-            					+ " Sensor: " + SvtUtils.getInstance().getDescription(halfModule.getSensor())
-            					+ apv25[halfModule.getAPV25Number(physicalChannel)].getChannel(channel).getPipeline().toString() + "\n");
             		}
             	}
             }

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25
TestRunDataProcessingModule.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/TestRunDataProcessingModule.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/recon/tracking/apv25/TestRunDataProcessingModule.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -4,7 +4,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
+//===> import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
 import org.lcsim.detector.IReadout;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 import org.lcsim.detector.tracker.silicon.SiSensor;
@@ -16,8 +16,8 @@
 /**
  * 
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: TestRunDataProcessingModule.java,v 1.1 2013/03/15 21:05:28 meeg Exp $
  */
+// TODO: Sandbox this class. 
 public class TestRunDataProcessingModule extends DataProcessingModule {
 
     int nSamplesAboveThreshold = 1;    // Number of samples above noise threshold 
@@ -71,7 +71,8 @@
 
             for(int channel = 0; channel < 639; channel++){
             	
-            	if(HPSSVTCalibrationConstants.isBadChannel(sensor.getKey(), channel)) continue;
+                // FIXME: Update to use the new conditions system at some point. 
+            	//===> if(HPSSVTCalibrationConstants.isBadChannel(sensor.getKey(), channel)) continue;
             	
                 short[] samples = blocks.getSamples(channel);  
 
@@ -104,8 +105,11 @@
     /**
      * 
      */
+    // FIXME: Update to use the new conditions system at some point. 
     private boolean samplesAboveThreshold(SiSensor sensor, int channel, short[] samples){
-        // Number of samples above threshold
+        
+    	/* ===> 
+    	// Number of samples above threshold
         int nSamplesAboveThreshold = 0;
 
         // Get the pedestal and noise for this channel
@@ -121,6 +125,7 @@
 
         // If the prerequisite number of samples are above threshold return true
         if(nSamplesAboveThreshold >= this.nSamplesAboveThreshold ) return true;
+        ===> */
         return false;
     }
 

java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/svt/alignment
BuildCompact.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/tracking/src/main/java/org/hps/svt/alignment/BuildCompact.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -32,7 +32,7 @@
 import org.apache.commons.cli.PosixParser;
 import org.apache.commons.lang.StringUtils;
 import org.hps.conditions.deprecated.HPSSVTSensorSetup;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.CoordinateTransformations;
 import org.jdom.Document;
 import org.jdom.Element;
@@ -44,6 +44,7 @@
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.ITransform3D;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.GeometryReader;
@@ -455,13 +456,15 @@
         //System.out.printf("%d sensors\n",sensors.size());
         for (SiSensor module: sensors) {
             // Create DAQ Maps
-            if (!SvtUtils.getInstance().isSetup()) {
+            /* ===> if (!SvtUtils.getInstance().isSetup()) {
                 SvtUtils.getInstance().setup(det);
-            }
-        	boolean isTop = SvtUtils.getInstance().isTopLayer(module);
+            } ===> */
+        	//===> boolean isTop = SvtUtils.getInstance().isTopLayer(module);
+        	boolean isTop = ((HpsSiSensor) module).isTopLayer();
         	int h = par.getHalf();
         	if ((isTop && h == 1) || (!isTop && h == 2)) {
-        		int layer = SvtUtils.getInstance().getLayerNumber(module);
+        		int layer = ((HpsSiSensor) module).getLayerNumber();
+        		//===> int layer = SvtUtils.getInstance().getLayerNumber(module);
         		if (layer == par.getSensor()) {
         			//found match
         			return module;

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/meeg
LCIOTrackAnalysis.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/meeg/LCIOTrackAnalysis.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/meeg/LCIOTrackAnalysis.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -8,9 +8,11 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.RelationalTable;
@@ -20,8 +22,9 @@
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: LCIOTrackAnalysis.java,v 1.3 2013/10/24 18:11:43 meeg Exp $
  */
+// TODO: This is an exact duplicate of the class in the analysis.example package.
+//		 One of them should be sandboxed
 public class LCIOTrackAnalysis {
 
     protected Track track;
@@ -73,15 +76,19 @@
                 int module = -1;
                 List<RawTrackerHit> rawHits = cl.getRawHits();
 //                System.out.println("RawHits: " + rawHits.size());
+                HpsSiSensor sensor = null; 
                 for (RawTrackerHit rawHit : rawHits) {
 //                    System.out.println(rawHit.getCellID());
                     IIdentifier id = new Identifier(rawHit.getCellID());
-                    int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                    //===> int newLayer = SvtUtils.getInstance().getHelper().getValue(id, "layer");
+                    sensor = ((HpsSiSensor) rawHit.getDetectorElement());
+                    int newLayer = sensor.getLayerNumber();
                     if (layer != -1 && layer != newLayer) {
                         System.out.format("TrackerHit has hits from multiple layers: %d and %d\n", layer, newLayer);
                     }
                     layer = newLayer;
-                    int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                    //===> int newModule = SvtUtils.getInstance().getHelper().getValue(id, "module");
+                    int newModule = sensor.getModuleNumber();
                     if (module != -1 && module != newModule) {
                         System.out.format("TrackerHit has hits from multiple modules: %d and %d\n", module, newModule);
                     }
@@ -98,7 +105,8 @@
                 _hitLocationPerLayer.put(layer, new BasicHep3Vector(cl.getPosition()));
                 _nhitsNew++;
 
-                boolean isAxial = SvtUtils.getInstance().isAxial(SvtUtils.getInstance().getSensor(module, layer - 1));
+                //===> boolean isAxial = SvtUtils.getInstance().isAxial(SvtUtils.getInstance().getSensor(module, layer - 1));
+                boolean isAxial = sensor.isAxial(); 
                 if (isAxial) {
                     _nAxialhits++;
                 } else {

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham
HelicalTrackHitResidualsDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham/HelicalTrackHitResidualsDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham/HelicalTrackHitResidualsDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -15,11 +15,12 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.EventQuality;
 import org.hps.recon.tracking.TrackUtils;
 import org.hps.users.phansson.TrigRateDriver;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.Track;
@@ -139,7 +140,9 @@
                 //htc.setTrackDirection(trk);
                 Map<String,Double> res_track = TrackUtils.calculateTrackHitResidual(hth, trk, this._includeMS);
                 boolean isTop = false;
-                if(SvtUtils.getInstance().isTopLayer((SiSensor)((RawTrackerHit)hth.getRawHits().get(0)).getDetectorElement())) {
+                HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) hth.getRawHits().get(0)).getDetectorElement();
+                //===> if(SvtUtils.getInstance().isTopLayer((SiSensor)((RawTrackerHit)hth.getRawHits().get(0)).getDetectorElement())) {
+                if(sensor.isTopLayer()) {
                     isTop = true;
                 }
                 int layer = hth.Layer();

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham
SVTRawTrackerHitThresholdDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham/SVTRawTrackerHitThresholdDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/mgraham/SVTRawTrackerHitThresholdDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -3,8 +3,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
@@ -14,6 +14,8 @@
  * 
  * @author Matt Graham
  */
+// TODO: Check that this Driver works as expected after it was updated to use 
+// 		 the database conditions system.
 public class SVTRawTrackerHitThresholdDriver extends Driver {
 
     private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
@@ -21,7 +23,6 @@
     private String calibFileName = "foobar";
     private String trackerName = "Tracker";
     private Detector detector;
-    private List<SiSensor> sensors;
     private double noiseThreshold = 3;
     private int nhitsAboveNoise = 2;
 
@@ -59,14 +60,12 @@
 
             // Increment strip hit count.
             for (RawTrackerHit hit : rawTrackerHits) {
-                SiSensor sensor = (SiSensor) hit.getDetectorElement();
+                HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
                 int strip = hit.getIdentifierFieldValue("strip");
                 short[] adcVal = hit.getADCValues();
-                double ped = HPSSVTCalibrationConstants.getPedestal(sensor, strip);
-                double noise = HPSSVTCalibrationConstants.getNoise(sensor, strip);
                 int nAbove = 0;
                 for (int i = 0; i < 6; i++) {
-                    double pedSubNorm = (adcVal[i] - ped) / noise;
+                    double pedSubNorm = (adcVal[i] - sensor.getPedestal(strip, i)) / sensor.getNoise(strip, i);
                     if (pedSubNorm > noiseThreshold)
                         nAbove++;
                 }

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
PlotUtils.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/PlotUtils.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/PlotUtils.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -3,16 +3,21 @@
 import hep.aida.ICloud2D;
 import hep.aida.IFitResult;
 import hep.aida.IFitter;
-//--- hep ---//
 import hep.aida.IHistogram1D;
 import hep.aida.IHistogram2D;
 import hep.aida.IPlotter;
 import hep.aida.IPlotterStyle;
 
-import org.hps.conditions.deprecated.SvtUtils;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.util.aida.AIDA;
 
+/**
+ * A set of plotting utilities.
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ *
+ */
 public class PlotUtils {
 
 	// Default ctor
@@ -87,13 +92,13 @@
      */
     public static int getPlotterRegion(SiSensor sensor) {
 
-        int layer = SvtUtils.getInstance().getLayerNumber(sensor);
+        int layer = ((HpsSiSensor) sensor).getLayerNumber();  
 
         // Compute the sensor's x and y grid coordinates and then translate to region number.
         int ix = (layer - 1) / 2;
         int iy = 0;
-        if (!SvtUtils.getInstance().isTopLayer(sensor)) {
-            iy += 2;
+        if (!((HpsSiSensor) sensor).isTopLayer()){ 
+        	iy += 2;
         }
         if (layer % 2 == 0) {
             iy += 1;

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SimpleSvtTrigger.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SimpleSvtTrigger.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SimpleSvtTrigger.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -5,10 +5,8 @@
 import java.util.List;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.FindableTrack;
 import org.hps.recon.tracking.apv25.Apv25Full;
-import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.SimTrackerHit;
@@ -16,6 +14,7 @@
 import org.lcsim.util.Driver;
 //--- hps-java ---//
 
+// TODO: Sandbox this class
 public class SimpleSvtTrigger extends Driver {
     
     FindableTrack findable = null;
@@ -133,10 +132,10 @@
      */
     private boolean isSameSvtVolume(Set<SimTrackerHit> simTrackerHits){
         int volumeIndex = 0;
-        for(SimTrackerHit simTrackerHit : simTrackerHits){
+        /*for(SimTrackerHit simTrackerHit : simTrackerHits){
             if(SvtUtils.getInstance().isTopLayer((SiSensor) simTrackerHit.getDetectorElement())) volumeIndex++;
             else volumeIndex--;
-        }
+        }*/
         return Math.abs(volumeIndex) == simTrackerHits.size();
     }
     

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SvtHitCorrelations.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtHitCorrelations.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtHitCorrelations.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,26 +1,21 @@
 package org.hps.users.omoreno;
 
-//--- java ---//
-//--- aida ---//
 import hep.aida.IPlotter;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Detector;
-//--- org.lcsim ---//
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
-//--- hps-java ---//
 
 /**
- * 
- * @author Omar Moreno
- * @version $Id: SvtHitCorrelations.java,v 1.2 2013/10/25 19:45:01 jeremy Exp $
+ * Driver to find the correlations between stereo hits.
+ *  
+ * @author Omar Moreno <[log in to unmask]>
  *
  */
 public class SvtHitCorrelations extends Driver {
@@ -143,29 +138,29 @@
 		
 		for(RawTrackerHit rawHit1 : rawHits){
 	
-			SiSensor sensor1 = (SiSensor) rawHit1.getDetectorElement();
-			int layer1 = (int) Math.ceil(((double) SvtUtils.getInstance().getLayerNumber(sensor1))/2);
+			HpsSiSensor sensor1 = (HpsSiSensor) rawHit1.getDetectorElement();
+			int layer1 = (int) Math.ceil(((double) sensor1.getLayerNumber())/2);
 			int channel1 = rawHit1.getIdentifierFieldValue("strip");
 			
 			for(RawTrackerHit rawHit2 : rawHits){
 			
-				SiSensor sensor2 = (SiSensor) rawHit2.getDetectorElement();
-				int layer2 = (int) Math.ceil(((double) SvtUtils.getInstance().getLayerNumber(sensor2))/2);
+				HpsSiSensor sensor2 = (HpsSiSensor) rawHit2.getDetectorElement();
+				int layer2 = (int) Math.ceil(((double) sensor2.getLayerNumber())/2);
 				int channel2 = rawHit2.getIdentifierFieldValue("strip");
 			
-				if(SvtUtils.getInstance().isTopLayer(sensor1) && SvtUtils.getInstance().isTopLayer(sensor2)){
-					if(SvtUtils.getInstance().isAxial(sensor1) && SvtUtils.getInstance().isAxial(sensor2) && taa){
+				if(sensor1.isTopLayer() && sensor2.isTopLayer()){
+					if(sensor1.isAxial() && sensor2.isAxial() && taa){
 						String plotName = "Top Channel Correlation: Axial Layer " + layer1 + " vs Axial Layer " + layer2;
 						aida.histogram2D(plotName).fill(channel1, channel2);
-					} else if(SvtUtils.getInstance().isAxial(sensor1) && !SvtUtils.getInstance().isAxial(sensor2) && tas){
+					} else if(sensor1.isAxial() && !sensor2.isAxial() && tas){
 						String plotName = "Top Channel Correlation: Axial Layer " + layer1 + " vs Stereo Layer " + layer2;
 						aida.histogram2D(plotName).fill(channel1, channel2);
 					}
-				} else if(!SvtUtils.getInstance().isTopLayer(sensor1) && !SvtUtils.getInstance().isTopLayer(sensor2) && baa){
-					if(SvtUtils.getInstance().isAxial(sensor1) && SvtUtils.getInstance().isAxial(sensor2)){
+				} else if(!sensor1.isTopLayer() && !sensor2.isTopLayer() && baa){
+					if(sensor1.isAxial() && sensor2.isAxial()){
 						String plotName = "Bottom Channel Correlation: Axial Layer " + layer1 + " vs Axial Layer " + layer2;
 						aida.histogram2D(plotName).fill(channel1, channel2);
-					} else if(SvtUtils.getInstance().isAxial(sensor1) && !SvtUtils.getInstance().isAxial(sensor2) && bas){
+					} else if(sensor1.isAxial() && !sensor2.isAxial() && bas){
 						String plotName = "Bottom Channel Correlation: Axial Layer " + layer1 + " vs Stereo Layer " + layer2;
 						aida.histogram2D(plotName).fill(channel1, channel2);
 					}

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SvtHitEfficiency.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtHitEfficiency.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,7 +1,6 @@
 package org.hps.users.omoreno;
 
 
-//--- java ---//
 import hep.aida.ICloud2D;
 import hep.aida.IHistogram1D;
 import hep.aida.IHistogram2D;
@@ -16,16 +15,12 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.recon.ecal.HPSEcalCluster;
-import org.hps.recon.tracking.TrackUtils;
-import org.hps.recon.tracking.TrackerHitUtils;
 import org.lcsim.detector.ITransform3D;
 import org.lcsim.detector.solids.Box;
 import org.lcsim.detector.solids.Point3D;
 import org.lcsim.detector.solids.Polygon3D;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiStrips;
 import org.lcsim.event.EventHeader;
@@ -33,11 +28,19 @@
 import org.lcsim.event.TrackerHit;
 import org.lcsim.fit.helicaltrack.HelicalTrackHit;
 import org.lcsim.geometry.Detector;
-//--- lcsim ---//
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
-//--- hps-java ---//
 
+import org.hps.recon.ecal.HPSEcalCluster;
+import org.hps.recon.tracking.TrackUtils;
+import org.hps.recon.tracking.TrackerHitUtils;
+
+/**
+ * Analysis driver used to calculate the hit efficiency of the SVT.
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ *
+ */
 public class SvtHitEfficiency extends Driver {
 
 	private AIDA aida;
@@ -45,6 +48,7 @@
     private List<IHistogram2D> histos2D = new ArrayList<IHistogram2D>();
     private List<IPlotter> plotters = new ArrayList<IPlotter>();
     private Map<SiSensor, Map<Integer, Hep3Vector>> stripPositions = new HashMap<SiSensor, Map<Integer, Hep3Vector>>(); 
+    private List<HpsSiSensor> sensors = null;
     TrackerHitUtils trackerHitUtils = new TrackerHitUtils();
     
     boolean debug = false;
@@ -79,6 +83,7 @@
     // Constants
     public static final double SENSOR_LENGTH = 98.33; // mm
     public static final double SENSOR_WIDTH = 38.3399; // mm
+    private static final String SUBDETECTOR_NAME = "Tracker";
 
     /**
      * Default Ctor
@@ -102,6 +107,9 @@
     
     public void detectorChanged(Detector detector){
     	
+    	// Get the list of sensors
+    	sensors = detector.getSubdetector(SUBDETECTOR_NAME).getDetectorElement().findDescendants(HpsSiSensor.class);
+    	
         // setup AIDA
         aida = AIDA.defaultInstance();
         aida.tree().cd("/");
@@ -114,7 +122,7 @@
         // Create a Map from sensor to bad channels and from bad channels to
         // strip position
         for(ChargeCarrier carrier : ChargeCarrier.values()){
-            for(SiSensor sensor : SvtUtils.getInstance().getSensors()){ 
+            for(SiSensor sensor : sensors){ 
                 if(sensor.hasElectrodesOnSide(carrier)){ 
                     stripPositions.put(sensor, new HashMap<Integer, Hep3Vector>());
                     SiStrips strips = (SiStrips) sensor.getReadoutElectrodes(carrier);     
@@ -182,24 +190,24 @@
                 title = "Track Position - Layer " + index + " - Difference";
                 cloud2D = aida.cloud2D(title);
                 PlotUtils.setup2DRegion(plotters.get(plotterIndex), title, 1, "x [mm]", "y [mm]", cloud2D, style);
-                sensor = SvtUtils.getInstance().getBottomSensor(layerNumber, 0);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
+                //sensor = SvtUtils.getInstance().getBottomSensor(layerNumber, 0);
+                //title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 2, "Channel #", histo1D);
-                sensor = SvtUtils.getInstance().getTopSensor(layerNumber, 0);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
+                //sensor = SvtUtils.getInstance().getTopSensor(layerNumber, 0);
+                //title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 4, "Channel #", histo1D);
                 layerNumber++;
-                sensor = SvtUtils.getInstance().getBottomSensor(layerNumber, 0);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
+                //sensor = SvtUtils.getInstance().getBottomSensor(layerNumber, 0);
+                //title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 3, "Channel #", histo1D);
-                sensor = SvtUtils.getInstance().getTopSensor(layerNumber, 0);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
+                //sensor = SvtUtils.getInstance().getTopSensor(layerNumber, 0);
+                //title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 5, "Channel #", histo1D);
@@ -338,14 +346,14 @@
     		
     		List<SiSensor> sensors = new ArrayList<SiSensor>();
     		if(TrackUtils.getZ0(track) > 0){
-    			sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0));
-        		sensors.add(SvtUtils.getInstance().getTopSensor(layer+1, 0));
+    			//sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0));
+        		//sensors.add(SvtUtils.getInstance().getTopSensor(layer+1, 0));
     		} else { 
-    			sensors.add(SvtUtils.getInstance().getBottomSensor(layer, 0));
-        		sensors.add(SvtUtils.getInstance().getBottomSensor(layer+1, 0));
+    			//sensors.add(SvtUtils.getInstance().getBottomSensor(layer, 0));
+        		//sensors.add(SvtUtils.getInstance().getBottomSensor(layer+1, 0));
     		}
-    		aida.histogram1D(SvtUtils.getInstance().getDescription(sensors.get(0)) + " - Occupancy").fill(this.findIntersectingChannel(frontTrackPos, sensors.get(0)));
-            aida.histogram1D(SvtUtils.getInstance().getDescription(sensors.get(1)) + " - Occupancy").fill(this.findIntersectingChannel(rearTrackPos, sensors.get(1)));
+    		//aida.histogram1D(SvtUtils.getInstance().getDescription(sensors.get(0)) + " - Occupancy").fill(this.findIntersectingChannel(frontTrackPos, sensors.get(0)));
+            //aida.histogram1D(SvtUtils.getInstance().getDescription(sensors.get(1)) + " - Occupancy").fill(this.findIntersectingChannel(rearTrackPos, sensors.get(1)));
     		
            if(debug)
         	   System.out.println(this.getClass().getSimpleName() + ": Stereo hit was not found.");
@@ -371,13 +379,13 @@
         
         
         
-        List<SiSensor> sensors = new ArrayList<SiSensor>();
+        List<HpsSiSensor> sensors = new ArrayList<HpsSiSensor>();
         if(TrackUtils.getZ0(track) > 0){
-           sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0));
-           sensors.add(SvtUtils.getInstance().getTopSensor(layer + 1, 0));
+           //sensors.add(SvtUtils.getInstance().getTopSensor(layer, 0));
+           //sensors.add(SvtUtils.getInstance().getTopSensor(layer + 1, 0));
         } else {
-            sensors.add(SvtUtils.getInstance().getBottomSensor(layer, 0));
-            sensors.add(SvtUtils.getInstance().getBottomSensor(layer + 1, 0));
+           //sensors.add(SvtUtils.getInstance().getBottomSensor(layer, 0));
+           //sensors.add(SvtUtils.getInstance().getBottomSensor(layer + 1, 0));
         }
         
         Hep3Vector frontSensorPos = sensors.get(0).getGeometry().getPosition();
@@ -432,7 +440,6 @@
 			}
 		}
     
-		this.printDebug(SvtUtils.getInstance().getDescription(sensor) + ": Track intersects physical channel " + intersectingChannel);
 		
 		return intersectingChannel;
     }
@@ -440,16 +447,16 @@
     /**
      *
      */
-    public boolean sensorContainsTrack(Hep3Vector trackPosition, SiSensor sensor){
+    public boolean sensorContainsTrack(Hep3Vector trackPosition, HpsSiSensor sensor){
 
     	
     	if(maskBadChannels){
     		int intersectingChannel = this.findIntersectingChannel(trackPosition, sensor);
     		if(intersectingChannel == 0 || intersectingChannel == 638) return false;
     	    
-    		if(HPSSVTCalibrationConstants.isBadChannel(sensor, intersectingChannel) 
-    				|| HPSSVTCalibrationConstants.isBadChannel(sensor, intersectingChannel+1) 
-    				|| HPSSVTCalibrationConstants.isBadChannel(sensor, intersectingChannel-1)){
+    		if(sensor.isBadChannel(intersectingChannel) 
+    				|| sensor.isBadChannel(intersectingChannel+1) 
+    				|| sensor.isBadChannel(intersectingChannel-1)){
     			this.printDebug("Track intersects a bad channel!");
     			return false;
     		}
@@ -460,10 +467,6 @@
         Hep3Vector sensorPos = sensor.getGeometry().getPosition();   
         Box sensorSolid = (Box) sensor.getGeometry().getLogicalVolume().getSolid();
         Polygon3D sensorFace = sensorSolid.getFacesNormalTo(new BasicHep3Vector(0, 0, 1)).get(0);
-        if(debug){
-        	System.out.println(this.getClass().getSimpleName() + ": Sensor: " + SvtUtils.getInstance().getDescription(sensor));
-        	System.out.println(this.getClass().getSimpleName() + ": Track Position: " + trackPosition.toString());
-        }
         
         List<Point3D> vertices = new ArrayList<Point3D>();
         for(int index = 0; index < 4; index++){

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SvtPerformance.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtPerformance.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtPerformance.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -11,10 +11,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
-import org.hps.recon.tracking.ShapeFitParameters;
-import org.hps.recon.tracking.ShaperAnalyticFitAlgorithm;
 import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
@@ -26,11 +22,13 @@
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
+import org.hps.recon.tracking.ShapeFitParameters;
+import org.hps.recon.tracking.ShaperAnalyticFitAlgorithm;
+
 /**
  * Driver that looks at the performance of the SVT.
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id:$
  */
 public class SvtPerformance extends Driver {
 
@@ -307,7 +305,6 @@
         int channel, bad_channel;
         int maxClusterChannel = 0;
         int hitsPerCluster = 0;
-        ChannelConstants constants = null;
         double clusterAmplitude, maxClusterAmplitude;
         double noise = 0;
         double trkChiSquared = 0;
@@ -358,8 +355,8 @@
                         RawTrackerHit rawHit = (RawTrackerHit) rh;
                         channel = rawHit.getIdentifierFieldValue("strip");
                         // Check if the channel neighbors a channel that has been tagged as bad
-                        if (HPSSVTCalibrationConstants.isBadChannel(sensor, channel + 1)
-                                || HPSSVTCalibrationConstants.isBadChannel(sensor, channel - 1)) {
+                        if (sensor.isBadChannel(channel + 1)
+                                || sensor.isBadChannel(channel - 1)) {
                             bad_channel = 1;
                         }
 
@@ -380,8 +377,7 @@
                             }
                         }
 
-                        constants = HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
-                        for (ShapeFitParameters fit : shaperFitter.fitShape(rawHit, constants)) {
+                        for (ShapeFitParameters fit : shaperFitter.fitShape(rawHit)) {
                             if (fit.getAmp() > maxClusterAmplitude) {
                                 maxClusterChannel = channel;
                                 maxClusterAmplitude = fit.getAmp();

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SvtQA.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtQA.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtQA.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,33 +1,19 @@
 package org.hps.users.omoreno;
 
-//--- HEP ---//
 import static org.hps.conditions.deprecated.HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR;
-//--- hps-java ---//
-//--- Constants ---//
 import hep.aida.IHistogram1D;
 import hep.aida.IHistogram2D;
 import hep.aida.IPlotter;
 
 import java.io.BufferedWriter;
 import java.io.FileWriter;
-//--- Java ---//
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants;
-import org.hps.conditions.deprecated.HPSSVTCalibrationConstants.ChannelConstants;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.recon.tracking.FittedRawTrackerHit;
-import org.hps.recon.tracking.ShapeFitParameters;
-import org.hps.recon.tracking.ShaperAnalyticFitAlgorithm;
-import org.hps.recon.tracking.TrackUtils;
-import org.hps.recon.tracking.apv25.SvtReadout;
-//--- lcsim ---//
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.Track;
@@ -40,21 +26,29 @@
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
 
+import org.hps.recon.tracking.FittedRawTrackerHit;
+import org.hps.recon.tracking.ShapeFitParameters;
+import org.hps.recon.tracking.ShaperAnalyticFitAlgorithm;
+import org.hps.recon.tracking.TrackUtils;
+import org.hps.recon.tracking.apv25.SvtReadout;
+
+
 /**
  * SVT Quality Assurance Driver
- *
+ *  
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: SvtQA.java,v 1.7 2013/10/25 19:45:01 jeremy Exp $
  */
+// TODO: Split this driver up.
 public class SvtQA extends Driver {
 
     private AIDA aida;
     private ShaperAnalyticFitAlgorithm shaperFitter = new ShaperAnalyticFitAlgorithm();
     private List<IHistogram1D> histos1D = new ArrayList<IHistogram1D>();
     private List<IHistogram2D> histos2D = new ArrayList<IHistogram2D>();
-    private List<IPlotter> plotters = new ArrayList<IPlotter>();
+    private List<IPlotter>     plotters = new ArrayList<IPlotter>();
     private Map<String, double[]> sensorToOccupancy = new HashMap<String, double[]>();
     private Map<String, double[]> sensorToStereoOccupancy = new HashMap<String, double[]>();
+    List<HpsSiSensor> sensors = null; 
     BufferedWriter output = null;
 
     String outputFile = null;
@@ -62,7 +56,7 @@
 
     int channelNumber = 0;
     int plotterIndex = 0;
-    int apvNumber = 0;
+    int apvNumber = 0;	
     double totalNumberEvents = 0;
     double totalNumberOfRawHitEvents = 0;
     double[] totalTopSamples = new double[6];
@@ -70,7 +64,7 @@
     double[] topSamples = new double[6];
     double[] bottomSamples = new double[6];
     double totalNumberOfHits = 0;
-
+    
     double maxOccupancy = 1.0;
     double maxOccupancyVariation = 1000; // %
 
@@ -79,10 +73,10 @@
 
     // Plot flags
     boolean enableADCvsChannel = false;
-    boolean enableOccupancy = false;
+    boolean enableOccupancy    = false;
     boolean enableStereoHitOccupancy = false;
     boolean enableChannelPlots = false;
-    boolean enableAPVPlots = false;
+    boolean enableAPVPlots     = false;
     boolean enableChiSquaredvsChannel = false;
     boolean enableSamples = false;
     boolean enableT0Plots = false;
@@ -97,7 +91,7 @@
     /**
      * Default Ctor
      */
-    public SvtQA() {
+    public SvtQA(){
     }
 
     //--- Setters ---//
@@ -105,134 +99,132 @@
     /**
      * Enable/disable occupancy plots
      */
-    public void setEnableOccupancyPlots(boolean enableOccupancy) {
+    public void setEnableOccupancyPlots(boolean enableOccupancy){
         this.enableOccupancy = enableOccupancy;
     }
 
     /**
      * Enable/disable stereo hit occupancy plots
      */
-    public void setEnableStereoHitOccupancyPlots(boolean enableStereoHitOccupancy) {
+    public void setEnableStereoHitOccupancyPlots(boolean enableStereoHitOccupancy){
         this.enableStereoHitOccupancy = enableStereoHitOccupancy;
     }
 
     /**
-     * Enable/disable ADC counts vs Channel plots
+     * Enable/disable ADC counts vs Channel plots 
      */
-    public void setEnableADCvsChannelPlots(boolean enableADCvsChannel) {
+    public void setEnableADCvsChannelPlots(boolean enableADCvsChannel){
         this.enableADCvsChannel = enableADCvsChannel;
     }
 
     /**
      * Enable/disable Channel Plots
      */
-    public void setEnableChannelPlots(boolean enableChannelPlots) {
+    public void setEnableChannelPlots(boolean enableChannelPlots){
         this.enableChannelPlots = enableChannelPlots;
     }
 
     /**
-     * Enable/disable plots associated with individual APVs
+     * Enable/disable plots associated with individual APVs 
      */
-    public void setEnableAPVPlots(boolean enableAPVPlots) {
+    public void setEnableAPVPlots(boolean enableAPVPlots){
         this.enableAPVPlots = enableAPVPlots;
     }
 
     /**
-     * Enable/disable Chi Squared of fit to samples vs Channel plots
+     * Enable/disable Chi Squared of fit to samples vs Channel plots 
      */
-    public void setEnableChiSquaredvsChannelPlots(boolean enableChiSquaredvsChannel) {
+    public void setEnableChiSquaredvsChannelPlots(boolean enableChiSquaredvsChannel){
         this.enableChiSquaredvsChannel = enableChiSquaredvsChannel;
     }
 
     /**
      * Enable/disable plots of the APV samples
      */
-    public void setEnableSamplesPlots(boolean enableSamples) {
+    public void setEnableSamplesPlots(boolean enableSamples){
         this.enableSamples = enableSamples;
     }
 
     /**
-     * Enable/disable t0 plots
+     * Enable/disable t0 plots 
      */
-    public void setEnableT0Plots(boolean enableT0Plots) {
+    public void setEnableT0Plots(boolean enableT0Plots){
         this.enableT0Plots = enableT0Plots;
     }
 
     /**
-     * Set the channel number of interest
+     * Set the channel number of interest 
      */
-    public void setChannelNumber(int channelNumber) {
+    public void setChannelNumber(int channelNumber){
         this.channelNumber = channelNumber;
     }
 
     /**
-     * Set the sensor of interest
+     * Set the sensor of interest 
      */
-    public void setSensorName(String sensorName) {
+    public void setSensorName(String sensorName){
         this.sensorName = sensorName;
     }
 
     /**
      * Set the APV number of interest
      */
-    public void setApvNumber(int apvNumber) {
+    public void setApvNumber(int apvNumber){
         this.apvNumber = apvNumber;
     }
 
     /**
-     * Set the maximum occupancy a channel may have
+     * Set the maximum occupancy a channel may have    
      */
-    public void setMaxOccupancy(double maxOccupancy) {
+    public void setMaxOccupancy(double maxOccupancy){
         this.maxOccupancy = maxOccupancy;
     }
 
     /**
      * Set the maximum channel to channel occupancy variation
      */
-    public void setMaxOccupancyVariation(double maxOccupancyVariation) {
+    public void setMaxOccupancyVariation(double maxOccupancyVariation){
         this.maxOccupancyVariation = maxOccupancyVariation;
     }
 
     /**
-     *
+     * 
      */
-    public void setOutputFileName(String outputFile) {
+    public void setOutputFileName(String outputFile){
         this.outputFile = outputFile;
     }
 
     /**
      *
      */
-    public void setVerbose(boolean verbose) {
+    public void setVerbose(boolean verbose){
         this.verbose = verbose;
     }
 
     /**
      *
      */
-    public void setSimulation(boolean simulation) {
+    public void setSimulation(boolean simulation){
         this.simulation = simulation;
     }
-
+    
     /**
-     *
+     * 
      */
-    public void setEnableTotalNumberOfHitsPlots(boolean enableTotalNumberOfHitsPlots) {
-        this.enableTotalNumberOfHitsPlots = enableTotalNumberOfHitsPlots;
+    public void setEnableTotalNumberOfHitsPlots(boolean enableTotalNumberOfHitsPlots){
+    	this.enableTotalNumberOfHitsPlots = enableTotalNumberOfHitsPlots;
     }
 
     /**
-     *
+     * 
      */
-    private int getAPVNumber(int physicalChannel) {
-        int apv = (int) Math.floor((physicalChannel - TOTAL_STRIPS_PER_SENSOR) / -128);
-        if (apv > 4 || apv < 0) {
-            throw new RuntimeException("Invalid APV Number: " + apv);
-        }
+    private int getAPVNumber(int physicalChannel){
+        int apv = (int) Math.floor((physicalChannel - TOTAL_STRIPS_PER_SENSOR)/-128);
+        if(apv > 4 || apv < 0) throw new RuntimeException("Invalid APV Number: " + apv );
         return apv;
-    }
+    }  
 
-    protected void detectorChanged(Detector detector) {
+    protected void detectorChanged(Detector detector){
         super.detectorChanged(detector);
 
         // setup AIDA
@@ -240,7 +232,7 @@
         aida.tree().cd("/");
 
         //
-        Set<SiSensor> sensors = SvtUtils.getInstance().getSensors();
+        sensors = detector.getSubdetector("Tracker").getDetectorElement().findDescendants(HpsSiSensor.class); 
         int plotterIndex = 0;
         IHistogram1D histo1D = null;
         IHistogram2D histo2D = null;
@@ -248,11 +240,11 @@
 
         //--- Occupancy ---//
         //-----------------//
-        if (enableOccupancy) {
+        if(enableOccupancy){
             plotters.add(PlotUtils.setupPlotter("Occupancy", 5, 4));
-            for (SiSensor sensor : sensors) {
-                sensorToOccupancy.put(SvtUtils.getInstance().getDescription(sensor), new double[640]);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
+            for(HpsSiSensor sensor : sensors){
+                sensorToOccupancy.put(sensor.getName(), new double[640]);
+                title = sensor.getName() + " - Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, PlotUtils.getPlotterRegion(sensor), "Channel #", histo1D);
@@ -262,11 +254,11 @@
 
         //--- Stereo Hit Occupancy ---//
         //----------------------------//
-        if (enableStereoHitOccupancy) {
+        if(enableStereoHitOccupancy){
             plotters.add(PlotUtils.setupPlotter("Stereo Hit Occupancy", 5, 4));
-            for (SiSensor sensor : sensors) {
-                sensorToStereoOccupancy.put(SvtUtils.getInstance().getDescription(sensor), new double[640]);
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Stereo Hit Occupancy";
+            for(HpsSiSensor sensor : sensors){
+                sensorToStereoOccupancy.put(sensor.getName(), new double[640]);
+                title = sensor.getName() + " - Stereo Hit Occupancy";
                 histo1D = aida.histogram1D(title, 640, 0, 639);
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, PlotUtils.getPlotterRegion(sensor), "Channel #", histo1D);
@@ -276,17 +268,17 @@
 
         //--- ADC Counts vs Channel ---//
         //-----------------------------//
-        if (enableADCvsChannel) {
-            if (sensorName.equals("all")) {
+        if(enableADCvsChannel){
+            if(sensorName.equals("all")){
                 plotters.add(PlotUtils.setupPlotter("ADC Counts vs Channel #", 5, 4));
-                for (SiSensor sensor : sensors) {
-                    title = SvtUtils.getInstance().getDescription(sensor) + " - ADC Counts vs Channel #";
+                for(HpsSiSensor sensor : sensors){
+                    title = sensor.getName() + " - ADC Counts vs Channel #";
                     histo2D = aida.histogram2D(title, 640, 0, 639, 300, 0, 10000);
                     histos2D.add(histo2D);
                     PlotUtils.setup2DRegion(plotters.get(plotterIndex), title, PlotUtils.getPlotterRegion(sensor), "Channel #", "ADC Counts", histo2D);
                 }
                 plotterIndex++;
-            } else if (sensorName != null) {
+            } else if(sensorName != null){
                 title = sensorName + " - ADC Counts vs Channel #";
                 plotters.add(PlotUtils.setupPlotter(title, 0, 0));
                 histo2D = aida.histogram2D(title, 640, 0, 639, 300, 0, 10000);
@@ -300,27 +292,26 @@
 
         //--- Chi Squared vs Channel ---//
         //------------------------------//
-        if (enableChiSquaredvsChannel) {
-            title = sensorName + " - Chi Squared Probability vs Channel #";
+        if(enableChiSquaredvsChannel){
+            title = sensorName + " - Chi Squared vs Channel #";
             plotters.add(PlotUtils.setupPlotter(title, 0, 0));
-            histo2D = aida.histogram2D(title, 640, 0, 639, 300, 0, 1.0);
+            histo2D = aida.histogram2D(title, 640, 0, 639, 300, 0, 100);
             histos2D.add(histo2D);
             PlotUtils.setup2DRegion(plotters.get(plotterIndex), title, 0, "Channel #", "Chi Squared", histo2D);
             plotterIndex++;
         }
 
+
         //--- Single Channel Plots ---//
         //----------------------------//
-        if (enableChannelPlots) {
-            if (sensorName == null) {
-                throw new RuntimeException("Sensor of interest is not set!");
-            }
+        if(enableChannelPlots){
+            if(sensorName == null) throw new RuntimeException("Sensor of interest is not set!");
             title = sensorName + " - Channel: " + channelNumber;
             plotters.add(PlotUtils.setupPlotter(title, 2, 2));
             title = "ADC Counts";
             histo1D = aida.histogram1D(title, 300, 4000, 7000);
             histos1D.add(histo1D);
-            PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 0, "ADC Counts", histo1D);
+            PlotUtils.setup1DRegion(plotters.get(plotterIndex),title , 0, "ADC Counts", histo1D);
             title = "Shaper Signal Amplitude";
             histo1D = aida.histogram1D(title, 300, 0, 3000);
             histos1D.add(histo1D);
@@ -334,16 +325,14 @@
 
         //--- APV Plots ---//
         //-----------------//
-        if (enableAPVPlots) {
-            if (sensorName == null) {
-                throw new RuntimeException("Sensor of interest is not set!");
-            }
+        if(enableAPVPlots){
+            if(sensorName == null) throw new RuntimeException("Sensor of interest is not set!");
             title = sensorName + " - APV " + apvNumber;
             plotters.add(PlotUtils.setupPlotter(title, 2, 2));
             title = "APV " + apvNumber + " - ADC Counts";
             histo1D = aida.histogram1D(title, 400, 0, 10000);
             histos1D.add(histo1D);
-            PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 0, "ADC Counts", histo1D);
+            PlotUtils.setup1DRegion(plotters.get(plotterIndex),title , 0, "ADC Counts", histo1D);
             title = "APV " + apvNumber + " - Shaper Signal Amplitude";
             histo1D = aida.histogram1D(title, 300, 0, 6000);
             histos1D.add(histo1D);
@@ -356,12 +345,12 @@
             histo2D = aida.histogram2D(title, 300, 0, 6000, 100, -100, 100);
             histos2D.add(histo2D);
             PlotUtils.setup2DRegion(plotters.get(plotterIndex), title, 3, "Amplitude [ADC Counts]", "t0 [ns]", histo2D);
-            plotterIndex++;
+            plotterIndex++;   
         }
 
         //--- Samples Amplitude vs Sample Number ---//
         //------------------------------------------//
-        if (enableSamples) {
+        if(enableSamples){
             title = "APV Sample Number vs Sample Amplitude";
             plotters.add(PlotUtils.setupPlotter(title, 1, 2));
             plotters.get(plotterIndex).style().zAxisStyle().setParameter("scale", "log");
@@ -378,18 +367,19 @@
 
         //--- t0 Plots ---//
         //----------------//
-        if (enableT0Plots) {
-            if (sensorName.equals("all")) {
+        if(enableT0Plots){
+            if(sensorName.equals("all")){
                 plotters.add(PlotUtils.setupPlotter("t0 Resolution vs Channel #", 5, 4));
                 plotters.get(plotterIndex).style().zAxisStyle().setParameter("scale", "log");
-                for (SiSensor sensor : sensors) {
-                    title = SvtUtils.getInstance().getDescription(sensor) + " - t0 Resolution vs Channel #";
+                for(HpsSiSensor sensor : sensors){
+                    title = sensor.getName() + " - t0 Resolution vs Channel #";
                     histo2D = aida.histogram2D(title, 640, 0, 639, 40, -20, 20);
                     histos2D.add(histo2D);
                     PlotUtils.setup2DRegion(plotters.get(plotterIndex), title, PlotUtils.getPlotterRegion(sensor), "Channel #", "t0 Resolution [ns]", histo2D);
                 }
                 plotterIndex++;
-            } else if (sensorName != null) {
+            }
+            else if(sensorName != null){
                 title = sensorName + " - Hit Time Resolution";
                 plotters.add(PlotUtils.setupPlotter(title, 0, 0));
                 plotters.get(plotterIndex).style().statisticsBoxStyle().setVisible(true);
@@ -397,36 +387,33 @@
                 histos1D.add(histo1D);
                 PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 0, "<Hit Time> - Hit Time [ns]", histo1D);
                 plotterIndex++;
-            } else {
-                throw new RuntimeException("Sensor of interest not set!");
             }
+            else throw new RuntimeException("Sensor of interest not set!");
 
         }
-
-        if (enableTotalNumberOfHitsPlots) {
-            title = "Total Number of RawTrackerHits";
-            plotters.add(PlotUtils.setupPlotter(title, 0, 0));
-            plotters.get(plotterIndex).style().statisticsBoxStyle().setVisible(true);
-            histo1D = aida.histogram1D(title, 100, 0, 75);
-            histos1D.add(histo1D);
-            PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 0, "Number of RawTrackerHits", histo1D);
-            plotterIndex++;
+        
+        if(enableTotalNumberOfHitsPlots){
+        	title = "Total Number of RawTrackerHits";
+        	plotters.add(PlotUtils.setupPlotter(title, 0, 0));
+        	plotters.get(plotterIndex).style().statisticsBoxStyle().setVisible(true);
+        	histo1D = aida.histogram1D(title, 100, 0, 75);
+        	histos1D.add(histo1D);
+        	PlotUtils.setup1DRegion(plotters.get(plotterIndex), title, 0, "Number of RawTrackerHits", histo1D);
+        	plotterIndex++;
         }
 
-        for (IPlotter plotter : plotters) {
-            plotter.show();
-        }
-
+        for(IPlotter plotter : plotters) plotter.show();
+        
     }
 
     /**
-     *
+     * 
      */
-    public int findPeakSamples(short[] samples) {
+    public int findPeakSamples(short[] samples){
         int maxSample = 0;
         int maxSampleIndex = 0;
-        for (int index = 0; index < samples.length; index++) {
-            if (maxSample < samples[index]) {
+        for(int index = 0; index < samples.length; index++){
+            if(maxSample < samples[index]){
                 maxSample = samples[index];
                 maxSampleIndex = index;
             }
@@ -434,33 +421,33 @@
         return maxSampleIndex;
     }
 
-    public void process(EventHeader event) {
 
+
+    public void process(EventHeader event){
+
         totalNumberEvents++;
         String title;
 
         // If the event doesn't contain RawTrackerHits then skip it
-        if (!event.hasCollection(RawTrackerHit.class, rawHitCollectionName)) {
-            if (verbose) {
-                System.out.println("Event doesn't contain RawTrackerHits! Skipping event ...");
-            }
+        if(!event.hasCollection(RawTrackerHit.class, rawHitCollectionName )){
+            if(verbose) System.out.println("Event doesn't contain RawTrackerHits! Skipping event ...");
             return;
         }
 
         // Get the RawTrackerHits from the event
         List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawHitCollectionName);
-
+        
         // Get the total number of RawTrackerHits in the event
-        if (enableTotalNumberOfHitsPlots && rawHits.size() != 0) {
+        if(enableTotalNumberOfHitsPlots && rawHits.size() != 0){
             aida.histogram1D("Total Number of RawTrackerHits").fill(rawHits.size());
         }
 
-        SiSensor sensor = null;
-        ChannelConstants constants = null;
-        for (RawTrackerHit rawHit : rawHits) {
+        HpsSiSensor sensor = null;
+        ShapeFitParameters fit = null;
+        for(RawTrackerHit rawHit : rawHits){
 
             // Get the sensor on which this hit occurred
-            sensor = (SiSensor) rawHit.getDetectorElement();
+            sensor = (HpsSiSensor) rawHit.getDetectorElement();
 
             // Get the shaper signal samples
             short[] samples = rawHit.getADCValues();
@@ -472,152 +459,148 @@
             int apv = this.getAPVNumber(channel);
 
             // Get the constants associated with this channel
-            constants = HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
+            //constants = HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
 
             // Fit the samples associated with the RawTrackerHit
-            for (ShapeFitParameters fit : shaperFitter.fitShape(rawHit, constants)) {
+            //fit = shaperFitter.fitShape(rawHit);
 
-                // Fill the occupancy plots
-                if (enableOccupancy) {
-                    title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
-                    aida.histogram1D(title).fill(channel, 1);
-                }
+            // Fill the occupancy plots
+            if(enableOccupancy){
+                title = sensor.getName() + " - Occupancy";
+                aida.histogram1D(title).fill(channel, 1);
+            }
 
-                // Fill ADC vs Channel # plots
-                if (enableADCvsChannel && sensorName.equals("all")) {
-                    title = SvtUtils.getInstance().getDescription(sensor) + " - ADC Counts vs Channel #";
-                    for (short sample : samples) {
-                        aida.histogram2D(title).fill(channel, sample);
-                    }
-                } else if (enableADCvsChannel && SvtUtils.getInstance().getDescription(sensor).equals(sensorName)) {
-                    title = sensorName + " - ADC Counts vs Channel #";
-                    for (short sample : samples) {
-                        aida.histogram2D(title).fill(channel, sample);
-                    }
+            // Fill ADC vs Channel # plots
+            if(enableADCvsChannel && sensorName.equals("all")){
+                title = sensor.getName() + " - ADC Counts vs Channel #";
+                for(short sample : samples){
+                    aida.histogram2D(title).fill(channel, sample);
                 }
+            } else if(enableADCvsChannel && sensor.getName().equals(sensorName)){
+                title = sensorName + " - ADC Counts vs Channel #";
+                for(short sample : samples){
+                    aida.histogram2D(title).fill(channel, sample);
+                }
+            }
 
-                // 
-                if (enableChannelPlots && SvtUtils.getInstance().getDescription(sensor).equals(sensorName) && channel == channelNumber) {
-                    title = "ADC Counts";
-                    for (short sample : samples) {
-                        aida.histogram1D(title).fill(sample);
-                    }
-                    title = "Shaper Signal Amplitude";
-                    aida.histogram1D(title).fill(fit.getAmp());
-                    System.out.println("Amplitude: " + fit.getAmp());
-                    title = "t0";
-                    aida.histogram1D(title).fill(fit.getT0());
-                    System.out.println("t0 " + fit.getT0());
+            // 
+            if(enableChannelPlots && sensor.getName().equals(sensorName) && channel == channelNumber){
+                title = "ADC Counts";
+                for(short sample : samples){
+                    aida.histogram1D(title).fill(sample);
                 }
+                title = "Shaper Signal Amplitude";
+                aida.histogram1D(title).fill(fit.getAmp());	    
+                System.out.println("Amplitude: " + fit.getAmp());
+                title="t0";
+                aida.histogram1D(title).fill(fit.getT0());
+                System.out.println("t0 " + fit.getT0());
+            }
 
-                if (enableAPVPlots && SvtUtils.getInstance().getDescription(sensor).equals(sensorName) && apv == apvNumber) {
-                    title = "APV " + apvNumber + " - ADC Counts";
-                    for (short sample : samples) {
-                        aida.histogram1D(title).fill(sample);
-                    }
-                    title = "APV " + apvNumber + " - Shaper Signal Amplitude";
-                    aida.histogram1D(title).fill(fit.getAmp());
-                    title = "APV " + apvNumber + " - t0";
-                    aida.histogram1D(title).fill(fit.getT0());
-                    title = "APV " + apvNumber + " - Amplitude vs t0";
-                    aida.histogram2D(title).fill(fit.getAmp(), fit.getT0());
+            if(enableAPVPlots && sensor.getName().equals(sensorName) && apv == apvNumber ){
+                title = "APV " + apvNumber + " - ADC Counts";
+                for(short sample : samples){
+                    aida.histogram1D(title).fill(sample);
                 }
+                title = "APV " + apvNumber + " - Shaper Signal Amplitude";
+                aida.histogram1D(title).fill(fit.getAmp());     
+                title = "APV " + apvNumber + " - t0";
+                aida.histogram1D(title).fill(fit.getT0());
+                title = "APV " + apvNumber + " - Amplitude vs t0";
+                aida.histogram2D(title).fill(fit.getAmp(), fit.getT0());
             }
         }
 
         /*
-         if(enableOccupancy){
-         for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
-         title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
-         aida.histogram1D(title).reset();
-         int nEvents = simulation ? SvtReadout.getNumberOfTriggers()  : totalNumberEvents; 
-         for(int index = 0; index < 640; index++){
-         aida.histogram1D(title).fill(index, sensorToOccupancy.get(SvtUtils.getInstance().getDescription(sensor))[index]/nEvents);
-         }
-         }
-         }*/
-        // If the event doesn't contain FittedRawTrackerHits then skip it
-        if (!event.hasCollection(FittedRawTrackerHit.class, fittedHitCollectionName)) {
-            if (verbose) {
-                System.out.println("Event doesn't contain FittedRawTrackerHits! Skipping event ...");
+        if(enableOccupancy){
+            for(HpsSiSensor sensor : sensors){
+                title = sensor.getName() + " - Occupancy";
+                aida.histogram1D(title).reset();
+                int nEvents = simulation ? SvtReadout.getNumberOfTriggers()  : totalNumberEvents; 
+                for(int index = 0; index < 640; index++){
+                    aida.histogram1D(title).fill(index, sensorToOccupancy.get(sensor.getName())[index]/nEvents);
+                }
             }
+        }*/
+
+        // If the event doesn't contain FittedRawTrackerHits then skip it
+        if(!event.hasCollection(FittedRawTrackerHit.class, fittedHitCollectionName)){
+            if(verbose) System.out.println("Event doesn't contain FittedRawTrackerHits! Skipping event ...");
             return;
         }
 
         // Get the RawTrackerHits from the event
         List<FittedRawTrackerHit> fittedHits = event.get(FittedRawTrackerHit.class, fittedHitCollectionName);
-
+        
         //System.out.println(this.getClass().getSimpleName() + ": Number of FittedRawTrackerHits " + fittedHits.size());
-        for (FittedRawTrackerHit fittedHit : fittedHits) {
 
+        for(FittedRawTrackerHit fittedHit : fittedHits){
+
+
             // Get the channel number
             int channel = fittedHit.getRawTrackerHit().getIdentifierFieldValue("strip");
 
             // Get the sensor number 
-            sensor = (SiSensor) fittedHit.getRawTrackerHit().getDetectorElement();
+            sensor = (HpsSiSensor) fittedHit.getRawTrackerHit().getDetectorElement();
 
             // Fill Chi Squared vs Channel # plots
-            if (enableChiSquaredvsChannel && SvtUtils.getInstance().getDescription(sensor).equals(sensorName)) {
-                title = sensorName + " - Chi Squared Probability vs Channel #";
-                aida.histogram2D(title).fill(channel, fittedHit.getShapeFitParameters().getChiProb());
+            if(enableChiSquaredvsChannel && sensor.getName().equals(sensorName)){
+                title = sensorName + " - Chi Squared vs Channel #";
+                //aida.histogram2D(title).fill(channel, fittedHit.getShapeFitParameters().getChiSq());
             }
         }
 
         // If the event does not contain stereo hits, skip the event
-        if (!event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)) {
-            if (verbose) {
-                System.out.println("Event doesn't contain HelicalTrackHits! Skipping event ...");
-            }
+        if(!event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)){
+            if(verbose) System.out.println("Event doesn't contain HelicalTrackHits! Skipping event ...");
             return;
         }
 
         // Get the list of HelicalTrackHits
-        List<HelicalTrackHit> stereoHits = event.get(HelicalTrackHit.class, stereoHitCollectionName);
+        List<HelicalTrackHit> stereoHits =event.get(HelicalTrackHit.class, stereoHitCollectionName); 
 
-        for (HelicalTrackHit stereoHit : stereoHits) {
+        for(HelicalTrackHit stereoHit : stereoHits){
 
             double totalT0 = 0;
 
-            for (Object hit : stereoHit.getRawHits()) {
+            for(Object hit : stereoHit.getRawHits()){
 
                 RawTrackerHit rawHit = (RawTrackerHit) hit;
 
-                sensor = (SiSensor) rawHit.getDetectorElement();
+                sensor = (HpsSiSensor) rawHit.getDetectorElement();
 
                 // Get the channel number
                 int channel = rawHit.getIdentifierFieldValue("strip");
 
                 // Get the constants associated with this channel
-                constants = HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
+                //constants = HPSSVTCalibrationConstants.getChannelConstants(sensor, channel);
 
                 // Fit the samples associated with the RawTrackerHit
-                for (ShapeFitParameters fit : shaperFitter.fitShape(rawHit, constants)) {
+                //fit = shaperFitter.fitShape(rawHit);
 
-                    // Get the shaper signal samples
-                    short[] samples = rawHit.getADCValues();
+                // Get the shaper signal samples
+                short[] samples = rawHit.getADCValues();
 
-                    if (enableStereoHitOccupancy) {
-                        title = SvtUtils.getInstance().getDescription(sensor) + " - Stereo Hit Occupancy";
-                        sensorToStereoOccupancy.get(SvtUtils.getInstance().getDescription(sensor))[channel] += 1;
-                    }
+                if(enableStereoHitOccupancy){
+                    title = sensor.getName() + " - Stereo Hit Occupancy";
+                    sensorToStereoOccupancy.get(sensor.getName())[channel] += 1;
+                }
 
-                    // Fill Sample Plots
-                    if (enableSamples) {
-                        if (fit.getAmp() > 2000 && fit.getAmp() < 6000) {
-                            for (int sampleN = 1; sampleN <= samples.length; sampleN++) {
-                                if ((sampleN == 1 && totalNumberEvents % 5 != 0) || (sampleN == 2 && totalNumberEvents % 5 != 0)/* || (sampleN == 3 && totalNumberEvents%3 != 0) */) {
-                                    continue;
-                                }
-                                if (SvtUtils.getInstance().isTopLayer(sensor)) {
-                                    aida.histogram2D("APV Sample Number vs Sample Amplitude - Top").fill(sampleN, samples[sampleN - 1] - constants.getPedestal());
-                                    totalTopSamples[sampleN - 1]++;
-                                    topSamples[sampleN - 1] += samples[sampleN - 1] - constants.getPedestal();
-                                } else {
-                                    aida.histogram2D("APV Sample Number vs Sample Amplitude - Bottom").fill(sampleN, samples[sampleN - 1] - constants.getPedestal());
-                                    totalBottomSamples[sampleN - 1]++;
-                                    bottomSamples[sampleN - 1] += samples[sampleN - 1] - constants.getPedestal();
-                                }
+                // Fill Sample Plots
+                if(enableSamples){
+                    if(fit.getAmp() > 2000 && fit.getAmp() < 6000){
+                        for(int sampleN = 1; sampleN <= samples.length; sampleN++){
+                            if((sampleN == 1 && totalNumberEvents%5 != 0) || (sampleN == 2 && totalNumberEvents%5 != 0)/* || (sampleN == 3 && totalNumberEvents%3 != 0) */) continue;
+                            if(sensor.isTopLayer()){
+                                aida.histogram2D("APV Sample Number vs Sample Amplitude - Top").fill(sampleN, samples[sampleN-1] - sensor.getPedestal(channel, sampleN-1));
+                                totalTopSamples[sampleN-1]++;
+                                topSamples[sampleN-1] += samples[sampleN-1] - sensor.getPedestal(channel, sampleN-1);
                             }
+                            else{
+                            	aida.histogram2D("APV Sample Number vs Sample Amplitude - Bottom").fill(sampleN, samples[sampleN-1] - sensor.getPedestal(channel, sampleN-1));
+                            	totalBottomSamples[sampleN-1]++;
+                            	bottomSamples[sampleN-1] += samples[sampleN - 1] - sensor.getPedestal(channel, sampleN-1);
+                            }
                         }
                     }
                 }
@@ -625,67 +608,66 @@
         }
 
         /*
-         if(enableStereoHitOccupancy){
-         for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
-         title = SvtUtils.getInstance().getDescription(sensor) + " - Stereo Hit Occupancy";
-         aida.histogram1D(title).reset();
-         for(int index = 0; index < 640; index++){
-         aida.histogram1D(title).fill(index, sensorToStereoOccupancy.get(SvtUtils.getInstance().getDescription(sensor))[index]/event.getEventNumber());
-         }
-         }
-         }*/
-        if (!event.hasCollection(Track.class, trackCollectionName)) {
-            return;
-        }
-
+        if(enableStereoHitOccupancy){
+            for(HpsSiSensor sensor : sensors){
+                title = sensor.getName() + " - Stereo Hit Occupancy";
+                aida.histogram1D(title).reset();
+                for(int index = 0; index < 640; index++){
+                    aida.histogram1D(title).fill(index, sensorToStereoOccupancy.get(sensor.getName())[index]/event.getEventNumber());
+                }
+            }
+        }*/
+        if(!event.hasCollection(Track.class, trackCollectionName)) return;
+        
         // Get the list of tracks in the event
         List<SeedTrack> tracks = event.get(SeedTrack.class, trackCollectionName);
 
-        if (enableT0Plots) {
+        if(enableT0Plots){
 
             // Loop over all tracks in the event
-            for (Track track : tracks) {
+            for(Track track : tracks){
 
+
                 double totalT0 = 0;
                 double totalHits = 0;
 
                 // Loop over all stereo hits comprising a track
-                for (TrackerHit crossHit : track.getTrackerHits()) {
+                for(TrackerHit crossHit : track.getTrackerHits()){
 
                     HelicalTrackCross htc = (HelicalTrackCross) crossHit;
 
-                    for (HelicalTrackStrip hts : htc.getStrips()) {
+                    for(HelicalTrackStrip hts : htc.getStrips()){
 
                         totalT0 += hts.time();
                         totalHits++;
                     }
                 }
 
-                double meanT0 = totalT0 / totalHits;
+                double meanT0 = totalT0/totalHits;
 
-                for (TrackerHit crossHit : track.getTrackerHits()) {
+                for(TrackerHit crossHit : track.getTrackerHits()){
 
                     HelicalTrackCross htc = (HelicalTrackCross) crossHit;
 
-                    for (HelicalTrackStrip hts : htc.getStrips()) {
+                    for(HelicalTrackStrip hts : htc.getStrips()){
 
-                        //SiSensor sensor = null;
-                        if (TrackUtils.getZ0(track) > 0) {
-                            sensor = SvtUtils.getInstance().getSensor(0, hts.layer() - 1);
-                        } else if (TrackUtils.getZ0(track) < 0) {
-                            sensor = SvtUtils.getInstance().getSensor(1, hts.layer() - 1);
+                        //HpsSiSensor sensor = null;
+                        if(TrackUtils.getZ0(track) > 0){
+                            //sensor = SvtUtils.getInstance().getSensor(0, hts.layer() - 1);
+                        } else if(TrackUtils.getZ0(track) < 0){
+                            //sensor = SvtUtils.getInstance().getSensor(1, hts.layer() - 1);
                         }
 
                         int channel = ((RawTrackerHit) hts.rawhits().get(0)).getIdentifierFieldValue("strip");
-
-                        if (sensorName.equals("all")) {
-                            aida.histogram2D(SvtUtils.getInstance().getDescription(sensor) + " - t0 Resolution vs Channel #").fill(channel, meanT0 - hts.time());
+                        
+                        if(sensorName.equals("all")){
+                        	aida.histogram2D(sensor.getName() + " - t0 Resolution vs Channel #").fill(channel, meanT0 - hts.time());
                         } else {
-                            if (SvtUtils.getInstance().getDescription(sensor).equals(sensorName)) {
-                                aida.histogram1D(sensorName + " - Hit Time Resolution").fill(meanT0 - hts.time());
-                            }
-
+                        if(sensor.getName().equals(sensorName)){
+                            aida.histogram1D(sensorName + " - Hit Time Resolution").fill(meanT0 - hts.time());
                         }
+                        
+                        } 
                     }
                 }
             }
@@ -694,175 +676,164 @@
     }
 
     @Override
-    public void endOfData() {
-        String title;
+        public void endOfData(){
+    		String title;
+    		
 
-        String plotName;
-        if (enableOccupancy) {
-            for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
-                title = SvtUtils.getInstance().getDescription(sensor) + " - Occupancy";
-                // Scale the hits per channel by the number of events
-                aida.histogram1D(title).scale(1 / totalNumberEvents);
+    		
+            String plotName;
+    		if(enableOccupancy){
+    			for(HpsSiSensor sensor : sensors){
+    				title = sensor.getName() + " - Occupancy";
+    				// Scale the hits per channel by the number of events
+    				aida.histogram1D(title).scale(1/totalNumberEvents);
+    				
+    				// Write the occupancies to a file
+    				if(sensor.isTopLayer()){
+    					plotName = outputFile + "_top_";
+    				} else { 
+    					plotName = outputFile + "_bottom_";
+    				}
+    				
+					if(sensor.getLayerNumber() < 10){
+						plotName += "0" + sensor.getLayerNumber() + ".dat";
+					} else {
+						plotName += sensor.getLayerNumber() + ".dat";
+					}
+    			
+	    			// Open the output files stream
+	                if(plotName != null){
+	                	try{
+	                		output = new BufferedWriter(new FileWriter(plotName)); 
+                			for(int channel = 0; channel < 640; channel++){
+                				output.write(channel + " " + aida.histogram1D(title).binHeight(channel) + "\n");
+                			}
+                			output.close();
+	                	} catch(Exception e) {
+	                		System.out.println(this.getClass().getSimpleName() + " :Error! " + e.getMessage());
+	                	}
+	                }
+    			}
+    		}
+    		
+    		if(enableT0Plots){
+    			int bins = aida.histogram1D(sensorName + " - Hit Time Resolution").axis().bins();
+    			for(int bin = 0; bin < bins; bin++){
+    				System.out.println(bin + "        " + aida.histogram1D(sensorName + " - Hit Time Resolution").binHeight(bin));
+    			}
+    		}
+    	
+            	
+            	/*
+                for(HpsSiSensor sensor : sensors){
+                    	if(outputFile != null && sensorName.equals(sensor.getName())){
+                    		try{
+                    			for(int channel = 0; channel < 639; channel++){
+    								output.write(channel + " " + this.getOccupancy(sensor, channel) + "\n");
+    							}
+                    			output.close();
+                    		} catch(IOException e){
+                    			System.out.println(this.getClass().getSimpleName() + ": Error! " + e.getMessage());
+                    		}
+                    	}
+                	
+                	System.out.println("%===================================================================%");
+                    System.out.println(sensor.getName() + " Bad Channels");
+                    System.out.println("%===================================================================%");
+                    for(int index = 0; index < 640; index++){
 
-                // Write the occupancies to a file
-                if (SvtUtils.getInstance().isTopLayer(sensor)) {
-                    plotName = outputFile + "_top_";
-                } else {
-                    plotName = outputFile + "_bottom_";
+                        // Check is the channel can be considered bad    
+                        this.checkChannel(sensor, index);
+                    }
                 }
+                System.out.println("%===================================================================% \n");
+            }*/
 
-                if (SvtUtils.getInstance().getLayerNumber(sensor) < 10) {
-                    plotName += "0" + SvtUtils.getInstance().getLayerNumber(sensor) + ".dat";
-                } else {
-                    plotName += SvtUtils.getInstance().getLayerNumber(sensor) + ".dat";
-                }
-
-                // Open the output files stream
-                if (plotName != null) {
-                    try {
-                        output = new BufferedWriter(new FileWriter(plotName));
-                        for (int channel = 0; channel < 640; channel++) {
-                            output.write(channel + " " + aida.histogram1D(title).binHeight(channel) + "\n");
-                        }
-                        output.close();
-                    } catch (Exception e) {
-                        System.out.println(this.getClass().getSimpleName() + " :Error! " + e.getMessage());
+            if(enableStereoHitOccupancy){
+                for(HpsSiSensor sensor : sensors){
+                    System.out.println("%===================================================================% \n");
+                    System.out.println(sensor.getName() + " Bad Channels");
+                    System.out.println("%===================================================================% \n");
+                    for(int index = 0; index < 640; index++){
+                        // Check is the channel can be considered bad    
+                        this.checkChannel(sensor, index);
                     }
+                    System.out.println("%===================================================================% \n");
                 }
             }
-        }
 
-        if (enableT0Plots) {
-            int bins = aida.histogram1D(sensorName + " - Hit Time Resolution").axis().bins();
-            for (int bin = 0; bin < bins; bin++) {
[truncated at 1000 lines; 182 more skipped]

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno
SvtTrackRecoEfficiency.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtTrackRecoEfficiency.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/omoreno/SvtTrackRecoEfficiency.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -1,12 +1,9 @@
 package org.hps.users.omoreno;
 
-//--- java ---//
-//--- aida ---//
 import hep.aida.IHistogram1D;
 import hep.aida.IHistogram2D;
 import hep.aida.IPlotter;
 import hep.physics.vec.BasicHep3Vector;
-//--- hep ---//
 import hep.physics.vec.Hep3Vector;
 import hep.physics.vec.VecOp;
 
@@ -20,10 +17,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.hps.analysis.examples.TrackAnalysis;
-import org.hps.conditions.deprecated.SvtUtils;
-import org.hps.recon.tracking.FindableTrack;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.RawTrackerHit;
@@ -38,11 +33,12 @@
 import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
 import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
 import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
-//--- lcsim ---//
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
-//--- hps-java ---//
 
+import org.hps.analysis.examples.TrackAnalysis;
+import org.hps.recon.tracking.FindableTrack;
+
 /**
  * 
  * @author Omar Moreno <[log in to unmask]>
@@ -56,6 +52,7 @@
     private List<IHistogram2D> histo2D  = new ArrayList<IHistogram2D>();
     private Map<Integer, List<SimTrackerHit>> topSimTrackerHitsList = new HashMap<Integer, List<SimTrackerHit>>();
     private Map<Integer, List<SimTrackerHit>> bottomSimTrackerHitsList = new HashMap<Integer, List<SimTrackerHit>>();
+    private List<HpsSiSensor> sensors = null;
 
     FindableTrack findable = null;
     TrackAnalysis trkAnalysis = null;
@@ -138,6 +135,8 @@
     protected void detectorChanged(Detector detector){
     	super.detectorChanged(detector);
     	
+    	sensors = detector.getSubdetector("Tracker").getDetectorElement().findDescendants(HpsSiSensor.class);
+    	
         // setup AIDA
         aida = AIDA.defaultInstance();
         aida.tree().cd("/");
@@ -154,7 +153,7 @@
         
         // Get the total number of SVT layers
         // TODO: Get the total number of Si planes from the SVT geometry 
-        totalSvtLayers = SvtUtils.getInstance().getSensors().size()/2; 
+        totalSvtLayers = sensors.size()/2; 
         System.out.println("The SVT has a total of " + totalSvtLayers + " layers");
         
         
@@ -215,20 +214,20 @@
         List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
         String volume; 
         for(RawTrackerHit rawHit : rawHits){
-        	if(SvtUtils.getInstance().isTopLayer((SiSensor)rawHit.getDetectorElement())){
+        	HpsSiSensor sensor = (HpsSiSensor) rawHit.getDetectorElement();
+        	if(sensor.isTopLayer()){
         		volume = "Top Volume ";
         	} else { 
         		volume = "Bottom Volume ";
         	}
     		this.printDebug(volume + "RawTrackerHit Channel #: " + rawHit.getIdentifierFieldValue("strip") + " Layer Number: " + rawHit.getLayerNumber()
     				+ " Samples: " + samplesToString(rawHit.getADCValues()));
-            ((SiSensor) rawHit.getDetectorElement()).getReadout().addHit(rawHit);
+            ((HpsSiSensor) rawHit.getDetectorElement()).getReadout().addHit(rawHit);
         }
         
         if(event.hasCollection(SiTrackerHit.class, siTrackerHitCollectionName)){
         	List<SiTrackerHit> hitlist = event.get(SiTrackerHit.class, siTrackerHitCollectionName);
         	for(SiTrackerHit siTrackerHit : hitlist){
-        		this.printDebug("Cluster layer: " + SvtUtils.getInstance().getLayerNumber(siTrackerHit.getSensor()));
     			this.printDebug("Cluster is comprised by the following raw hits:");
         		for(RawTrackerHit rawHit : siTrackerHit.getRawHits()){
             		this.printDebug("RawTrackerHit Channel #: " + rawHit.getIdentifierFieldValue("strip") + " Layer Number: " + rawHit.getLayerNumber());
@@ -314,9 +313,9 @@
                 boolean[] planesHit = new boolean[totalSvtLayers];
                 
                 // Clear the sensor readout's and then add the SimTrackerHits from  the MC particles to them
-                for(SiSensor sensor : SvtUtils.getInstance().getSensors()) sensor.getReadout().clear();
+                for(HpsSiSensor sensor : sensors) sensor.getReadout().clear();
                 for(SimTrackerHit simHitTrackerHit : simHits){
-                    ((SiSensor) simHitTrackerHit.getDetectorElement()).getReadout().addHit(simHitTrackerHit);
+                    ((HpsSiSensor) simHitTrackerHit.getDetectorElement()).getReadout().addHit(simHitTrackerHit);
                 }
                 
                 // Clear all previously stored simTrackerHits
@@ -327,7 +326,8 @@
                 
                 // Determine if the MC particle passed through the top or bottom SVT volume
                 for(SimTrackerHit simHit : simHits){
-                    if(SvtUtils.getInstance().isTopLayer((SiSensor) simHit.getDetectorElement())){
+                	HpsSiSensor sensor = (HpsSiSensor) simHit.getDetectorElement();
+                    if(sensor.isTopLayer()){
                         this.printDebug("MC Particle passed through the top layer");
                         isTopTrack = true;
                         break;
@@ -376,7 +376,8 @@
     {
         int volumeIndex = 0;
         for(SimTrackerHit simTrackerHit : simTrackerHits){
-            if(SvtUtils.getInstance().isTopLayer((SiSensor) simTrackerHit.getDetectorElement())) volumeIndex++;
+        	HpsSiSensor sensor = (HpsSiSensor) simTrackerHit.getDetectorElement();
+            if(sensor.isTopLayer()) volumeIndex++;
             else volumeIndex--;
         }
         return Math.abs(volumeIndex) == simTrackerHits.size();

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson
DataTrackerFakeHitDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/DataTrackerFakeHitDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/DataTrackerFakeHitDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -16,7 +16,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.HPSTrack;
 import org.hps.recon.tracking.TrackUtils;
 import org.hps.recon.tracking.TrackerHitUtils;
@@ -32,6 +32,7 @@
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
 import org.lcsim.detector.tracker.silicon.DopedSilicon;
 import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
 import org.lcsim.detector.tracker.silicon.SiStrips;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
@@ -278,7 +279,8 @@
                     if (debug) {
                         System.out.println(this.getClass().getSimpleName() + ": make a tracker hit and add to this sensor");
                     }
-                    if (SvtUtils.getInstance().isTopLayer(sensor)) {
+                    //===> if (SvtUtils.getInstance().isTopLayer(sensor)) {
+                    if (((HpsSiSensor) sensor).isTopLayer()) {
                         n_hits_top++;
                         isTopTrack = true;
                     } else {

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson
ModuleMPAlignmentInput.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/ModuleMPAlignmentInput.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/ModuleMPAlignmentInput.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -18,9 +18,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.TrackUtils;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
@@ -255,7 +255,9 @@
         
    
         int layer = hit.Layer();
-        int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        //===> int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
+        int side = sensor.isTopLayer() ? 10000 : 20000;
 
         
         if(_DEBUG) {
@@ -380,12 +382,15 @@
    
 
      private void PrintHitResiduals(HelicalTrackHit hit) {
-         HelicalTrackStrip strip = ((HelicalTrackCross) hit).getStrips().get(0);
-         String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";        
+        HelicalTrackStrip strip = ((HelicalTrackCross) hit).getStrips().get(0);
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        //===> String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";        
+        String side = sensor.isTopLayer() ? "top" : "bottom";        
         if (_DEBUG) {
             System.out.printf("%s: --- Alignment Results for this helical track hit ---\n",this.getClass().getSimpleName());
             
-            String sensor_type = SvtUtils.getInstance().isAxial((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "axial" : "stereo";
+            //===> String sensor_type = SvtUtils.getInstance().isAxial((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "axial" : "stereo";
+            String sensor_type = sensor.isAxial() ? "axial" : "stereo";
             System.out.printf("%s: Layer %d in %s at position %s\n",this.getClass().getSimpleName(), hit.Layer(),side, hit.getCorrectedPosition().toString());
             System.out.printf("%s: Residuals (x,y,z) : %5.5e %5.5e %5.5e\n",this.getClass().getSimpleName(), _resid[0], _resid[1], _resid[2]);
             System.out.printf("%s: Errors (x,y,z)    : %5.5e %5.5e %5.5e\n",this.getClass().getSimpleName(), _error[0], _error[1], _error[2]);

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson
ROOTFlatTupleDriver.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/ROOTFlatTupleDriver.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -22,7 +22,7 @@
 
 import org.hps.analysis.ecal.HPSMCParticlePlotsDriver;
 import org.hps.conditions.deprecated.BeamlineConstants;
-import org.hps.conditions.deprecated.SvtUtils;
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.readout.ecal.TriggerData;
 import org.hps.recon.ecal.HPSEcalCluster;
 import org.hps.recon.tracking.EventQuality;
@@ -36,7 +36,7 @@
 import org.lcsim.detector.identifier.IExpandedIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.tracker.silicon.DopedSilicon;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.GenericObject;
 import org.lcsim.event.MCParticle;
@@ -931,10 +931,12 @@
         if(this._debug) System.out.printf("%s: found %d strips in clollection, asking strips in the %s\n", this.getClass().getSimpleName(),strips.size(),(top?"top":"bottom"));
         for(SiTrackerHitStrip1D strip : strips) {
             IDetectorElement de = strip.getSensor();
-            SiSensor sensor = (SiSensor) de;
+            HpsSiSensor sensor = (HpsSiSensor) de;
             int lyr = _ID.getLayer(de);
-            if(!top && SvtUtils.getInstance().isTopLayer(sensor)) continue;
-            else if (top && !SvtUtils.getInstance().isTopLayer(sensor)) continue;
+            //===> if(!top && SvtUtils.getInstance().isTopLayer(sensor)) continue;
+            if(!top && sensor.isTopLayer()) continue;
+            //else if (top && !SvtUtils.getInstance().isTopLayer(sensor)) continue;
+            else if (top && !sensor.isTopLayer()) continue;
             if(this._debug) System.out.printf("%s: strip \"%s\" at %s is selected\n", this.getClass().getSimpleName(),_ID.getName(de),strip.getPositionAsVector().toString());
             if(!map.containsKey(lyr)) {
                 map.put(lyr, new ArrayList<SiTrackerHitStrip1D>());

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson
StripMPAlignmentInput.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/StripMPAlignmentInput.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -19,9 +19,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
+//===> import org.hps.conditions.deprecated.SvtUtils;
 import org.hps.recon.tracking.TrackUtils;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
@@ -286,7 +287,9 @@
         
    
         int layer = strip.layer();
-        int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        //===> int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
+        int side = sensor.isTopLayer() ? 10000 : 20000;
 
         
         if(_DEBUG) {
@@ -388,7 +391,9 @@
         _error[2] = res_local.get("wreserr");
         
         double vdiffy = res_local.get("vdiffTrky");
-        String side = SvtUtils.getInstance().isTopLayer((SiSensor)((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        String side = sensor.isTopLayer() ? "top" : "bottom";        
+        //===> String side = SvtUtils.getInstance().isTopLayer((SiSensor)((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";
         //Fill residuals vs distrance from center of plane in the v directions
         aida.profile1D("res_u_vs_ydiff_layer_" + strip.layer() + "_" + side).fill(vdiffy,_resid[0]);
 
@@ -493,11 +498,14 @@
 
     private void PrintStripResiduals(HelicalTrackStrip strip) {
         
-        String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";        
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        String side = sensor.isTopLayer() ? "top" : "bottom";        
+        //===> String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";        
         
         if (_DEBUG) {
             System.out.printf("%s: --- Alignment Results for this Strip ---\n",this.getClass().getSimpleName());            
-            String sensor_type = SvtUtils.getInstance().isAxial((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "axial" : "stereo";
+            //===> String sensor_type = SvtUtils.getInstance().isAxial((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "axial" : "stereo";
+            String sensor_type = sensor.isAxial() ? "axial" : "stereo";
             System.out.printf("%s: Strip layer %4d is %s in %s  at origin %s\n",this.getClass().getSimpleName(), strip.layer(),sensor_type, side, strip.origin().toString());
             System.out.printf("%s: u=%s v=%s w=%s\n",this.getClass().getSimpleName(), strip.u().toString(),strip.v().toString(),strip.w().toString());
             System.out.printf("%s: Residuals (u,v,w) : %5.5e %5.5e %5.5e\n",this.getClass().getSimpleName(), _resid[0], _resid[1], _resid[2]);
@@ -850,7 +858,9 @@
         Hep3Vector corigin = strip.origin();
         double vmeas = corigin.y(); //THis is wrong
         int layer = strip.layer();
-        int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
+        HpsSiSensor sensor = (HpsSiSensor) ((RawTrackerHit) strip.rawhits().get(0)).getDetectorElement();
+        int side = sensor.isTopLayer() ? 10000 : 20000;
+        //===> int side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? 10000 : 20000;
 
         if(_DEBUG) {
             System.out.printf("%s: --- Calculate global derivatives ---\n",this.getClass().getSimpleName());

java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson
TrackingGeometryChecker.java 1245 -> 1246
--- java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/TrackingGeometryChecker.java	2014-10-19 06:58:06 UTC (rev 1245)
+++ java/branches/hps_java_trunk_HPSJAVA-255/users/src/main/java/org/hps/users/phansson/TrackingGeometryChecker.java	2014-10-20 04:54:20 UTC (rev 1246)
@@ -3,11 +3,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.hps.conditions.deprecated.SvtUtils;
+
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.SimTrackerHit;
@@ -35,15 +35,15 @@
 		 // Get all of the sensors composing the SVT and add them to the set of all sensors
         IDetectorElement detectorElement = arg0.getDetectorElement().findDetectorElement("Tracker");
         IIdentifierHelper helper = detectorElement.getIdentifierHelper();
-        List<SiSensor> sensors = new ArrayList<SiSensor>();
-		sensors.addAll(detectorElement.findDescendants(SiSensor.class));
+        List<HpsSiSensor> sensors = new ArrayList<HpsSiSensor>();
+		sensors.addAll(detectorElement.findDescendants(HpsSiSensor.class));
         System.out.printf("%s: Total number of sensors: %d\n",getClass().getSimpleName(), sensors.size());
 
         IIdentifier sensorIdent;
         SiTrackerIdentifierHelper sensorHelper;
         String description;
         // Loop through all of the sensors and fill the maps
-        for (SiSensor sensor : sensors) {
+        for (HpsSiSensor sensor : sensors) {
 
             // Get the sensor identifier
             sensorIdent = sensor.getIdentifier();
@@ -60,7 +60,7 @@
             
             System.out.printf("%s: Sensor name %s\n",getClass().getSimpleName(), sensor.getName());
             System.out.printf("%s: Sensor position %s\n",getClass().getSimpleName(), sensor.getGeometry().getPosition().toString());
-            System.out.printf("%s: Sensor is %s %s \n",getClass().getSimpleName(), SvtUtils.getInstance().isTopLayer(sensor)?"top":"bottom", SvtUtils.getInstance().isAxial(sensor)?"axial":"stereo");
+            System.out.printf("%s: Sensor is %s %s \n",getClass().getSimpleName(), sensor.isTopLayer()?"top":"bottom", sensor.isAxial()?"axial":"stereo");
             System.out.printf("%s: layerNumber %d\n",getClass().getSimpleName(), layerNumber);
             System.out.printf("%s: moduleNumber %d\n",getClass().getSimpleName(), moduleNumber);
             System.out.printf("%s: sideNumber %d\n",getClass().getSimpleName(), sideNumber);
SVNspam 0.1