Commit in hps-java/src/main/java/org/lcsim/hps on MAIN | |||
monitoring/ecal/TriggerPlots.java | +1 | -1 | 1.5 -> 1.6 |
recon/tracking/apv25/HPSSiSensorReadout.java | +3 | -3 | 1.10 -> 1.11 |
/HPSAPV25.java | +2 | -2 | 1.7 -> 1.8 |
users/phansson/MultScatAnalysis.java | +1 | -1 | 1.5 -> 1.6 |
recon/ecal/HPSTriggerDriver.java | +25 | -3 | 1.13 -> 1.14 |
/HPSEcalReadoutDriver.java | +4 | -4 | 1.18 -> 1.19 |
/TestRunTriggerDriver.java | +26 | -2 | 1.3 -> 1.4 |
evio/TestRunTriggeredReconToLcio.java | -2 | 1.2 -> 1.3 | |
/TriggerData.java | +14 | -8 | 1.1 -> 1.2 |
+76 | -26 |
trigger makes trigger banks
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++) {
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
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]
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);
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) {
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;
} }
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; } }
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);
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
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