Commit in java/trunk on MAIN
ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java+76-58492 -> 493
                                                   /FADCTriggerDriver.java+22-22492 -> 493
ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java+1-1492 -> 493
steering-files/src/main/resources/org/hps/steering/monitoring/ECalBasicMonitoring.lcsim+1492 -> 493
                                                             /ECalMonitoring.lcsim+1492 -> 493
                                                             /ECalTriggerWindowMonitoring.lcsim+1492 -> 493
                                                             /OnlineTracking.lcsim+1492 -> 493
                                                             /SVTEventDisplay.lcsim+1492 -> 493
                                                             /SVTMonitoring.lcsim+1492 -> 493
                                                             /TestRunEventDisplay.lcsim+1492 -> 493
                                                             /TestRunMonitoring.lcsim+1492 -> 493
                                                             /TestRunMonitoringExample.lcsim+1492 -> 493
steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToEvio.lcsim+1-22492 -> 493
                                                          /HPS2014ReadoutToLcio.lcsim+3-24492 -> 493
                                                          /TestRunReadoutToEvio.lcsim+9-24492 -> 493
                                                          /TestRunReadoutToLcio.lcsim+6-24492 -> 493
                                                          /TestRunSim.lcsim-125492 removed
+127-300
1 removed + 16 modified, total 17 files
change ECal pulse shape and thresholds, change trigger thresholds, default to new definition of gain

java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
FADCEcalReadoutDriver.java 492 -> 493
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java	2014-04-17 01:13:23 UTC (rev 493)
@@ -43,7 +43,6 @@
     private static final int ECAL_WINDOW_MODE = 1;
     private static final int ECAL_PULSE_MODE = 2;
     private static final int ECAL_PULSE_INTEGRAL_MODE = 3;
-    
     String ecalName = "Ecal";
     Subdetector ecal;
     //buffer for preamp signals (units of volts, no pedestal)
@@ -51,7 +50,7 @@
     //ADC pipeline for readout (units of ADC counts)
     private Map<Long, FADCPipeline> pipelineMap = null;
     //buffer for window sums
-    private Map<Long, Double> sumMap = null;
+    private Map<Long, Integer> sumMap = null;
     //buffer for timestamps
     private Map<Long, Integer> timeMap = null;
     //queue for hits to be output to clusterer
@@ -60,10 +59,8 @@
     private int bufferLength = 100;
     //length of readout pipeline (in readout cycles)
     private int pipelineLength = 2000;
-    //switch between two pulse shape functions
-    private boolean useCRRCShape = true;
-    //shaper time constant in ns; negative values generate square pulses of the given width (for test run sim)
-    private double tp = 14.0;
+    //shaper time constant in ns
+    private double tp = 6.95;
     //delay (number of readout periods) between start of summing window and output of hit to clusterer
     private int delay0 = 32;
     //start of readout window relative to trigger time (in readout cycles)
@@ -86,16 +83,23 @@
     //output collection name for hits read out from trigger
     private String ecalReadoutCollectionName = "EcalReadoutHits";
     private int mode = ECAL_PULSE_INTEGRAL_MODE;
-    private int readoutThreshold = 50;
-    private int triggerThreshold = 50;
-    //amplitude ADC counts/GeV
-//    private double gain = 0.5*1000 * 80.0 / 60;
-    private double scaleFactor = 128;
+    private int readoutThreshold = 10;
+    private int triggerThreshold = 10;
+    private double scaleFactor = 1;
     private double fixedGain = -1;
-    private boolean constantTriggerWindow = false;
+    private boolean constantTriggerWindow = true;
     private boolean addNoise = false;
     private double pePerMeV = 2.0; //photoelectrons per MeV, used to calculate noise
+    //switch between test run and 2014 definitions of gain constants
+    private boolean use2014Gain = true;
+    //switch between three pulse shape functions
+    private PulseShape pulseShape = PulseShape.ThreePole;
 
+    public enum PulseShape {
+
+        CRRC, DoubleGaussian, ThreePole
+    }
+
     public FADCEcalReadoutDriver() {
         flags = 0;
         flags += 1 << LCIOConstants.RCHBIT_TIME; //store timestamp
@@ -156,10 +160,14 @@
         this.coincidenceWindow = coincidenceWindow;
     }
 
