Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/recon/ecal on MAIN
HPSTriggerDriver.java+34-11.5 -> 1.6
Added SVT trigger code

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSTriggerDriver.java 1.5 -> 1.6
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);
CVSspam 0.2.12


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