Commit in hps-java/src/main/java/org/lcsim/hps/recon/ecal on MAIN | |||
HPSTriggerDriver.java | +34 | -1 | 1.5 -> 1.6 |
Added SVT trigger code
diff -u -r1.5 -r1.6 --- HPSTriggerDriver.java 12 Jan 2012 00:26:16 -0000 1.5 +++ HPSTriggerDriver.java 12 Jan 2012 22:52:09 -0000 1.6 @@ -2,21 +2,26 @@
import java.io.IOException; import java.io.PrintWriter;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Queue; +
import org.lcsim.event.EventHeader; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder; import org.lcsim.geometry.Subdetector;
+import org.lcsim.hps.recon.tracking.apv25.HPSAPV25;
import org.lcsim.hps.util.ClockSingleton; import org.lcsim.util.Driver; /** * Reads clusters and makes trigger decision using opposite quadrant criterion. * Prints triggers to file if file path specified.
+ * Applies SVT trigger latency and sends trigger signal to SVT
* * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSTriggerDriver.java,v 1.5 2012/01/12 00:26:16 meeg Exp $
+ * @version $Id: HPSTriggerDriver.java,v 1.6 2012/01/12 22:52:09 omoreno Exp $
*/ public abstract class HPSTriggerDriver extends Driver {
@@ -29,6 +34,13 @@
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 = 80.0; // [ns]
public HPSTriggerDriver() { }
@@ -107,6 +119,27 @@
} } }
+ + // If an ECal trigger signal has been sent store the trigger + // time offset by the SVT trigger latency + if(ClockSingleton.triggered()){ + svtTriggerTimeStamp.offer( + ClockSingleton.getTime() + svtTriggerLatency); + System.out.println("Trigger added"); + } + + // 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(); + }
} public abstract boolean testTrigger(List<HPSEcalCluster> clusters);
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