Commit in hps-java/src/main on MAIN | |||
java/org/lcsim/hps/recon/ecal/HPSEcalFADCReadoutDriver.java | +3 | -3 | 1.15 -> 1.16 |
/HPSTriggerDriver.java | +154 | -153 | 1.9 -> 1.10 |
java/org/lcsim/hps/recon/tracking/apv25/HPSAPV25.java | +2 | -2 | 1.6 -> 1.7 |
java/org/lcsim/hps/users/meeg/FilterMCBunches.java | +4 | -3 | 1.1 -> 1.2 |
resources/org/lcsim/hps/steering/HPSTestRunReconToEvio.lcsim | +5 | -2 | 1.7 -> 1.8 |
+168 | -163 |
fix readout latency values
diff -u -r1.15 -r1.16 --- HPSEcalFADCReadoutDriver.java 22 Jun 2012 00:23:26 -0000 1.15 +++ HPSEcalFADCReadoutDriver.java 29 Jun 2012 23:00:48 -0000 1.16 @@ -26,7 +26,7 @@
* Simulates time evolution of preamp output pulse. * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.15 2012/06/22 00:23:26 meeg Exp $
+ * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.16 2012/06/29 23:00:48 meeg Exp $
*/ public class HPSEcalFADCReadoutDriver extends HPSEcalReadoutDriver<RawCalorimeterHit> {
@@ -56,10 +56,10 @@
private int readoutWindow = 100; //number of ADC samples to read out before each rising threshold crossing //in FADC documentation, "number of samples before" or NSB
- private int numSamplesBefore = 10;
+ private int numSamplesBefore = 5;
//number of ADC samples to read out after each rising threshold crossing //in FADC documentation, "number of samples before" or NSA
- private int numSamplesAfter = 50;
+ private int numSamplesAfter = 30;
// private HPSEcalConverter converter = null; //output buffer for hits private LinkedList<HPSFADCCalorimeterHit> buffer = new LinkedList<HPSFADCCalorimeterHit>();
diff -u -r1.9 -r1.10 --- HPSTriggerDriver.java 11 Jun 2012 22:55:09 -0000 1.9 +++ HPSTriggerDriver.java 29 Jun 2012 23:00:48 -0000 1.10 @@ -22,160 +22,161 @@
* Applies SVT trigger latency and sends trigger signal to SVT * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSTriggerDriver.java,v 1.9 2012/06/11 22:55:09 meeg Exp $
+ * @version $Id: HPSTriggerDriver.java,v 1.10 2012/06/29 23:00:48 meeg Exp $
*/ public abstract class HPSTriggerDriver extends Driver {
- protected Subdetector ecal; - private String ecalName; - private String clusterCollectionName; - protected IDDecoder dec = null; - private String outputFileName; - protected PrintWriter outputStream = null; - protected int numTriggers; - private int lastTrigger; - private int deadTime = 0; - // FIFO queue to store the svt trigger time stamp - public Queue<Double> svtTriggerTimeStamp = new LinkedList<Double>(); - // SVT trigger latency - public static final double svtTriggerLatency = 100.0; // [ns] - // FIFO queue to store the ECal trigger time stamp - private Queue<Double> ecalTriggerTimestamps = null; - // ECal trigger latency - private static final double ecalTriggerLatency = 100.0; // [ns] - - public HPSTriggerDriver() { - } - - /** - * Set dead time; 0 for no dead time - * @param deadTime Minimum number of clock ticks between triggers - */ - public void setDeadTime(int deadTime) { - this.deadTime = deadTime; - } - - public void setClusterCollectionName(String clusterCollectionName) { - this.clusterCollectionName = clusterCollectionName; - } - - public void setEcalName(String ecalName) { - this.ecalName = ecalName; - } - - public void setOutputFileName(String outputFileName) { - this.outputFileName = outputFileName; - } - - @Override - public void startOfData() { - if (clusterCollectionName == null) { - throw new RuntimeException("The parameter ecalCollectionName was not set!"); - } - - if (ecalName == null) { - throw new RuntimeException("The parameter ecalName was not set!"); - } - - if (outputFileName != null) { - try { - outputStream = new PrintWriter(outputFileName); - } catch (IOException ex) { - throw new RuntimeException("Invalid outputFilePath!"); - } - } - - numTriggers = 0; - - ecalTriggerTimestamps = new LinkedList<Double>(); - } - - @Override - public void detectorChanged(Detector detector) { - // Get the Subdetector. - ecal = detector.getSubdetector(ecalName); - - // Cache ref to decoder. - dec = ecal.getIDDecoder(); - } - - @Override - public void process(EventHeader event) { - //System.out.println(this.getClass().getCanonicalName() + " - process"); - - // Get the list of raw ECal hits. - List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); - if (clusters == null) { - throw new RuntimeException("Event is missing ECal clusters collection!"); - } - - if (testTrigger(clusters)) { - if (ClockSingleton.getClock() - lastTrigger > deadTime) { - ClockSingleton.setTrigger(); - lastTrigger = ClockSingleton.getClock(); - numTriggers++; - if (outputStream != null) { - outputStream.printf("Trigger on event %d\n", event.getEventNumber()); - } - } else { - if (outputStream != null) { - outputStream.printf("Event %d rejected by dead time\n", event.getEventNumber()); - } - } - } - - // If an ECal trigger signal has been sent store the trigger - // time offset by the trigger latencies - if (ClockSingleton.triggered()) { - svtTriggerTimeStamp.offer( - ClockSingleton.getTime() + svtTriggerLatency); - ecalTriggerTimestamps.add(ClockSingleton.getTime() + ecalTriggerLatency); - System.out.println("Trigger added"); - - if (outputStream != null) { - outputStream.printf("trigger sent to ET event builder on event %d\n", event.getEventNumber()); - } - TestRunTriggeredReconToEvio.triggerBit = true; - - } - - // Check if there are any pending SVT triggers to process - if (svtTriggerTimeStamp.peek() != null - && ClockSingleton.getTime() == svtTriggerTimeStamp.peek()) { - - if (outputStream != null) { - outputStream.printf("SVT trigger sent on event %d\n", event.getEventNumber()); - } - - // Send a trigger signal to the SVT - HPSAPV25.triggerBit = true; - svtTriggerTimeStamp.remove(); - } - - // Check if there are any pending ECal triggers to process - if (ecalTriggerTimestamps.peek() != null - && ClockSingleton.getTime() >= ecalTriggerTimestamps.peek()) { - - if (outputStream != null) { - outputStream.printf("ECal trigger sent on event %d\n", event.getEventNumber()); - } - - // Send a trigger signal to the ECal - HPSEcalReadoutDriver.triggerBit = true; - ecalTriggerTimestamps.remove(); - - - } - } - - public abstract boolean testTrigger(List<HPSEcalCluster> clusters); - - @Override - public void endOfData() { - if (outputStream != null) { - outputStream.printf("Trigger count: %d\n", numTriggers); - outputStream.close(); - } - System.out.printf("Trigger count: %d\n", numTriggers); - }
+ protected Subdetector ecal; + private String ecalName; + private String clusterCollectionName; + protected IDDecoder dec = null; + private String outputFileName; + protected PrintWriter outputStream = null; + protected int numTriggers; + private int lastTrigger; + private int deadTime = 0; + // FIFO queue to store the svt trigger time stamp + public Queue<Double> svtTriggerTimeStamp = new LinkedList<Double>(); + // SVT trigger latency + public static final double svtTriggerLatency = 100.0; // [ns] + // FIFO queue to store the ECal trigger time stamp + private Queue<Double> ecalTriggerTimestamps = null; + // ECal trigger latency + private static final double ecalTriggerLatency = 100.0; // [ns] + + public HPSTriggerDriver() { + } + + /** + * Set dead time; 0 for no dead time + * @param deadTime Minimum number of clock ticks between triggers + */ + public void setDeadTime(int deadTime) { + this.deadTime = deadTime; + } + + public void setClusterCollectionName(String clusterCollectionName) { + this.clusterCollectionName = clusterCollectionName; + } + + public void setEcalName(String ecalName) { + this.ecalName = ecalName; + } + + public void setOutputFileName(String outputFileName) { + this.outputFileName = outputFileName; + } + + @Override + public void startOfData() { + if (clusterCollectionName == null) { + throw new RuntimeException("The parameter ecalCollectionName was not set!"); + } + + if (ecalName == null) { + throw new RuntimeException("The parameter ecalName was not set!"); + } + + if (outputFileName != null) { + try { + outputStream = new PrintWriter(outputFileName); + } catch (IOException ex) { + throw new RuntimeException("Invalid outputFilePath!"); + } + } + + numTriggers = 0; + + ecalTriggerTimestamps = new LinkedList<Double>(); + } + + @Override + public void detectorChanged(Detector detector) { + // Get the Subdetector. + ecal = detector.getSubdetector(ecalName); + + // Cache ref to decoder. + dec = ecal.getIDDecoder(); + } + + @Override + public void process(EventHeader event) { + //System.out.println(this.getClass().getCanonicalName() + " - process"); + + // Get the list of raw ECal hits. + List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName); + if (clusters == null) { + throw new RuntimeException("Event is missing ECal clusters collection!"); + } + + if (testTrigger(clusters)) { + if (ClockSingleton.getClock() - lastTrigger > deadTime) { + ClockSingleton.setTrigger(); + lastTrigger = ClockSingleton.getClock(); + numTriggers++; + System.out.printf("Trigger on event %d\n", event.getEventNumber()); + if (outputStream != null) { + outputStream.printf("Trigger on event %d\n", event.getEventNumber()); + } + } else { + if (outputStream != null) { + outputStream.printf("Event %d rejected by dead time\n", event.getEventNumber()); + } + } + } + + // If an ECal trigger signal has been sent store the trigger + // time offset by the trigger latencies + if (ClockSingleton.triggered()) { + svtTriggerTimeStamp.offer( + ClockSingleton.getTime() + svtTriggerLatency); + ecalTriggerTimestamps.add(ClockSingleton.getTime() + ecalTriggerLatency); + System.out.println("Trigger added"); + + if (outputStream != null) { + outputStream.printf("trigger sent to ET event builder on event %d\n", event.getEventNumber()); + } + TestRunTriggeredReconToEvio.triggerBit = true; + + } + + // Check if there are any pending SVT triggers to process + if (svtTriggerTimeStamp.peek() != null + && ClockSingleton.getTime() == svtTriggerTimeStamp.peek()) { + + if (outputStream != null) { + outputStream.printf("SVT trigger sent on event %d\n", event.getEventNumber()); + } + + // Send a trigger signal to the SVT + HPSAPV25.triggerBit = true; + svtTriggerTimeStamp.remove(); + } + + // Check if there are any pending ECal triggers to process + if (ecalTriggerTimestamps.peek() != null + && ClockSingleton.getTime() >= ecalTriggerTimestamps.peek()) { + + if (outputStream != null) { + outputStream.printf("ECal trigger sent on event %d\n", event.getEventNumber()); + } + + // Send a trigger signal to the ECal + HPSEcalReadoutDriver.triggerBit = true; + ecalTriggerTimestamps.remove(); + + + } + } + + public abstract boolean testTrigger(List<HPSEcalCluster> clusters); + + @Override + public void endOfData() { + if (outputStream != null) { + outputStream.printf("Trigger count: %d\n", numTriggers); + outputStream.close(); + } + System.out.printf("Trigger count: %d\n", numTriggers); + }
}
\ No newline at end of file
diff -u -r1.6 -r1.7 --- HPSAPV25.java 21 Apr 2012 07:39:18 -0000 1.6 +++ HPSAPV25.java 29 Jun 2012 23:00:48 -0000 1.7 @@ -15,7 +15,7 @@
/** * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSAPV25.java,v 1.6 2012/04/21 07:39:18 omoreno Exp $
+ * @version $Id: HPSAPV25.java,v 1.7 2012/06/29 23:00:48 meeg Exp $
*/ public class HPSAPV25 {
@@ -309,7 +309,7 @@
//-------------------------------------// // Note that the buffer is modeled after a circular buffer public class APV25AnalogPipeline extends RingBuffer {
- private int _trigger_latency = (int) Math.floor(220 / apv25SamplingTime);
+ private int _trigger_latency = (int) Math.floor(270 / apv25SamplingTime);
public APV25AnalogPipeline() { super(ANALOG_PIPELINE_LENGTH); }
diff -u -r1.1 -r1.2 --- FilterMCBunches.java 21 Jun 2012 18:53:57 -0000 1.1 +++ FilterMCBunches.java 29 Jun 2012 23:00:48 -0000 1.2 @@ -22,7 +22,7 @@
* Intended use is to clean up a photon-run MC file before running trigger and readout sim. * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: FilterMCBunches.java,v 1.1 2012/06/21 18:53:57 meeg Exp $
+ * @version $Id: FilterMCBunches.java,v 1.2 2012/06/29 23:00:48 meeg Exp $
*/ public class FilterMCBunches {
@@ -36,6 +36,7 @@
options.addOption(new Option("e", true, "Interval between non-empty events")); options.addOption(new Option("n", true, "Number of events to read"));
+ options.addOption(new Option("a", true, "All events - no cuts"));
return options; }
@@ -109,7 +110,7 @@
detectorName = event.getDetectorName(); }
- if (goodEvent(event)) {
+ if (cl.hasOption("a") || goodEvent(event)) {
writtenEvents++; try { writer.write(event);
@@ -154,6 +155,6 @@
// return (ecalHits.size() + trackerHits.size() != 0);
- return (totalE>0.01);
+ return (totalE > 0.05 || !trackerHits.isEmpty());
} }
\ No newline at end of file
diff -u -r1.7 -r1.8 --- HPSTestRunReconToEvio.lcsim 7 Jun 2012 00:47:31 -0000 1.7 +++ HPSTestRunReconToEvio.lcsim 29 Jun 2012 23:00:48 -0000 1.8 @@ -23,6 +23,7 @@
<driver name="SVTReadout"/> <driver name="ClockDriver"/> <driver name="TestRunReconToEvio"/>
+ <driver name="CleanupDriver"/>
</execute> <drivers>
@@ -41,7 +42,6 @@
<ecalRawCollectionName>EcalRawHits</ecalRawCollectionName> <triggerThreshold>80</triggerThreshold> <readoutThreshold>50</readoutThreshold>
-<!-- <scale>0.08</scale>-->
</driver> <driver name="EcalConverter"
@@ -71,12 +71,15 @@
<driver name="SVTReadout" type="org.lcsim.hps.recon.tracking.apv25.HPSSiSensorReadout">
+ <addNoise>true</addNoise>
</driver> <driver name="ClockDriver" type="org.lcsim.hps.util.ClockDriver"> </driver>
-
+ <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"> + <collectionNames>TrackerHits</collectionNames> + </driver>
</drivers> </lcsim>
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1