Print

Print


Author: [log in to unmask]
Date: Mon Mar 23 08:57:30 2015
New Revision: 2502

Log:
Added the ability for the singles and pair triggers to take a set of trigger cuts as an argument.

Modified:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCPrimaryTriggerDriver.java	Mon Mar 23 08:57:30 2015
@@ -704,4 +704,14 @@
         topClusterQueue.remove();
         botClusterQueue.remove();
     }
+    
+    /**
+     * Sets all cut values for the trigger using a string argument with
+     * the format "clusterMin clusterMax hitMin sumMin sumMax diffMax
+     * slopeMin slopeF coplanarMax timeDiffMax".
+     * @param cuts - The cut string.
+     */
+    public void setCuts(String cuts) {
+    	triggerModule.setCutValues(false, cuts);
+    }
 }

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SinglesTriggerDriver.java	Mon Mar 23 08:57:30 2015
@@ -22,8 +22,7 @@
  */
 public class SinglesTriggerDriver extends TriggerDriver {
     // Cut Values
-    private TriggerModule triggerModule = new TriggerModule(2.0, 0.125,
-    		6.600, 0.200, 6.600, 0.000, 13.200, 6.600, 0.0, 360, 0.0055);
+    private TriggerModule triggerModule = new TriggerModule();
     
     // LCIO Collection Names
     private String clusterCollectionName = "EcalClusters";
@@ -70,6 +69,9 @@
      */
     @Override
     protected boolean triggerDecision(EventHeader event) {
+    	// Track whether triggering cluster was seen.
+    	boolean passTrigger = false;
+    	
         // Check that there is a cluster object collection.
         if(event.hasCollection(Cluster.class, clusterCollectionName)) {
             // Get the list of hits.
@@ -93,6 +95,9 @@
                     continue triggerLoop;
                 }
                 
+                // A trigger was seen. Note it.
+                passTrigger = true;
+                
                 // Get the x and y indices.
                 int ix = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix");
                 int iy = cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy");
@@ -106,9 +111,8 @@
             }
         }
         
-        // If there were either no passing hits or not hits at all,
-        // then there is also no trigger.
-        return false;
+        // Return whether a triggering cluster was seen.
+        return passTrigger;
     }
     
     /**
@@ -163,4 +167,13 @@
     public void setClusterCollectionName(String clusterCollectionName) {
         this.clusterCollectionName = clusterCollectionName;
     }
+    
+    /**
+     * Sets all cut values for the trigger using a string argument with
+     * the format "Emin Emax Nmin".
+     * @param cuts - The cut string.
+     */
+    public void setCuts(String cuts) {
+    	triggerModule.setCutValues(true, cuts);
+    }
 }