8 modified files
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/ClockDriver.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/ClockDriver.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -16,6 +16,7 @@
public void process(EventHeader event) {
ClockSingleton.step();
+ TriggerDriver.resetTrigger();
}
public void startOfData() {
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/EcalReadoutDriver.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/EcalReadoutDriver.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -94,12 +94,14 @@
public void process(EventHeader event) {
//System.out.println(this.getClass().getCanonicalName() + " - process");
// Get the list of ECal hits.
+ List<CalorimeterHit> hits;
if (event.hasCollection(CalorimeterHit.class, ecalCollectionName)) {
- List<CalorimeterHit> hits = event.get(CalorimeterHit.class, ecalCollectionName);
-
- //write hits into buffers
- putHits(hits);
+ hits = event.get(CalorimeterHit.class, ecalCollectionName);
+ } else {
+ hits = new ArrayList<CalorimeterHit>();
}
+ //write hits into buffers
+ putHits(hits);
ArrayList<T> newHits = null;
@@ -146,8 +148,8 @@
//initialize buffers
protected abstract void initReadout();
-
+
public int getTimestampType() {
return ReadoutTimestamp.SYSTEM_ECAL;
}
-}
\ No newline at end of file
+}
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/ReadoutTimestamp.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/ReadoutTimestamp.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -14,9 +14,10 @@
public class ReadoutTimestamp implements GenericObject {
public static final String collectionName = "ReadoutTimestamps";
- public static final int SYSTEM_TRIGGER = 0;
+ public static final int SYSTEM_TRIGGERBITS = 0;
public static final int SYSTEM_TRACKER = 1;
public static final int SYSTEM_ECAL = 2;
+ public static final int SYSTEM_TRIGGERTIME = 3;
private int system;
private double time;
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerDriver.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -13,10 +13,10 @@
import org.lcsim.lcio.LCIOWriter;
/**
- * Makes trigger decision and sends trigger to readout drivers.
- * Prints triggers to file if file path specified.
- * Writes trigger events to LCIO if file path specified.
- * To implement: extend this class and write your own triggerDecision().
+ * Makes trigger decision and sends trigger to readout drivers. Prints triggers
+ * to file if file path specified. Writes trigger events to LCIO if file path
+ * specified. To implement: extend this class and write your own
+ * triggerDecision().
*
* @author Sho Uemura <[log in to unmask]>
* @version $Id: TriggerDriver.java,v 1.7 2013/09/02 21:56:56 phansson Exp $
@@ -27,7 +27,7 @@
protected String outputFileName = null;
protected PrintWriter outputStream = null;
protected int numTriggers;
- private int lastTrigger = Integer.MIN_VALUE;
+ private static int lastTrigger = Integer.MIN_VALUE;
private int deadTime = 0;
private static boolean triggerBit = false;
private String lcioFile = null;
@@ -44,6 +44,7 @@
/**
* Set dead time; 0 for no dead time
+ *
* @param deadTime Minimum number of clock ticks between triggers
*/
public void setDeadTime(int deadTime) {
@@ -56,7 +57,7 @@
@Override
public void startOfData() {
- addTriggerable(this);
+// addTriggerable(this);
if (outputFileName != null) {
try {
@@ -83,10 +84,11 @@
@Override
public void process(EventHeader event) {
- triggerBit = false; //reset trigger
+// triggerBit = false; //reset trigger
//System.out.println(this.getClass().getCanonicalName() + " - process");
if ((lastTrigger == Integer.MIN_VALUE || ClockSingleton.getClock() - lastTrigger > deadTime) && triggerDecision(event)) {
sendTrigger();
+ this.addTrigger();
for (TriggerableDriver triggerable : triggerables) {
ReadoutTimestamp.addTimestamp(triggerable, event);
}
@@ -175,11 +177,16 @@
System.out.printf(this.getClass().getSimpleName() + ": Trigger count: %d\n", numTriggers);
}
+ @Deprecated
public static boolean triggerBit() {
return triggerBit;
}
-
+
+ public static void resetTrigger() {
+ triggerBit = false;
+ }
+
public int getTimestampType() {
- return ReadoutTimestamp.SYSTEM_TRIGGER;
+ return ReadoutTimestamp.SYSTEM_TRIGGERBITS;
}
-}
\ No newline at end of file
+}
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerableDriver.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerableDriver.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -31,14 +31,14 @@
}
@Override
- public void startOfData() {
+ protected void startOfData() {
TriggerDriver.addTriggerable(this);
}
protected abstract void processTrigger(EventHeader event);
protected void checkTrigger(EventHeader event) {
- if (triggerTimestamps.peek() != null && ClockSingleton.getTime() >= triggerTimestamps.peek()) {
+ while (triggerTimestamps.peek() != null && ClockSingleton.getTime() >= triggerTimestamps.peek()) {
processTrigger(event);
triggerTimestamps.remove();
}
java/trunk/evio/src/main/java/org/hps/evio
--- java/trunk/evio/src/main/java/org/hps/evio/TestRunTriggeredReconToEvio.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/evio/src/main/java/org/hps/evio/TestRunTriggeredReconToEvio.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -5,10 +5,11 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
-
import org.hps.conditions.deprecated.CalibrationDriver;
import org.hps.conditions.deprecated.EcalConditions;
+import org.hps.readout.ecal.ReadoutTimestamp;
import org.hps.readout.ecal.TriggerDriver;
+import org.hps.readout.ecal.TriggerableDriver;
import org.jlab.coda.jevio.DataType;
import org.jlab.coda.jevio.EventBuilder;
import org.jlab.coda.jevio.EventWriter;
@@ -24,7 +25,7 @@
*
* @author Jeremy McCormick <[log in to unmask]>
*/
-public class TestRunTriggeredReconToEvio extends Driver {
+public class TestRunTriggeredReconToEvio extends TriggerableDriver {
EventWriter writer;
String rawCalorimeterHitCollectionName = "EcalReadoutHits";
@@ -40,6 +41,7 @@
private int ecalMode = EventConstants.ECAL_PULSE_INTEGRAL_MODE;
public TestRunTriggeredReconToEvio() {
+ setTriggerDelay(0);
}
public void setEcalMode(int ecalMode) {
@@ -65,6 +67,7 @@
@Override
protected void startOfData() {
+ super.startOfData();
try {
writer = new EventWriter(evioOutputFile);
} catch (EvioException e) {
@@ -92,30 +95,13 @@
@Override
protected void endOfData() {
System.out.println(this.getClass().getSimpleName() + " - wrote " + eventsWritten + " EVIO events in job; " + builderQueue.size() + " incomplete events in queue.");
- writer.close();
+ writer.close();
}
@Override
protected void process(EventHeader event) {
- if (TriggerDriver.triggerBit()) {
- // Make a new EVIO event.
- EventBuilder builder = new EventBuilder(EventConstants.PHYSICS_EVENT_TAG, DataType.BANK, EventConstants.EVENT_BANK_NUM);
- builderQueue.add(new QueuedEtEvent(builder, writers.size(), eventNum));
- EvioBank eventIDBank = new EvioBank(EventConstants.EVENTID_BANK_TAG, DataType.UINT32, 0);
- int[] eventID = new int[3];
- eventID[0] = event.getEventNumber();
- eventID[1] = 1; //trigger type
- eventID[2] = 0; //status
+ checkTrigger(event);
- eventNum++;
- try {
- eventIDBank.appendIntData(eventID);
- builder.addChild(builder.getEvent(), eventIDBank);
- } catch (EvioException e) {
- throw new RuntimeException(e);
- }
- }
-
for (int i = 0; i < writers.size(); i++) {
HitWriter evioWriter = writers.get(i);
if (evioWriter.hasData(event)) {
@@ -181,6 +167,31 @@
}
}
+ @Override
+ protected void processTrigger(EventHeader event) {
+ // Make a new EVIO event.
+ EventBuilder builder = new EventBuilder(EventConstants.PHYSICS_EVENT_TAG, DataType.BANK, EventConstants.EVENT_BANK_NUM);
+ builderQueue.add(new QueuedEtEvent(builder, writers.size(), eventNum));
+ EvioBank eventIDBank = new EvioBank(EventConstants.EVENTID_BANK_TAG, DataType.UINT32, 0);
+ int[] eventID = new int[3];
+ eventID[0] = event.getEventNumber();
+ eventID[1] = 1; //trigger type
+ eventID[2] = 0; //status
+
+ eventNum++;
+ try {
+ eventIDBank.appendIntData(eventID);
+ builder.addChild(builder.getEvent(), eventIDBank);
+ } catch (EvioException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public int getTimestampType() {
+ return ReadoutTimestamp.SYSTEM_TRIGGERTIME;
+ }
+
private class QueuedEtEvent {
private EventBuilder builder;
@@ -220,4 +231,4 @@
return true;
}
}
-}
\ No newline at end of file
+}
java/trunk/evio/src/main/java/org/hps/evio
--- java/trunk/evio/src/main/java/org/hps/evio/TestRunTriggeredReconToLcio.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/evio/src/main/java/org/hps/evio/TestRunTriggeredReconToLcio.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -1,20 +1,18 @@
package org.hps.evio;
import hep.physics.event.generator.MCEvent;
-
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
-
import org.hps.conditions.deprecated.CalibrationDriver;
import org.hps.conditions.deprecated.QuietBaseLCSimEvent;
import org.hps.readout.ecal.ClockSingleton;
import org.hps.readout.ecal.ReadoutTimestamp;
import org.hps.readout.ecal.TriggerDriver;
-
+import org.hps.readout.ecal.TriggerableDriver;
import org.lcsim.event.EventHeader;
import org.lcsim.event.LCRelation;
import org.lcsim.event.MCParticle;
@@ -29,9 +27,10 @@
* the test run.
*
* @author Jeremy McCormick <[log in to unmask]>
- * @version $Id:$
+ * @version $Id: TestRunTriggeredReconToLcio.java 779 2014-07-16 16:24:34Z
+ * omoreno $
*/
-public class TestRunTriggeredReconToLcio extends Driver {
+public class TestRunTriggeredReconToLcio extends TriggerableDriver {
String rawCalorimeterHitCollectionName = "EcalReadoutHits";
String outputFile = "TestRunData.slcio";
@@ -61,9 +60,9 @@
static final String trackerCollectionName = "TrackerHits";
private String relationCollectionName = "SVTTrueHitRelations";
String ecalScoringPlaneHitsCollectionName = "TrackerHitsECal";
-
-
+
public TestRunTriggeredReconToLcio() {
+ setTriggerDelay(0);
}
public void setEcalMode(int ecalMode) {
@@ -97,6 +96,7 @@
@Override
protected void startOfData() {
+ super.startOfData();
writers = new ArrayList<HitWriter>();
ecalWriter = new ECalHitWriter();
@@ -134,54 +134,28 @@
mcParticles = event.getMCParticles();
ecalHits = event.getSimCalorimeterHits(ecalCollectionName);
trackerHits = event.getSimTrackerHits(trackerCollectionName);
- if(event.hasCollection(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName)){
- ecalScoringPlaneHits = event.get(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName);
- }
+ if (event.hasCollection(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName)) {
+ ecalScoringPlaneHits = event.get(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName);
+ }
}
if (ClockSingleton.getClock() % triggerSpacing == 0) {
if (event.hasCollection(MCParticle.class)) {
triggerMCParticles = event.getMCParticles();
triggerECalHits = event.getSimCalorimeterHits(ecalCollectionName);
triggerTrackerHits = event.getSimTrackerHits(trackerCollectionName);
- if(event.hasCollection(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName)){
- triggerECalScoringPlaneHits = event.get(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName);
+ if (event.hasCollection(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName)) {
+ triggerECalScoringPlaneHits = event.get(SimTrackerHit.class, ecalScoringPlaneHitsCollectionName);
}
} else {
triggerMCParticles = null;
triggerECalHits = null;
triggerTrackerHits = null;
- triggerECalScoringPlaneHits = null;
+ triggerECalScoringPlaneHits = null;
}
}
+ checkTrigger(event);
- if (TriggerDriver.triggerBit()) {
- EventHeader lcsimEvent = new QuietBaseLCSimEvent(CalibrationDriver.runNumber(), event.getEventNumber(), event.getDetectorName());
- events.add(lcsimEvent);
- System.out.println("Creating LCIO event " + eventNum);
- if (triggerMCParticles == null || triggerMCParticles.isEmpty()) {
- lcsimEvent.put(MCEvent.MC_PARTICLES, mcParticles);
- lcsimEvent.put(ecalCollectionName, ecalHits, SimCalorimeterHit.class, 0xe0000000);
- lcsimEvent.put(trackerCollectionName, trackerHits, SimTrackerHit.class, 0xc0000000);
- System.out.println("Adding " + mcParticles.size() + " MCParticles, " + ecalHits.size() + " SimCalorimeterHits, " + trackerHits.size() + " SimTrackerHits");
- if(ecalScoringPlaneHits != null){
- lcsimEvent.put(ecalScoringPlaneHitsCollectionName, ecalScoringPlaneHits, SimTrackerHit.class, 0);
- System.out.println("Adding " + ecalScoringPlaneHits.size() + " ECalTrackerHits");
- }
- } else {
- lcsimEvent.put(MCEvent.MC_PARTICLES, triggerMCParticles);
- lcsimEvent.put(ecalCollectionName, triggerECalHits, SimCalorimeterHit.class, 0xe0000000);
- lcsimEvent.put(trackerCollectionName, triggerTrackerHits, SimTrackerHit.class, 0xc0000000);
- System.out.println("Adding " + triggerMCParticles.size() + " MCParticles, " + triggerECalHits.size() + " SimCalorimeterHits, " + triggerTrackerHits.size() + " SimTrackerHits");
- if(triggerECalScoringPlaneHits != null){
- lcsimEvent.put(ecalScoringPlaneHitsCollectionName, triggerECalScoringPlaneHits, SimTrackerHit.class, 0);
- System.out.println("Adding " + triggerECalScoringPlaneHits.size() + " ECalTrackerHits");
- }
- }
- lcsimEvent.put(ReadoutTimestamp.collectionName, event.get(ReadoutTimestamp.class, ReadoutTimestamp.collectionName));
- ++eventNum;
- }
-
writerLoop:
for (HitWriter hitWriter : writers) {
if (hitWriter.hasData(event)) {
@@ -236,4 +210,37 @@
}
}
}
-}
\ No newline at end of file
+
+ @Override
+ protected void processTrigger(EventHeader event) {
+ EventHeader lcsimEvent = new QuietBaseLCSimEvent(CalibrationDriver.runNumber(), event.getEventNumber(), event.getDetectorName());
+ events.add(lcsimEvent);
+ System.out.println("Creating LCIO event " + eventNum);
+ if (triggerMCParticles == null || triggerMCParticles.isEmpty()) {
+ lcsimEvent.put(MCEvent.MC_PARTICLES, mcParticles);
+ lcsimEvent.put(ecalCollectionName, ecalHits, SimCalorimeterHit.class, 0xe0000000);
+ lcsimEvent.put(trackerCollectionName, trackerHits, SimTrackerHit.class, 0xc0000000);
+ System.out.println("Adding " + mcParticles.size() + " MCParticles, " + ecalHits.size() + " SimCalorimeterHits, " + trackerHits.size() + " SimTrackerHits");
+ if (ecalScoringPlaneHits != null) {
+ lcsimEvent.put(ecalScoringPlaneHitsCollectionName, ecalScoringPlaneHits, SimTrackerHit.class, 0);
+ System.out.println("Adding " + ecalScoringPlaneHits.size() + " ECalTrackerHits");
+ }
+ } else {
+ lcsimEvent.put(MCEvent.MC_PARTICLES, triggerMCParticles);
+ lcsimEvent.put(ecalCollectionName, triggerECalHits, SimCalorimeterHit.class, 0xe0000000);
+ lcsimEvent.put(trackerCollectionName, triggerTrackerHits, SimTrackerHit.class, 0xc0000000);
+ System.out.println("Adding " + triggerMCParticles.size() + " MCParticles, " + triggerECalHits.size() + " SimCalorimeterHits, " + triggerTrackerHits.size() + " SimTrackerHits");
+ if (triggerECalScoringPlaneHits != null) {
+ lcsimEvent.put(ecalScoringPlaneHitsCollectionName, triggerECalScoringPlaneHits, SimTrackerHit.class, 0);
+ System.out.println("Adding " + triggerECalScoringPlaneHits.size() + " ECalTrackerHits");
+ }
+ }
+ lcsimEvent.put(ReadoutTimestamp.collectionName, event.get(ReadoutTimestamp.class, ReadoutTimestamp.collectionName));
+ ++eventNum;
+ }
+
+ @Override
+ public int getTimestampType() {
+ return ReadoutTimestamp.SYSTEM_TRIGGERTIME;
+ }
+}
java/trunk/tracking/src/main/java/org/hps/recon/tracking
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java 2014-08-06 01:10:51 UTC (rev 836)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java 2014-08-06 02:21:42 UTC (rev 837)
@@ -113,7 +113,7 @@
}
if (useTimestamps) {
double t0Svt = ReadoutTimestamp.getTimestamp(ReadoutTimestamp.SYSTEM_TRACKER, event);
- double t0Trig = ReadoutTimestamp.getTimestamp(ReadoutTimestamp.SYSTEM_TRIGGER, event);
+ double t0Trig = ReadoutTimestamp.getTimestamp(ReadoutTimestamp.SYSTEM_TRIGGERBITS, event);
double corMod = (t0Svt - t0Trig) + 200.0;
fit.setT0(fit.getT0() + corMod);
}
SVNspam 0.1