1 removed + 16 modified, total 17 files
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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