9 modified files
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
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
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
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
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
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
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
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
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
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