Commit in hps-java/src/main on MAIN | |||
java/org/lcsim/hps/evio/TriggerDataWriter.java | +59 | added 1.1 | |
/TestRunTriggeredReconToLcio.java | +4 | 1.3 -> 1.4 | |
/LCSimTestRunEventBuilder.java | +8 | -4 | 1.18 -> 1.19 |
/BasicEvioFileReader.java | +1 | -1 | 1.9 -> 1.10 |
/TestRunTriggeredReconToEvio.java | +4 | 1.14 -> 1.15 | |
/EventConstants.java | +2 | -1 | 1.13 -> 1.14 |
/TriggerData.java | +6 | -1 | 1.2 -> 1.3 |
resources/org/lcsim/hps/steering/HPSTestRunReconToLcio.lcsim | -4 | 1.1 -> 1.2 | |
/HPSTestRunReconToEvio.lcsim | -4 | 1.8 -> 1.9 | |
+84 | -15 |
write trigger bank to EVIO
diff -N TriggerDataWriter.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ TriggerDataWriter.java 3 Aug 2012 23:14:39 -0000 1.1 @@ -0,0 +1,59 @@
+package org.lcsim.hps.evio; + +import java.util.List; +import org.jlab.coda.jevio.BaseStructure; +import org.jlab.coda.jevio.DataType; +import org.jlab.coda.jevio.EventBuilder; +import org.jlab.coda.jevio.EvioBank; +import org.jlab.coda.jevio.EvioException; +import org.lcsim.event.EventHeader; + +/** + * + * @author Sho Uemura <[log in to unmask]> + * @version $Id: TriggerDataWriter.java,v 1.1 2012/08/03 23:14:39 meeg Exp $ + */ +public class TriggerDataWriter implements HitWriter { + + @Override + public boolean hasData(EventHeader event) { + return event.hasCollection(TriggerData.class, TriggerData.TRIG_COLLECTION); + } + + @Override + public void writeData(EventHeader event, EventBuilder builder) { + // Make a new bank for this crate. + BaseStructure topBank = null; + // Does this bank already exist? + for (BaseStructure bank : builder.getEvent().getChildren()) { + if (bank.getHeader().getTag() == EventConstants.ECAL_TOP_BANK_TAG) { + topBank = bank; + break; + } + } + // If they don't exist, make them. + if (topBank == null) { + topBank = new EvioBank(EventConstants.ECAL_TOP_BANK_TAG, DataType.BANK, EventConstants.ECAL_BANK_NUMBER); + try { + builder.addChild(builder.getEvent(), topBank); + } catch (EvioException e) { + throw new RuntimeException(e); + } + } + + + List<TriggerData> triggerList = event.get(TriggerData.class, TriggerData.TRIG_COLLECTION); + EvioBank triggerBank = new EvioBank(EventConstants.TRIGGER_BANK_TAG, DataType.UINT32, EventConstants.TRIGGER_BANK_NUMBER); + try { + triggerBank.appendIntData(triggerList.get(0).getBank()); + builder.addChild(topBank, triggerBank); + } catch (EvioException e) { + throw new RuntimeException(e); + } + } + + @Override + public void writeData(EventHeader event, EventHeader toEvent) { + toEvent.put(TriggerData.TRIG_COLLECTION, event.get(TriggerData.class, TriggerData.TRIG_COLLECTION)); + } +}
diff -u -r1.3 -r1.4 --- TestRunTriggeredReconToLcio.java 3 Aug 2012 00:05:26 -0000 1.3 +++ TestRunTriggeredReconToLcio.java 3 Aug 2012 23:14:39 -0000 1.4 @@ -31,6 +31,7 @@
// HPSEcalConditions ecalIDConverter = null; ECalHitWriter ecalWriter = null; SVTHitWriter svtWriter = null;
+ TriggerDataWriter triggerWriter = null;
List<HitWriter> writers = null; LCIOWriter lcioWriter = null; Queue<EventHeader> events = null;
@@ -72,6 +73,9 @@
svtWriter = new SVTHitWriter(); writers.add(svtWriter);
+ triggerWriter = new TriggerDataWriter(); + writers.add(triggerWriter); +
try { lcioWriter = new LCIOWriter(new File(outputFile)); } catch (IOException e) {
diff -u -r1.18 -r1.19 --- LCSimTestRunEventBuilder.java 31 May 2012 00:28:18 -0000 1.18 +++ LCSimTestRunEventBuilder.java 3 Aug 2012 23:14:39 -0000 1.19 @@ -62,7 +62,6 @@
// public void setEcalName(String ecalName) { // ecalReader.setEcalName(ecalName); // }
-
// public Detector getDetector() { // return detector; // }
@@ -108,9 +107,11 @@
eventID = bank.getIntData(); } if (bank.getHeader().getTag() == EventConstants.ECAL_TOP_BANK_TAG || bank.getHeader().getTag() == EventConstants.ECAL_BOTTOM_BANK_TAG) {
- for (BaseStructure slotBank : bank.getChildren()) { - if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) { - triggerList.add(new TriggerData(slotBank.getIntData()));
+ if (bank.getChildCount() > 0) { + for (BaseStructure slotBank : bank.getChildren()) { + if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) { + triggerList.add(new TriggerData(slotBank.getIntData())); + }
} } }
@@ -132,6 +133,9 @@
} }
+ if (triggerList.isEmpty()) { + System.out.println("No trigger bank found"); + }
// Create a new LCSimEvent. EventHeader lcsimEvent = null; if (triggerList.isEmpty() || triggerList.get(0).getTime() == 0) {
diff -u -r1.9 -r1.10 --- BasicEvioFileReader.java 16 May 2012 15:59:08 -0000 1.9 +++ BasicEvioFileReader.java 3 Aug 2012 23:14:39 -0000 1.10 @@ -48,7 +48,7 @@
private static void printBank(BaseStructure bank, String indent) throws EvioException { System.out.println(indent + "Bank contains " + bank.getTotalBytes() + " bytes."); System.out.println(indent + "Bank has " + bank.getChildCount() + " sub-banks.");
- System.out.format(indent + "Bank tag: 0x%x length: %d type: %s\n", bank.getHeader().getTag(), bank.getHeader().getLength(), bank.getHeader().getDataType());
+ System.out.format(indent + "Bank tag: 0x%x length: %d type: %s num: %d\n", bank.getHeader().getTag(), bank.getHeader().getLength(), bank.getHeader().getDataType(), bank.getHeader().getNumber());
if (bank.getChildCount() > 0) { for (BaseStructure child : bank.getChildren()) { printBank(child, indent + "\t");
diff -u -r1.14 -r1.15 --- TestRunTriggeredReconToEvio.java 30 Jul 2012 23:31:45 -0000 1.14 +++ TestRunTriggeredReconToEvio.java 3 Aug 2012 23:14:39 -0000 1.15 @@ -29,6 +29,7 @@
HPSEcalConditions ecalIDConverter = null; ECalHitWriter ecalWriter = null; SVTHitWriter svtWriter = null;
+ TriggerDataWriter triggerWriter = null;
List<HitWriter> writers = null; private int ecalMode = EventConstants.ECAL_PULSE_INTEGRAL_MODE;
@@ -74,6 +75,9 @@
svtWriter = new SVTHitWriter(); writers.add(svtWriter);
+ + triggerWriter = new TriggerDataWriter(); + writers.add(triggerWriter);
builderQueue = new LinkedList<QueuedEtEvent>(); }
diff -u -r1.13 -r1.14 --- EventConstants.java 3 Aug 2012 21:37:12 -0000 1.13 +++ EventConstants.java 3 Aug 2012 23:14:39 -0000 1.14 @@ -21,7 +21,8 @@
// These values are put into the number field of the banks. // FIXME Bank numbers should actually be sequentially numbered and not hard-coded. public static final int SVT_BANK_NUMBER = 1;
- public static final int ECAL_BANK_NUMBER = 2;
+ public static final int ECAL_BANK_NUMBER = 1;
+ public static final int TRIGGER_BANK_NUMBER = 1;
public static final int ECAL_WINDOW_MODE = 1; public static final int ECAL_PULSE_MODE = 2; public static final int ECAL_PULSE_INTEGRAL_MODE = 3;
diff -u -r1.2 -r1.3 --- TriggerData.java 3 Aug 2012 00:05:26 -0000 1.2 +++ TriggerData.java 3 Aug 2012 23:14:39 -0000 1.3 @@ -5,7 +5,7 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: TriggerData.java,v 1.2 2012/08/03 00:05:26 meeg Exp $
+ * @version $Id: TriggerData.java,v 1.3 2012/08/03 23:14:39 meeg Exp $
*/ public class TriggerData implements GenericObject { public static final int OR_TRIG = 3;
@@ -14,6 +14,7 @@
public static final int AND_TRIG = 6; public static final int TIME = 7; public static final int TRIG_BANK_SIZE = 8;
+ public static final String TRIG_COLLECTION = "TriggerBank";
private int[] bank;
@@ -40,6 +41,10 @@
public int getAndTrig() { return getIntVal(AND_TRIG); }
+ + public int[] getBank() { + return bank; + }
@Override public int getNInt() {
diff -u -r1.1 -r1.2 --- HPSTestRunReconToLcio.lcsim 30 Jul 2012 23:31:45 -0000 1.1 +++ HPSTestRunReconToLcio.lcsim 3 Aug 2012 23:14:39 -0000 1.2 @@ -7,10 +7,6 @@
<inputFiles> <file>${inputFile}</file> </inputFiles>
- - <control> - <numberOfEvents>-1</numberOfEvents> - </control>
<execute> <driver name="LoadCalibrations"/>
diff -u -r1.8 -r1.9 --- HPSTestRunReconToEvio.lcsim 29 Jun 2012 23:00:48 -0000 1.8 +++ HPSTestRunReconToEvio.lcsim 3 Aug 2012 23:14:39 -0000 1.9 @@ -8,10 +8,6 @@
<file>${inputFile}</file> </inputFiles>
- <control> - <numberOfEvents>-1</numberOfEvents> - </control> -
<execute> <driver name="LoadCalibrations"/> <driver name="HPSCalibrationDriver"/>
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