hps-java/src/main/java/org/lcsim/hps/util
diff -u -r1.1 -r1.2
--- HPSTrigger.java 11 Oct 2011 16:13:57 -0000 1.1
+++ HPSTrigger.java 14 Oct 2011 18:46:44 -0000 1.2
@@ -16,11 +16,12 @@
/**
* Receives the ECal trigger signal and applies a trigger latency before
- * sending the signal to other HPS detectors.
+ * sending the signal to other HPS detectors. A trigger signal is only
+ * accepted once within every trigger window.
* Note: Currently, only the SVT is supported
*
* @author Omar Moreno
- * @version $Id: HPSTrigger.java,v 1.1 2011/10/11 16:13:57 omoreno Exp $
+ * @version $Id: HPSTrigger.java,v 1.2 2011/10/14 18:46:44 omoreno Exp $
*/
public class HPSTrigger extends Driver {
@@ -30,6 +31,10 @@
// Once the trigger latency is set, it should not change
public static final double triggerLatency = 80.0; // ns
+ // Trigger decision window
+ public static final double triggerWindow = 16.0; // ns
+ public static boolean triggerWindowBit = false;
+
/**
* Constructor
*/
@@ -41,7 +46,12 @@
*/
public static void addTrigger( )
{
- trigger.add( ClockSingleton.getTime() + triggerLatency );
+
+ // Only accept a single trigger within a given trigger window
+ if( !triggerWindowBit ){
+ trigger.add( ClockSingleton.getTime() + triggerLatency );
+ triggerWindowBit = true;
+ }
}
/**
@@ -56,6 +66,10 @@
{
super.process(event);
+ // Only accept a single trigger for a given trigger window
+ if( ClockSingleton.getTime()%triggerWindow == 0 )
+ triggerWindowBit = false;
+
// Check if there are any pending triggers
if( !( trigger.isEmpty() ) ){
if( ClockSingleton.getTime() == trigger.get( 0 ) ){
@@ -66,6 +80,5 @@
trigger.remove( 0 );
}
}
-
}
}