Print

Print


Author: [log in to unmask]
Date: Tue Mar  3 15:51:03 2015
New Revision: 2234

Log:
Updated SSP trigger objects for the more generic trigger diagnostic handling.

Added:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPNumberedTrigger.java
Modified:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPPairTrigger.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPSinglesTrigger.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPTrigger.java

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java	Tue Mar  3 15:51:03 2015
@@ -38,6 +38,7 @@
     private final List<SSPCluster> clusterList = new ArrayList<SSPCluster>();
     private final List<SSPTrigger> triggerList = new ArrayList<SSPTrigger>();
     private final List<SSPPairTrigger> pairList = new ArrayList<SSPPairTrigger>();
+    private final List<SSPCosmicTrigger> cosmicList = new ArrayList<SSPCosmicTrigger>();
     private final List<SSPSinglesTrigger> singlesList = new ArrayList<SSPSinglesTrigger>();
     
     // Other SSP bank information.
@@ -100,6 +101,7 @@
                 SSPTrigger trigger = SSPTriggerFactory.makeTrigger(type, time * 4, data);
                 if(trigger instanceof SSPSinglesTrigger) { singlesList.add((SSPSinglesTrigger) trigger); }
                 else if(trigger instanceof SSPPairTrigger) { pairList.add((SSPPairTrigger) trigger); }
+                else if(trigger instanceof SSPCosmicTrigger) { cosmicList.add((SSPCosmicTrigger) trigger); }
                 triggerList.add(trigger);
             }
             
@@ -168,6 +170,15 @@
     }
     
     /**
+     * Gets the list of cosmic triggers reported by the SSP.
+     * @return Returns the triggers as a <code>List</code> collection
+     * of <code>SSPCosmicTrigger</code> objects.
+     */
+    public List<SSPCosmicTrigger> getCosmicTriggers() {
+    	return cosmicList;
+    }
+    
+    /**
      * Gets the list of pair triggers reported by the SSP.
      * @return Returns the triggers as a <code>List</code> collection
      * of <code>SSPPairTrigger</code> objects.
@@ -186,7 +197,12 @@
     }
     
     /**
-     * Gets the list of triggers reported by the SSP.
+     * Gets the list of triggers reported by the SSP.<br/>
+     * <br/>
+     * <b>Note:</b> This method is now deprecated. Singles triggers
+     * can be obtained with <code>getSinglesTriggers</code>, pair
+     * triggers with <code>getPairTriggers</code>, and cosmic triggers
+     * with <code>getCosmicTriggers</code>.
      * @return Returns the triggers as a <code>List</code> collection
      * of <code>SSPTrigger</code> objects. These can vary in which
      * subclass they are, as appropriate to their type code.

Added: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPNumberedTrigger.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPNumberedTrigger.java	(added)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPNumberedTrigger.java	Tue Mar  3 15:51:03 2015
@@ -0,0 +1,40 @@
+package org.hps.readout.ecal.triggerbank;
+
+/**
+ * Abstract class <code>SSPNumberedTrigger</code> is used as a base
+ * class for any trigger types where there is more than one trigger
+ * of that type in the SSP. It requires extending classes to support
+ * the ability to return which trigger created the object.
+ * 
+ * @author Kyle McCarty <[log in to unmask]>
+ * @see SSPTrigger
+ */
+public abstract class SSPNumberedTrigger extends SSPTrigger {
+	/**
+	 * Instantiates the <code>SSPNumberedTrigger</code>.
+     * @param type - The type of trigger.
+     * @param time - The time at which the trigger occurred in ns.
+     * @param data - The trigger bit data.
+	 */
+	public SSPNumberedTrigger(int type, int time, int data) {
+		super(type, time, data);
+	}
+	
+    /**
+     * Indicates whether the trigger was reported by the first of the
+     * singles triggers.
+     * @return <code>true</code> if the trigger was reported by the
+     * first trigger and <code>false</code> if it was reported by the
+     * second trigger.
+     */
+    public abstract boolean isFirstTrigger();
+    
+    /**
+     * Indicates whether the trigger was reported by the second of
+     * the singles triggers.
+     * @return <code>true</code> if the trigger was reported by the
+     * second trigger and <code>false</code> if it was reported by
+     * the first trigger.
+     */
+    public abstract boolean isSecondTrigger();
+}

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPPairTrigger.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPPairTrigger.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPPairTrigger.java	Tue Mar  3 15:51:03 2015
@@ -7,7 +7,7 @@
  * 
  * @author Kyle McCarty <[log in to unmask]>
  */