-    public void setUseCRRCShape(boolean useCRRCShape) {
-        this.useCRRCShape = useCRRCShape;
+    public void setUse2014Gain(boolean use2014Gain) {
+        this.use2014Gain = use2014Gain;
     }
 
+    public void setPulseShape(String pulseShape) {
+        this.pulseShape = PulseShape.valueOf(pulseShape);
+    }
+
     public void setTp(double tp) {
         this.tp = tp;
     }
@@ -223,15 +231,17 @@
             pipeline.step();
 
             double currentValue = signalBuffer.currentValue() * ((Math.pow(2, nBit) - 1) / maxVolt); //12-bit ADC with maxVolt V range
-            double pedestal = EcalConditions.physicalToPedestal(cellID);
-            pipeline.writeValue(Math.min((int) Math.round(pedestal + currentValue), (int) Math.pow(2, nBit))); //ADC can't return a value larger than 4095; 4096 (overflow) is returned for any input >2V
+            int pedestal = (int) Math.round(EcalConditions.physicalToPedestal(cellID));
+            int digitizedValue = Math.min((int) Math.round(pedestal + currentValue), (int) Math.pow(2, nBit)); //ADC can't return a value larger than 4095; 4096 (overflow) is returned for any input >2V
+            pipeline.writeValue(digitizedValue);
+            int pedestalSubtractedValue = digitizedValue - pedestal;
             //System.out.println(signalBuffer.currentValue() + "   " + currentValue + "   " + pipeline.currentValue());
 
-            Double sum = sumMap.get(cellID);
-            if (sum == null && currentValue > triggerThreshold) {
+            Integer sum = sumMap.get(cellID);
+            if (sum == null && pedestalSubtractedValue > triggerThreshold) {
                 timeMap.put(cellID, readoutCounter);
                 if (constantTriggerWindow) {
-                    double sumBefore = 0;
+                    int sumBefore = 0;
                     for (int i = 0; i < numSamplesBefore; i++) {
                         if (debug) {
                             System.out.format("trigger %d, %d: %d\n", cellID, i, pipeline.getValue(numSamplesBefore - i - 1));
@@ -240,7 +250,7 @@
                     }
                     sumMap.put(cellID, sumBefore);
                 } else {
-                    sumMap.put(cellID, currentValue);
+                    sumMap.put(cellID, pedestalSubtractedValue);
                 }
             }
             if (sum != null) {
@@ -259,15 +269,15 @@
                         sumMap.remove(cellID);
                     }
                 } else {
-                    if (currentValue < triggerThreshold || timeMap.get(cellID) + delay0 == readoutCounter) {
+                    if (pedestalSubtractedValue < triggerThreshold || timeMap.get(cellID) + delay0 == readoutCounter) {
 //					System.out.printf("sum = %f\n",sum);
                         outputQueue.add(new HPSRawCalorimeterHit(cellID,
-                                (int) Math.round((sum + currentValue) / scaleFactor),
+                                (int) Math.round((sum + pedestalSubtractedValue) / scaleFactor),
                                 64 * timeMap.get(cellID),
                                 readoutCounter - timeMap.get(cellID) + 1));
                         sumMap.remove(cellID);
                     } else {
-                        sumMap.put(cellID, sum + currentValue);
+                        sumMap.put(cellID, sum + pedestalSubtractedValue);
                     }
                 }
             }
@@ -423,8 +433,8 @@
             if (addNoise) {
                 //add preamp noise and photoelectron Poisson noise in quadrature
                 double noise;
-                if (!useCRRCShape) {
-                    noise = Math.sqrt(Math.pow(EcalConditions.physicalToNoise(hit.getCellID()) * EcalConditions.physicalToGain(hit.getCellID()) * ECalUtils.gainFactor * ECalUtils.ecalReadoutPeriod, 2) + hit.getRawEnergy() * ECalUtils.MeV / pePerMeV);
+                if (use2014Gain) {
+                    noise = Math.sqrt(Math.pow(EcalConditions.physicalToNoise(hit.getCellID()) * EcalConditions.physicalToGain(hit.getCellID()) * ECalUtils.gainFactor * ECalUtils.ecalReadoutPeriod, 2) + hit.getRawEnergy() / (ECalUtils.lightYield * ECalUtils.quantumEff * ECalUtils.surfRatio));
                 } else {
                     noise = Math.sqrt(Math.pow(EcalConditions.physicalToNoise(hit.getCellID()) * EcalConditions.physicalToGain(hit.getCellID()) * ECalUtils.MeV, 2) + hit.getRawEnergy() * ECalUtils.MeV / pePerMeV);
                 }
@@ -439,7 +449,7 @@
     @Override
     protected void initReadout() {
         //initialize buffers
-        sumMap = new HashMap<Long, Double>();
+        sumMap = new HashMap<Long, Integer>();
         timeMap = new HashMap<Long, Integer>();
         outputQueue = new PriorityQueue(20, new HPSRawCalorimeterHit.TimeComparator());
         resetFADCBuffers();
@@ -467,11 +477,17 @@
     }
 
     private double pulseAmplitude(double time, long cellID) {
-        if (useCRRCShape) {
-            if (time <= 0.0) {
-                return 0.0;
+        if (use2014Gain) {
+            //if fixedGain is set, multiply the default gain by this factor
+            double corrGain;
+            if (fixedGain > 0) {
+                corrGain = fixedGain;
+            } else {
+                corrGain = 1.0 / EcalConditions.physicalToGain(cellID);
             }
 
+            return corrGain * readoutGain * pulseAmplitude(time, pulseShape, tp);
+        } else {
             //normalization constant from cal gain (MeV/integral bit) to amplitude gain (amplitude bit/GeV)
             double gain;
             if (fixedGain > 0) {
@@ -480,37 +496,39 @@
                 gain = readoutPeriod / (EcalConditions.physicalToGain(cellID) * ECalUtils.MeV * ((Math.pow(2, nBit) - 1) / maxVolt));
             }
 
-            if (tp > 0.0) {
-                return gain * ((time / tp) * Math.exp(1.0 - time / tp)) / (tp * Math.E);
-            } else {
-                if (time < -tp) {
-                    return 1.0;
-                } else {
-                    return 0.0;
-                }
-            }
-        } else {   // According to measurements the output signal can be fitted by two gaussians, one for the rise of the signal, one for the fall
-            // Time corresponds to t-(t_eve+pulseDelay) such that the maximum of the amplitude is reached pulseDelay ns after the event t_eve
-            // Without the coefficient, the integral is equal to 1
-            if (time <= 0.0) {
-                return 0.0;
-            }
+            return gain * pulseAmplitude(time, pulseShape, tp);
+        }
+    }
 
-            //if fixedGain is set, multiply the default gain by this factor
-            double corrGain = 1.0;
-            if (fixedGain > 0) {
-                corrGain = fixedGain;
-            } else {
-                corrGain = 1.0 / EcalConditions.physicalToGain(cellID);
-            }
+    /**
+     * Returns pulse amplitude at the given time (relative to hit time).
+     * Amplitude is normalized so the pulse integral is 1.
+     *
+     * @param time
+     * @return
+     */
+    public static double pulseAmplitude(double time, PulseShape shape, double shapingTime) {
+        if (time <= 0.0) {
+            return 0.0;
+        }
+        switch (shape) {
+            case CRRC:
+                //peak at tp
+                //peak value 1/(tp*e)
+                return ((time / (shapingTime * shapingTime)) * Math.exp(-time / shapingTime));
+            case DoubleGaussian:
+                //According to measurements the output signal can be fitted by two gaussians, one for the rise of the signal, one for the fall
+                //peak at 3*riseTime
+                //peak value 1/norm
 
-            double norm = ((riseTime + fallTime) / 2) * Math.sqrt(2 * Math.PI); //to ensure the total integral is equal to 1: = 33.8
-
-            if (time < 3 * riseTime) {
-                return corrGain * readoutGain * funcGaus(time - 3 * riseTime, riseTime) / norm;
-            } else {
-                return corrGain * readoutGain * funcGaus(time - 3 * riseTime, fallTime) / norm;
-            }
+                double norm = ((riseTime + fallTime) / 2) * Math.sqrt(2 * Math.PI); //to ensure the total integral is equal to 1: = 33.8
+                return funcGaus(time - 3 * riseTime, (time < 3 * riseTime) ? riseTime : fallTime) / norm;
+            case ThreePole:
+                //peak at 2*tp
+                //peak value 2/(tp*e^2)
+                return ((time * time / (2 * shapingTime * shapingTime * shapingTime)) * Math.exp(-time / shapingTime));
+            default:
+                return 0.0;
         }
     }
 

java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
FADCTriggerDriver.java 492 -> 493
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCTriggerDriver.java	2014-04-17 01:13:23 UTC (rev 493)
@@ -31,15 +31,15 @@
     int totalEvents;
     protected double beamEnergy = 2.2 * ECalUtils.GeV;
     private int minHitCount = 1;
-    private double clusterEnergyHigh = 1.85 / 2.2;
-    private double clusterEnergyLow = .1 / 2.2;
-    private double energySumThreshold = 1.0;
-    private double energyDifferenceThreshold = 1.5 / 2.2;
+    private double clusterEnergyHigh = 1.5 * ECalUtils.GeV;
+    private double clusterEnergyLow = .1 * ECalUtils.GeV;
+    private double energySumThreshold = 2.2 * ECalUtils.GeV;
+    private double energyDifferenceThreshold = 1.5 * ECalUtils.GeV;
     private double maxCoplanarityAngle = 35; // degrees
 //    private double energyDistanceDistance = 250; // mm
 //    private double energyDistanceThreshold = 0.8 / 2.2;
     private double energyDistanceDistance = 200; // mm
-    private double energyDistanceThreshold = 0.5;
+    private double energyDistanceThreshold = 0.5; // unitless fraction
     // maximum time difference between two clusters, in units of readout cycles (4 ns).
     private int pairCoincidence = 2;
     private double originX = 1393.0 * Math.tan(0.03052); //ECal midplane, defined by photon beam position (30.52 mrad) at ECal face (z=1393 mm)
@@ -88,21 +88,21 @@
         if (beamEnergy == 1.1) {
             System.out.println(this.getClass().getSimpleName() + ": Setting trigger for 1.1 GeV beam");
             maxCoplanarityAngle = 90;
-            clusterEnergyHigh = .7 / beamEnergy;
-            clusterEnergyLow = .1 / beamEnergy;
-            energySumThreshold = 0.8 / beamEnergy;
+            clusterEnergyHigh = .7;
+            clusterEnergyLow = .1;
+            energySumThreshold = 0.8;
         } else if (beamEnergy == 2.2) {
             System.out.println(this.getClass().getSimpleName() + ": Setting trigger for 2.2 GeV beam");
-            maxCoplanarityAngle = 45;
-            clusterEnergyHigh = 1.6 / beamEnergy;
-            clusterEnergyLow = .1 / beamEnergy;
-            energySumThreshold = 1.7 / beamEnergy;
+            maxCoplanarityAngle = 35;
+            clusterEnergyHigh = 1.5;
+            clusterEnergyLow = .1;
+            energySumThreshold = 1.9;
         } else if (beamEnergy == 6.6) {
             System.out.println(this.getClass().getSimpleName() + ": Setting trigger for 6.6 GeV beam");
             maxCoplanarityAngle = 60;
-            clusterEnergyHigh = 5.0 / beamEnergy;
-            clusterEnergyLow = .1 / beamEnergy;
-            energySumThreshold = 5.5 / beamEnergy;
+            clusterEnergyHigh = 5.0;
+            clusterEnergyLow = .1;
+            energySumThreshold = 5.5;
         }
         this.beamEnergy = beamEnergy * ECalUtils.GeV;
     }
@@ -129,7 +129,7 @@
 
     /**
      * Set X coordinate used as the origin for cluster coplanarity and distance
-     * calculations. Defaults to the ECal midplane.
+     * calculations. Defaults to the ECal midplane. Units of mm.
      *
      * @param originX
      */
@@ -455,10 +455,10 @@
      * @return true if a pair is found, false otherwise
      */
     protected boolean clusterECut(HPSEcalCluster[] clusterPair) {
-        return (clusterPair[0].getEnergy() < beamEnergy * clusterEnergyHigh
-                && clusterPair[1].getEnergy() < beamEnergy * clusterEnergyHigh
-                && clusterPair[0].getEnergy() > beamEnergy * clusterEnergyLow
-                && clusterPair[1].getEnergy() > beamEnergy * clusterEnergyLow);
+        return (clusterPair[0].getEnergy() < clusterEnergyHigh
+                && clusterPair[1].getEnergy() < clusterEnergyHigh
+                && clusterPair[0].getEnergy() > clusterEnergyLow
+                && clusterPair[1].getEnergy() > clusterEnergyLow);
     }
 
     /**
@@ -470,7 +470,7 @@
      */
     protected boolean energySum(Cluster[] clusterPair) {
         double clusterESum = clusterPair[0].getEnergy() + clusterPair[1].getEnergy();
-        return (clusterESum < beamEnergy * energySumThreshold);
+        return (clusterESum < energySumThreshold);
     }
 
     /**
@@ -483,7 +483,7 @@
     protected boolean energyDifference(HPSEcalCluster[] clusterPair) {
         double clusterEDifference = clusterPair[0].getEnergy() - clusterPair[1].getEnergy();
 
-        return (clusterEDifference < beamEnergy * energyDifferenceThreshold);
+        return (clusterEDifference < energyDifferenceThreshold);
     }
 
     /**

java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal
EcalRawConverter.java 492 -> 493
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java	2014-04-17 01:13:23 UTC (rev 493)
@@ -16,7 +16,7 @@
     private boolean debug = false;
     private boolean constantGain = false;
     private double gain;
-    private boolean use2014Gain = false;
+    private boolean use2014Gain = true;
 
     public EcalRawConverter() {
     }

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
ECalBasicMonitoring.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalBasicMonitoring.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalBasicMonitoring.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -20,6 +20,7 @@
 
         <driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
             <applyBadCrystalMap>false</applyBadCrystalMap>
+            <use2014Gain>false</use2014Gain>
         </driver>
         
         <driver name="EcalClusterer" type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
ECalMonitoring.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalMonitoring.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalMonitoring.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -31,6 +31,7 @@
         <driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
 <!--            <threshold>150</threshold>-->
             <applyBadCrystalMap>false</applyBadCrystalMap>
+            <use2014Gain>false</use2014Gain>
 <!--            <dropBadFADC>true</dropBadFADC>-->
         </driver>
         <driver name="EcalDaqPlots" type="org.hps.monitoring.drivers.ecal.EcalDaqPlots">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
ECalTriggerWindowMonitoring.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalTriggerWindowMonitoring.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/ECalTriggerWindowMonitoring.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -35,6 +35,7 @@
             <rawCollectionName>EcalIntegralHits</rawCollectionName>
             <integralWindow>35</integralWindow>
             <gain>1.0</gain>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalDaqPlots" type="org.hps.monitoring.drivers.ecal.EcalDaqPlots">
         </driver>

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
OnlineTracking.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/OnlineTracking.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/OnlineTracking.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -27,6 +27,7 @@
           <driver name="EcalRawConverter" 
                 type="org.hps.recon.ecal.EcalRawConverterDriver">
 			<ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
 	</driver>
         <driver name="EcalClusterer"
                 type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
SVTEventDisplay.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SVTEventDisplay.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SVTEventDisplay.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -29,6 +29,7 @@
         <driver name="EcalRawConverter" 
                 type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalClusterer"
                 type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
SVTMonitoring.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SVTMonitoring.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/SVTMonitoring.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -36,6 +36,7 @@
         <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/>
         <driver name="EcalRawConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalClusterer" type="org.hps.recon.ecal.EcalClusterer">
             <ecalName>Ecal</ecalName>

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
TestRunEventDisplay.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunEventDisplay.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunEventDisplay.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -32,6 +32,7 @@
         <driver name="EcalRawConverter" 
                 type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalClusterer"
                 type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
TestRunMonitoring.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunMonitoring.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunMonitoring.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -32,6 +32,7 @@
         <driver name="EcalRawConverter" 
                 type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalClusterer"
                 type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring
TestRunMonitoringExample.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunMonitoringExample.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/TestRunMonitoringExample.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -23,6 +23,7 @@
         <driver name="EcalRawConverter" 
                 type="org.hps.recon.ecal.EcalRawConverterDriver">
             <ecalCollectionName>EcalCalHits</ecalCollectionName>
+            <use2014Gain>false</use2014Gain>
         </driver>
         <driver name="EcalClusterer"
                 type="org.hps.recon.ecal.EcalClusterer">

java/trunk/steering-files/src/main/resources/org/hps/steering/readout
HPS2014ReadoutToEvio.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToEvio.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToEvio.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -16,9 +16,6 @@
         
         <driver name="SimpleSVTReadout"/>
 
-<!--        <driver name="SVTReadout"/>
-        <driver name="Digitization"/>
-        <driver name="DataProcessing"/>-->
         <driver name="TestRunReconToEvio"/>
 
         <!--<driver name="AidaSaveDriver"/>-->
@@ -43,11 +40,9 @@
             <ecalName>Ecal</ecalName>
             <ecalCollectionName>EcalHits</ecalCollectionName>
             <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
-            <constantTriggerWindow>true</constantTriggerWindow>
-            <scaleFactor>1</scaleFactor>
+            <addNoise>true</addNoise>
 <!--            <fixedGain>0.15</fixedGain>-->
 <!--            <debug>true</debug>-->
-            <useCRRCShape>false</useCRRCShape>
         </driver>
 
         <driver name="EcalConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
@@ -74,22 +69,6 @@
         <driver name="SimpleSVTReadout" type="org.hps.recon.tracking.SimpleSvtReadout">
         </driver>
 
-<!--        <driver name="SVTReadout" type="org.hps.recon.tracking.apv25.SvtReadout">
-            <debug>false</debug>
-            <pedestalRun>false</pedestalRun>
-            <triggerLatencyTime>240</triggerLatencyTime>
-        </driver>
-        
-        <driver name="Digitization" type="org.hps.recon.tracking.apv25.RearTransitionModule" />
-
-        <driver name="DataProcessing" type="org.hps.recon.tracking.apv25.TestRunDataProcessingModule" >
-            <enablePileUpCut>true</enablePileUpCut>
-            <enableThresholdCut>true</enableThresholdCut>
-            <noiseThreshold>2</noiseThreshold>
-            <numberOfSamplesAboveThreshold>3</numberOfSamplesAboveThreshold>
-            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
-        </driver>-->
-
 <!--        <driver name="AidaSaveDriver"
                         type="org.lcsim.job.AidaSaveDriver">
             <outputFileName>${outputFile}_triggerPlots</outputFileName>

java/trunk/steering-files/src/main/resources/org/hps/steering/readout
HPS2014ReadoutToLcio.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToLcio.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/readout/HPS2014ReadoutToLcio.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -16,9 +16,6 @@
         
         <driver name="SimpleSVTReadout"/>
 
-<!--        <driver name="SVTReadout"/>
-        <driver name="Digitization"/>
-        <driver name="DataProcessing"/>-->
         <driver name="TestRunReconToLcio"/>
 
         <driver name="AidaSaveDriver"/>
@@ -43,11 +40,9 @@
             <ecalName>Ecal</ecalName>
             <ecalCollectionName>EcalHits</ecalCollectionName>
             <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
-            <constantTriggerWindow>true</constantTriggerWindow>
-            <scaleFactor>1</scaleFactor>
+            <addNoise>true</addNoise>
 <!--            <fixedGain>0.15</fixedGain>-->
 <!--            <debug>true</debug>-->
-            <useCRRCShape>false</useCRRCShape>
         </driver>
 
         <driver name="EcalConverter" type="org.hps.recon.ecal.EcalRawConverterDriver">
@@ -71,27 +66,11 @@
             <pairCoincidence>2</pairCoincidence>
             <outputFileName>${outputFile}.triggers</outputFileName>
         </driver>	
-        <driver name="SimpleSVTReadout" type="org.hps.recon.tracking.SimpleSvtReadout">
+        <driver name="SimpleSVTReadout" type="org.hps.readout.svt.SimpleSvtReadout">
         </driver>
 
-<!--        <driver name="SVTReadout" type="org.hps.recon.tracking.apv25.SvtReadout">
-            <debug>false</debug>
-            <pedestalRun>false</pedestalRun>
-            <triggerLatencyTime>240</triggerLatencyTime>
-        </driver>
-        
-        <driver name="Digitization" type="org.hps.recon.tracking.apv25.RearTransitionModule" />
-
-        <driver name="DataProcessing" type="org.hps.recon.tracking.apv25.TestRunDataProcessingModule" >
-            <enablePileUpCut>true</enablePileUpCut>
-            <enableThresholdCut>true</enableThresholdCut>
-            <noiseThreshold>2</noiseThreshold>
-            <numberOfSamplesAboveThreshold>3</numberOfSamplesAboveThreshold>
-            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
-        </driver>-->
-
         <driver name="AidaSaveDriver"
-                        type="org.lcsim.job.AidaSaveDriver">
+                type="org.lcsim.job.AidaSaveDriver">
             <outputFileName>${outputFile}_triggerPlots</outputFileName>
         </driver>
 

java/trunk/steering-files/src/main/resources/org/hps/steering/readout
TestRunReadoutToEvio.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunReadoutToEvio.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunReadoutToEvio.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -4,7 +4,7 @@
 <lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
     <execute>
-<!--        <driver name="EventMarkerDriver"/>-->
+        <driver name="EventMarkerDriver"/>
         <driver name="CalibrationDriver"/>   
         <driver name="BadChannelFilter" />
         <driver name="EcalReadout"/>
@@ -13,18 +13,15 @@
         <driver name="EcalClusterer"/>
         <driver name="EcalTrigger"/>
         <driver name="SimpleSVTReadout"/>
-<!--        <driver name="SVTReadout"/>
-        <driver name="Digitization"/>
-        <driver name="DataProcessing"/>-->
         <driver name="ClockDriver"/>
         <driver name="TestRunReconToEvio"/>
         <driver name="CleanupDriver"/>
     </execute> 
 
     <drivers>
-        <!--<driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
-            <eventInterval>1</eventInterval>
-        </driver> -->
+        <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
+            <eventInterval>1000</eventInterval>
+        </driver> 
         <driver name="CalibrationDriver" type="org.hps.conditions.deprecated.CalibrationDriver">
 <!--            <runNumber>1351</runNumber>    -->
         </driver>
@@ -37,10 +34,14 @@
             <ecalName>Ecal</ecalName>
             <ecalCollectionName>EcalHits</ecalCollectionName>
             <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
+            <constantTriggerWindow>false</constantTriggerWindow>
+            <scaleFactor>128</scaleFactor>
             <triggerThreshold>80</triggerThreshold>
             <readoutThreshold>50</readoutThreshold>
             <pePerMeV>2.0</pePerMeV>
-            <useCRRCShape>true</useCRRCShape>
+            <use2014Gain>false</use2014Gain>
+            <pulseShape>CRRC</pulseShape>
+            <tp>14.0</tp>
         </driver>
 
         <driver name="EcalConverter" type="org.hps.recon.ecal.EcalConverterDriver">
@@ -68,22 +69,6 @@
         <driver name="SimpleSVTReadout" type="org.hps.recon.tracking.SimpleSvtReadout">
         </driver>
 
-<!--        <driver name="SVTReadout" type="org.hps.recon.tracking.apv25.SvtReadout">
-            <debug>false</debug>
-            <pedestalRun>false</pedestalRun>
-            <triggerLatencyTime>288</triggerLatencyTime>
-        </driver>
-        
-        <driver name="Digitization" type="org.hps.recon.tracking.apv25.RearTransitionModule" />
-
-        <driver name="DataProcessing" type="org.hps.recon.tracking.apv25.TestRunDataProcessingModule" >
-            <enablePileUpCut>true</enablePileUpCut>
-            <enableThresholdCut>true</enableThresholdCut>
-            <noiseThreshold>2</noiseThreshold>
-            <numberOfSamplesAboveThreshold>3</numberOfSamplesAboveThreshold>
-            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
-        </driver>-->
-
         <driver name="ClockDriver" type="org.hps.readout.ecal.ClockDriver"/>
         <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
             <collectionNames>TrackerHits</collectionNames>

java/trunk/steering-files/src/main/resources/org/hps/steering/readout
TestRunReadoutToLcio.lcsim 492 -> 493
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunReadoutToLcio.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunReadoutToLcio.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -3,10 +3,6 @@
 -->
 <lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
-    <control>
-        <printInputFiles>true</printInputFiles>
-        <printDriversDetailed>true</printDriversDetailed>
-    </control>    
     <execute>
         <driver name="EventMarkerDriver"/>
         <driver name="CalibrationDriver"/>   
@@ -17,9 +13,6 @@
         <driver name="EcalClusterer"/>
         <driver name="EcalTrigger"/>
         <driver name="SimpleSVTReadout"/>
-<!--        <driver name="SVTReadout"/>
-        <driver name="Digitization"/>
-        <driver name="DataProcessing"/>-->
         <driver name="ClockDriver"/>
         <driver name="TestRunReconToLcio"/>
         <driver name="CleanupDriver"/>
@@ -38,12 +31,17 @@
         <driver name="BadChannelFilter" type="org.hps.recon.tracking.SVTBadChannelFilterDriver" /> 	
         <driver name="EcalReadout" type="org.hps.readout.ecal.FADCEcalReadoutDriver">
             <coincidenceWindow>8</coincidenceWindow>
+            <ecalName>Ecal</ecalName>
             <ecalCollectionName>EcalHits</ecalCollectionName>
             <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
+            <constantTriggerWindow>false</constantTriggerWindow>
+            <scaleFactor>128</scaleFactor>
             <triggerThreshold>80</triggerThreshold>
             <readoutThreshold>50</readoutThreshold>
             <pePerMeV>2.0</pePerMeV>
-            <useCRRCShape>true</useCRRCShape>
+            <use2014Gain>false</use2014Gain>
+            <pulseShape>CRRC</pulseShape>
+            <tp>14.0</tp>
         </driver>
 
         <driver name="EcalConverter" type="org.hps.recon.ecal.EcalConverterDriver">
@@ -71,22 +69,6 @@
         <driver name="SimpleSVTReadout" type="org.hps.recon.tracking.SimpleSvtReadout">
         </driver>
 
-<!--        <driver name="SVTReadout" type="org.hps.recon.tracking.apv25.SvtReadout">
-            <debug>false</debug>
-            <pedestalRun>false</pedestalRun>
-            <triggerLatencyTime>288</triggerLatencyTime>
-        </driver>
-        
-        <driver name="Digitization" type="org.hps.recon.tracking.apv25.RearTransitionModule" />
-
-        <driver name="DataProcessing" type="org.hps.recon.tracking.apv25.TestRunDataProcessingModule" >
-            <enablePileUpCut>true</enablePileUpCut>
-            <enableThresholdCut>true</enableThresholdCut>
-            <noiseThreshold>2</noiseThreshold>
-            <numberOfSamplesAboveThreshold>3</numberOfSamplesAboveThreshold>
-            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
-        </driver>-->
-
         <driver name="ClockDriver" type="org.hps.readout.ecal.ClockDriver"/>
         <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
             <collectionNames>TrackerHits</collectionNames>

java/trunk/steering-files/src/main/resources/org/hps/steering/readout
TestRunSim.lcsim removed after 492
--- java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunSim.lcsim	2014-04-16 19:55:39 UTC (rev 492)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/readout/TestRunSim.lcsim	2014-04-17 01:13:23 UTC (rev 493)
@@ -1,125 +0,0 @@
-
-<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
-
-    <control>
-        <printInputFiles>true</printInputFiles>
-        <printDriversDetailed>true</printDriversDetailed>
-    </control>
-
-    <execute>
-        <driver name="Calibrations"           />
-        <driver name="EventMarkerDriver"         />
-        <!-- Ecal -->
-        <driver name="EcalReadout"               />
-        <driver name="EcalConverter"             />
-        <driver name="EcalTriggerFilter"/>
-        <driver name="EcalClusterer"             />
-        <driver name="EcalTrigger"               /> 
-        <!-- SVT -->
-        <driver name="SVTReadout"                />
-<!--        <driver name="SVTReadout"                />
-        <driver name="Digitization"              />
-        <driver name="DataProcessing"            />-->
-        <!-- Recon -->
-        <driver name="RawTrackerHitFitterDriver" />
-        <driver name="TrackerHitDriver"          /> 
-        <driver name="HelicalTrackHitDriver"     /> 
-        <driver name="TrackerReconDriver"        />
-        <driver name="ClockDriver"               />
-        <driver name="CleanupDriver"             />    
-    </execute>
-
-    <drivers>
-
-        <driver name="Calibrations" type="org.hps.conditions.deprecated.CalibrationDriver">
-            <runNumber>1351</runNumber>
-        </driver>     
-
-        <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver">
-            <eventInterval>1000</eventInterval>
-        </driver>
-
-        <driver name="EcalReadout" type="org.hps.readout.ecal.FADCEcalReadoutDriver">
-            <coincidenceWindow>2</coincidenceWindow>
-            <ecalName>Ecal</ecalName>
-            <ecalCollectionName>EcalHits</ecalCollectionName>
-            <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
-            <triggerThreshold>80</triggerThreshold>
-            <readoutThreshold>50</readoutThreshold>
-            <pePerMeV>2.0</pePerMeV>
-            <useCRRCShape>true</useCRRCShape>
-        </driver>
-
-        <driver name="EcalConverter" type="org.hps.recon.ecal.EcalConverterDriver">
-            <rawCollectionName>EcalRawHits</rawCollectionName>
-            <ecalCollectionName>EcalCorrectedHits</ecalCollectionName>
-            <scale>1</scale>
-        </driver>	
-        
-        <driver name="EcalTriggerFilter" type="org.hps.recon.ecal.EcalTriggerFilterDriver">
-            <inputCollection>EcalCorrectedHits</inputCollection>
-            <outputCollection>EcalFilteredHits</outputCollection>
-        </driver>
-
-        <driver name="EcalClusterer"
-            type="org.hps.recon.ecal.CTPEcalClusterer">
-            <ecalName>Ecal</ecalName>
-            <ecalCollectionName>EcalFilteredHits</ecalCollectionName>
-        </driver>
-
-        <driver name="EcalTrigger" type="org.hps.readout.ecal.TestRunTriggerDriver">
-            <clusterCollectionName>EcalClusters</clusterCollectionName>
-            <deadTime>10</deadTime>
-        </driver>
-
-        <driver name="SVTReadout" type="org.hps.recon.tracking.SimpleSvtReadout">
-        </driver>
-<!--        <driver name="SVTReadout" type="org.hps.recon.tracking.apv25.SvtReadout">
-            <debug>false</debug>
-            <pedestalRun>false</pedestalRun>
-            <triggerLatencyTime>288</triggerLatencyTime>
-        </driver>
-        
-        <driver name="Digitization" type="org.hps.recon.tracking.apv25.RearTransitionModule" />
-
-        <driver name="DataProcessing" type="org.hps.recon.tracking.apv25.TestRunDataProcessingModule" >
-            <enablePileUpCut>true</enablePileUpCut>
-            <enableThresholdCut>true</enableThresholdCut>
-            <noiseThreshold>2</noiseThreshold>
-            <numberOfSamplesAboveThreshold>3</numberOfSamplesAboveThreshold>
-            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
-        </driver>-->
-
-
-        <driver name="RawTrackerHitFitterDriver" type="org.hps.recon.tracking.RawTrackerHitFitterDriver">
-            <debug>false</debug> 
-            <rawHitCollectionName>SVTRawTrackerHits</rawHitCollectionName>  
-            <fittedHitCollectionName>SVTFittedRawTrackerHits</fittedHitCollectionName> 
-            <fitAlgorithm>Analytic</fitAlgorithm>  
-        </driver>
-
-
-        <driver name="TrackerHitDriver" type="org.hps.recon.tracking.DataTrackerHitDriver" >
-            <debug>false</debug>    
-        </driver>
-
-        <driver name="HelicalTrackHitDriver"
-                type="org.hps.recon.tracking.HelicalTrackHitDriver">
-            <debug>false</debug>
-            <maxSeperation>20.0</maxSeperation>
-            <tolerance>1.0</tolerance>
-        </driver>
-
-        <driver name="TrackerReconDriver" type="org.hps.recon.tracking.TrackerReconDriver">
-            <debug>false</debug>
-            <strategyResource> </strategyResource> 
-        </driver>
-        
-        <driver name="ClockDriver" type="org.hps.readout.ecal.ClockDriver" />
-
-        <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
-            <collectionNames>TrackerHits SVTRawTrackerHits  SVTFittedRawTrackerHits</collectionNames>
-        </driver>
-
-    </drivers>
-</lcsim>
SVNspam 0.1