Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps on MAIN
monitoring/ecal/TriggerPlots.java+1-11.5 -> 1.6
recon/tracking/apv25/HPSSiSensorReadout.java+3-31.10 -> 1.11
                    /HPSAPV25.java+2-21.7 -> 1.8
users/phansson/MultScatAnalysis.java+1-11.5 -> 1.6
recon/ecal/HPSTriggerDriver.java+25-31.13 -> 1.14
          /HPSEcalReadoutDriver.java+4-41.18 -> 1.19
          /TestRunTriggerDriver.java+26-21.3 -> 1.4
evio/TestRunTriggeredReconToLcio.java-21.2 -> 1.3
    /TriggerData.java+14-81.1 -> 1.2
+76-26
9 modified files
trigger makes trigger banks

hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
TriggerPlots.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- TriggerPlots.java	1 Aug 2012 23:32:46 -0000	1.5
+++ TriggerPlots.java	3 Aug 2012 00:05:26 -0000	1.6
@@ -217,7 +217,7 @@
             if (!triggerList.isEmpty()) {
                 TriggerData triggerData = triggerList.get(0);
 
-                pairTrig = triggerData.getPairTrig();
+                pairTrig = triggerData.getAndTrig();
                 orTrig = triggerData.getOrTrig();
                 if (orTrig != 0) {
                     for (int i = 0; i < 32; i++) {

hps-java/src/main/java/org/lcsim/hps/recon/tracking/apv25
HPSSiSensorReadout.java 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- HPSSiSensorReadout.java	21 Jun 2012 23:36:57 -0000	1.10
+++ HPSSiSensorReadout.java	3 Aug 2012 00:05:26 -0000	1.11
@@ -48,7 +48,7 @@
  * Class used to Readout HPS APV25's
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSSiSensorReadout.java,v 1.10 2012/06/21 23:36:57 meeg Exp $
+ * @version $Id: HPSSiSensorReadout.java,v 1.11 2012/08/03 00:05:26 meeg Exp $
  */
 public class HPSSiSensorReadout extends Driver {
 
@@ -204,7 +204,7 @@
         }
 
         // If a trigger is received readout the APV25 and digitize all hits
-        if (HPSAPV25.triggerBit) {
+        if (HPSAPV25.readoutBit) {
 
             triggerTimeStamp.add(ClockSingleton.getTime());
 
@@ -218,7 +218,7 @@
                 }
             }
             // Reset the APV25 trigger bit
-            HPSAPV25.triggerBit = false;
+            HPSAPV25.readoutBit = false;
         }
 
         // Process any triggers in the queue

hps-java/src/main/java/org/lcsim/hps/recon/tracking/apv25
HPSAPV25.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- HPSAPV25.java	29 Jun 2012 23:00:48 -0000	1.7
+++ HPSAPV25.java	3 Aug 2012 00:05:26 -0000	1.8
@@ -15,7 +15,7 @@
 /**
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSAPV25.java,v 1.7 2012/06/29 23:00:48 meeg Exp $
+ * @version $Id: HPSAPV25.java,v 1.8 2012/08/03 00:05:26 meeg Exp $
  */
 public class HPSAPV25 {
 
@@ -36,7 +36,7 @@
 	private static final int APV25_CHANNELS = 128;
 	
 	// APV25 trigger bit
-	public static boolean triggerBit = false;
+	public static boolean readoutBit = false;
 	
 	// 
 	private int apv25ShapingTime = 35; // [ns] 

hps-java/src/main/java/org/lcsim/hps/users/phansson
MultScatAnalysis.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- MultScatAnalysis.java	12 Jul 2012 21:32:39 -0000	1.5
+++ MultScatAnalysis.java	3 Aug 2012 00:05:26 -0000	1.6
@@ -2293,7 +2293,7 @@
                 int orTrig = triggerData.getOrTrig();
                 int topTrig = triggerData.getTopTrig();
                 int botTrig = triggerData.getBotTrig();
-                int andTrig = triggerData.getPairTrig();
+                int andTrig = triggerData.getAndTrig();
                 //if(debug) System.out.println("top " + topTrig + " bottom " + botTrig + " or " + orTrig);
                 if(topTrig>0) {
                     aida.histogram1D("trigger_count").fill(1);

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSTriggerDriver.java 1.13 -> 1.14
diff -u -r1.13 -r1.14
--- HPSTriggerDriver.java	2 Aug 2012 20:32:15 -0000	1.13
+++ HPSTriggerDriver.java	3 Aug 2012 00:05:26 -0000	1.14
@@ -21,7 +21,7 @@
  * Applies SVT trigger latency and sends trigger signal to SVT
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSTriggerDriver.java,v 1.13 2012/08/02 20:32:15 meeg Exp $
+ * @version $Id: HPSTriggerDriver.java,v 1.14 2012/08/03 00:05:26 meeg Exp $
  */
 public abstract class HPSTriggerDriver extends Driver {
 
@@ -42,6 +42,10 @@
     private Queue<Double> ecalTriggerTimestamps = null;
     // ECal trigger latency
     private static final double ecalTriggerLatency = 100.0; // [ns]
+    // FIFO queue to store the trigger bank trigger time stamp 
+    private Queue<Double> triggerTriggerTimestamps = null;
+    // trigger bank trigger latency
+    public static final double triggerTriggerLatency = 50.0; // [ns]
     private static boolean triggerBit = false;
 
     public HPSTriggerDriver() {
@@ -88,6 +92,7 @@
         numTriggers = 0;
 
         ecalTriggerTimestamps = new LinkedList<Double>();
+        triggerTriggerTimestamps = new LinkedList<Double>();
     }
 
     @Override
@@ -119,6 +124,7 @@
                 svtTriggerTimeStamp.offer(
                         ClockSingleton.getTime() + svtTriggerLatency);
                 ecalTriggerTimestamps.add(ClockSingleton.getTime() + ecalTriggerLatency);
+                triggerTriggerTimestamps.add(ClockSingleton.getTime() + triggerTriggerLatency);
                 System.out.println("Trigger added");
 
                 if (outputStream != null) {
@@ -140,7 +146,7 @@
             }
 
             // Send a trigger signal to the SVT
-            HPSAPV25.triggerBit = true;
+            HPSAPV25.readoutBit = true;
             svtTriggerTimeStamp.remove();
         }
 
@@ -153,9 +159,22 @@
             }
 
             // Send a trigger signal to the ECal
-            HPSEcalReadoutDriver.triggerBit = true;
+            HPSEcalReadoutDriver.readoutBit = true;
             ecalTriggerTimestamps.remove();
         }
+
+        // Check if there are any pending trigger bank triggers to process
+        if (triggerTriggerTimestamps.peek() != null
+                && ClockSingleton.getTime() >= triggerTriggerTimestamps.peek()) {
+
+            if (outputStream != null) {
+                outputStream.printf("Trigger bank trigger sent on event %d\n", event.getEventNumber());
+            }
+
+            // Make trigger bank
+            makeTriggerData(event);
+            triggerTriggerTimestamps.remove();
+        }
     }
 
     protected boolean triggerDecision(EventHeader event) {
@@ -169,6 +188,9 @@
 
     public abstract boolean testTrigger(List<HPSEcalCluster> clusters);
 
+    protected void makeTriggerData(EventHeader event) {
+    }
+
     @Override
     public void endOfData() {
         if (outputStream != null) {

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSEcalReadoutDriver.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- HPSEcalReadoutDriver.java	2 Aug 2012 20:32:15 -0000	1.18
+++ HPSEcalReadoutDriver.java	3 Aug 2012 00:05:26 -0000	1.19
@@ -15,7 +15,7 @@
  * Performs readout of ECal hits.
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalReadoutDriver.java,v 1.18 2012/08/02 20:32:15 meeg Exp $
+ * @version $Id: HPSEcalReadoutDriver.java,v 1.19 2012/08/03 00:05:26 meeg Exp $
  */
 public abstract class HPSEcalReadoutDriver<T> extends Driver {
 
@@ -39,7 +39,7 @@
     double readoutOffset = 0.0;
     //readout period counter
     int readoutCounter;
-    public static boolean triggerBit = false;
+    public static boolean readoutBit = false;
 
     public HPSEcalReadoutDriver() {
         flags += 1 << LCIOConstants.CHBIT_LONG; //store position
@@ -137,9 +137,9 @@
             event.put(ecalRawCollectionName, newHits, hitClass, flags, ecalReadoutName);
         }
 
-        if (triggerBit) {
+        if (readoutBit) {
             processTrigger(event);
-            triggerBit = false;
+            readoutBit = false;
         }
     }
 

hps-java/src/main/java/org/lcsim/hps/recon/ecal
TestRunTriggerDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TestRunTriggerDriver.java	2 Aug 2012 20:32:15 -0000	1.3
+++ TestRunTriggerDriver.java	3 Aug 2012 00:05:26 -0000	1.4
@@ -1,8 +1,10 @@
 package org.lcsim.hps.recon.ecal;
 
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 import org.lcsim.event.EventHeader;
+import org.lcsim.hps.evio.TriggerData;
 
 /**
  * Reads clusters and makes trigger decision using opposite quadrant criterion.
@@ -10,7 +12,7 @@
  *
  * @author Omar Moreno <[log in to unmask]>
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: TestRunTriggerDriver.java,v 1.3 2012/08/02 20:32:15 meeg Exp $
+ * @version $Id: TestRunTriggerDriver.java,v 1.4 2012/08/03 00:05:26 meeg Exp $
  */
 public class TestRunTriggerDriver extends HPSTriggerDriver {
 
@@ -20,12 +22,26 @@
     int totalEvents;
     private double clusterEnergyLow = 10;    //
     int deadtimelessTriggerCount;
+    private int topBits = 0, botBits = 0;
 
     public TestRunTriggerDriver() {
         clusterPairs = new LinkedList<HPSEcalCluster[]>();
     }
 
     @Override
+    protected void makeTriggerData(EventHeader event) {
+        int[] trigArray = new int[8];
+        trigArray[TriggerData.TOP_TRIG] = topBits;
+        trigArray[TriggerData.BOT_TRIG] = botBits;
+        trigArray[TriggerData.AND_TRIG] = topBits & botBits;
+        trigArray[TriggerData.OR_TRIG] = topBits | botBits;
+        TriggerData tData = new TriggerData(trigArray);
+        List<TriggerData> triggerList = new ArrayList<TriggerData>();
+        triggerList.add(tData);
+        event.put("TriggerBank", triggerList, TriggerData.class, 0);
+    }
+
+    @Override
     public void startOfData() {
         super.startOfData();
 
@@ -36,7 +52,8 @@
     protected boolean triggerDecision(EventHeader event) {
         // Get the list of raw ECal hits.
         if (event.hasCollection(HPSEcalCluster.class, clusterCollectionName)) {
-            return testTrigger(event.get(HPSEcalCluster.class, clusterCollectionName));
+            boolean trigger = testTrigger(event.get(HPSEcalCluster.class, clusterCollectionName));
+            return trigger;
         } else {
             return false;
         }
@@ -46,8 +63,15 @@
     public boolean testTrigger(List<HPSEcalCluster> clusters) {
         boolean trigger = false;
 
+        topBits <<= 1;
+        botBits <<= 1;
         for (HPSEcalCluster cluster : clusters) {
             if (cluster.getEnergy() > clusterEnergyLow) {
+                if (cluster.getPosition()[1] > 0) {
+                    topBits |= 1;
+                } else {
+                    botBits |= 1;
+                }
                 trigger = true;
             }
         }

hps-java/src/main/java/org/lcsim/hps/evio
TestRunTriggeredReconToLcio.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- TestRunTriggeredReconToLcio.java	31 Jul 2012 21:59:41 -0000	1.2
+++ TestRunTriggeredReconToLcio.java	3 Aug 2012 00:05:26 -0000	1.3
@@ -95,8 +95,6 @@
         }
 
         if (HPSTriggerDriver.triggerBit()) {
-            System.out.println(ClockSingleton.getClock());
-
             EventHeader lcsimEvent = new BaseLCSimEvent(0, eventsWritten, event.getDetectorName());
             events.add(lcsimEvent);
             System.out.println("Creating LCIO event " + eventsWritten);

hps-java/src/main/java/org/lcsim/hps/evio
TriggerData.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- TriggerData.java	29 May 2012 22:25:10 -0000	1.1
+++ TriggerData.java	3 Aug 2012 00:05:26 -0000	1.2
@@ -5,9 +5,15 @@
 /**
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: TriggerData.java,v 1.1 2012/05/29 22:25:10 meeg Exp $
+ * @version $Id: TriggerData.java,v 1.2 2012/08/03 00:05:26 meeg Exp $
  */
 public class TriggerData implements GenericObject {
+    public static final int OR_TRIG = 3;
+    public static final int TOP_TRIG = 4;
+    public static final int BOT_TRIG = 5;
+    public static final int AND_TRIG = 6;
+    public static final int TIME = 7;
+    public static final int TRIG_BANK_SIZE = 8;
 
     private int[] bank;
 
@@ -16,28 +22,28 @@
     }
 
     public int getTime() {
-        return getIntVal(7);
+        return getIntVal(TIME);
     }
 
     public int getOrTrig() {
-        return getIntVal(3);
+        return getIntVal(OR_TRIG);
     }
 
     public int getTopTrig() {
-        return getIntVal(4);
+        return getIntVal(TOP_TRIG);
     }
 
     public int getBotTrig() {
-        return getIntVal(5);
+        return getIntVal(BOT_TRIG);
     }
 
-    public int getPairTrig() {
-        return getIntVal(6);
+    public int getAndTrig() {
+        return getIntVal(AND_TRIG);
     }
 
     @Override
     public int getNInt() {
-        return 8;
+        return TRIG_BANK_SIZE;
     }
 
     @Override
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