-public class SSPPairTrigger extends SSPTrigger {
+public class SSPPairTrigger extends SSPNumberedTrigger {
     /**
      * Instantiates a new <code>SSPPairTrigger</code>.
      * @param isFirstTrigger - Indicates whether the first or second
@@ -19,24 +19,12 @@
         super(isFirstTrigger ? SSPData.TRIG_TYPE_PAIR0 : SSPData.TRIG_TYPE_PAIR1, time, data);
     }
     
-    /**
-     * Indicates whether the trigger was reported by the first of the
-     * pair triggers.
-     * @return <code>true</code> if the trigger was reported by the
-     * first trigger and <code>false</code> if it was reported by the
-     * second trigger.
-     */
+    @Override
     public boolean isFirstTrigger() {
     	return (type == SSPData.TRIG_TYPE_PAIR0);
     }
     
-    /**
-     * Indicates whether the trigger was reported by the second of
-     * the pair triggers.
-     * @return <code>true</code> if the trigger was reported by the
-     * second trigger and <code>false</code> if it was reported by
-     * the first trigger.
-     */
+    @Override
     public boolean isSecondTrigger() {
     	return (type == SSPData.TRIG_TYPE_PAIR1);
     }
@@ -80,4 +68,12 @@
     public boolean passCutCoplanarity() {
         return ((data & 8) >> 3) == 1;
     }
+    
+    @Override
+    public String toString() {
+		return String.format("Trigger %d :: %3d ns :: ESum: %d, EDiff: %d, ESlope: %d, Coplanarity: %d",
+				isFirstTrigger() ? 1 : 2, getTime(), passCutEnergySum() ? 1 : 0,
+				passCutEnergyDifference() ? 1 : 0, passCutEnergySlope() ? 1 : 0,
+				passCutCoplanarity() ? 1 : 0);
+    }
 }

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPSinglesTrigger.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPSinglesTrigger.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPSinglesTrigger.java	Tue Mar  3 15:51:03 2015
@@ -7,7 +7,7 @@
  * 
  * @author Kyle McCarty <[log in to unmask]>
  */
-public class SSPSinglesTrigger extends SSPTrigger {
+public class SSPSinglesTrigger extends SSPNumberedTrigger {
     /**
      * Instantiates a new <code>SSPSinglesTrigger</code> object.
      * @param isTrigger0 - Indicates whether this is the first or second
@@ -36,24 +36,12 @@
         return (type == SSPData.TRIG_TYPE_SINGLES0_BOT) || (type == SSPData.TRIG_TYPE_SINGLES1_BOT);
     }
     
-    /**
-     * Indicates whether the trigger was reported by the first of the
-     * singles triggers.
-     * @return <code>true</code> if the trigger was reported by the
-     * first trigger and <code>false</code> if it was reported by the
-     * second trigger.
-     */
+    @Override
     public boolean isFirstTrigger() {
     	return (type == SSPData.TRIG_TYPE_SINGLES0_BOT) || (type == SSPData.TRIG_TYPE_SINGLES0_TOP);
     }
     
-    /**
-     * Indicates whether the trigger was reported by the second of
-     * the singles triggers.
-     * @return <code>true</code> if the trigger was reported by the
-     * second trigger and <code>false</code> if it was reported by
-     * the first trigger.
-     */
+    @Override
     public boolean isSecondTrigger() {
     	return (type == SSPData.TRIG_TYPE_SINGLES1_BOT) || (type == SSPData.TRIG_TYPE_SINGLES1_TOP);
     }
@@ -98,4 +86,11 @@
     public boolean passCutHitCount() {
         return ((data & 4) >> 2) == 1;
     }
+    
+    @Override
+    public String toString() {
+		return String.format("Trigger %d :: %3d ns :: EClusterLow: %d; EClusterHigh %d; HitCount: %d",
+				isFirstTrigger() ? 1 : 2, getTime(), passCutEnergyMin() ? 1 : 0,
+				passCutEnergyMax() ? 1 : 0, passCutHitCount() ? 1 : 0);
+    }
 }

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPTrigger.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPTrigger.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPTrigger.java	Tue Mar  3 15:51:03 2015
@@ -6,9 +6,9 @@
 import org.lcsim.util.log.LogUtil;
 
 /**
- * Abstract class <code>SSPTrigger</code> represents the data output
- * by the SSP for a trigger. Individual implementing classes are expected
- * to handle parsing the trigger bit data as appropriate for their type.
+ * Class <code>SSPTrigger</code> represents the data output by the SSP
+ * for a trigger. Individual implementing classes are expected to handle
+ * parsing the trigger bit data as appropriate for their type.
  * 
  * @author Kyle McCarty <[log in to unmask]>
  */