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); + } }