Commit in hps-java/src/main/java/org/lcsim/hps/evio on MAIN | |||
ECalEvioWriter.java | +31 | -24 | 1.4 -> 1.5 |
BasicEvioFileReader.java | +6 | -3 | 1.6 -> 1.7 |
ECalEvioReader.java | +28 | -31 | 1.12 -> 1.13 |
TestRunTriggeredReconToEvio.java | +172 | -172 | 1.9 -> 1.10 |
+237 | -230 |
not moving to new JEVIO version yet - but ready for it
diff -u -r1.4 -r1.5 --- ECalEvioWriter.java 2 May 2012 00:39:40 -0000 1.4 +++ ECalEvioWriter.java 4 May 2012 17:18:57 -0000 1.5 @@ -1,7 +1,3 @@
-/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */
package org.lcsim.hps.evio; import org.lcsim.event.RawTrackerHit;
@@ -29,7 +25,7 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: ECalEvioWriter.java,v 1.4 2012/05/02 00:39:40 meeg Exp $
+ * @version $Id: ECalEvioWriter.java,v 1.5 2012/05/04 17:18:57 meeg Exp $
*/ public class ECalEvioWriter implements EvioWriter {
@@ -55,6 +51,7 @@
} }
+ @Override
public boolean hasData(EventHeader event) { switch (mode) { case EventConstants.ECAL_WINDOW_MODE:
@@ -68,6 +65,7 @@
} }
+ @Override
public void writeData(EventHeader event, EventBuilder builder) { if (!HPSEcalConditions.mapLoaded()) { HPSEcalConditions.fillDaqCellMap(event.getDetector().getSubdetector(ecalName));
@@ -150,6 +148,11 @@
// Make a new bank for this crate. EvioBank crateBank = new EvioBank(bankTag, DataType.BANK, ECAL_BANK_NUMBER);
+// // New bank for this slot. +// EvioBank slotBank = new EvioBank(EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG, DataType.COMPOSITE, 0); +// +// List<CompositeData> slotDataList = new ArrayList<CompositeData>(); +//
// Loop over the slots in the map. for (int slot : slotMap.keySet()) {
@@ -177,16 +180,15 @@
} // Add CompositeData to bank.
- CompositeData cdata = null;
try {
- cdata = new CompositeData(ECAL_PULSE_INTEGRAL_FORMAT, 1, data, ECAL_PULSE_INTEGRAL_BANK_TAG, slot);
+ CompositeData cdata = new CompositeData(ECAL_PULSE_INTEGRAL_FORMAT, 1, data, ECAL_PULSE_INTEGRAL_BANK_TAG, 0); +// slotDataList.add(cdata);
slotBank.appendCompositeData(cdata); } catch (EvioException e) { throw new RuntimeException(e); } // Add slot bank to crate bank.
- slotBank.setAllHeaderLengths();
try { builder.addChild(crateBank, slotBank); } catch (EvioException e) {
@@ -194,7 +196,8 @@
} } try {
- crateBank.setAllHeaderLengths();
+// slotBank.appendCompositeData(slotDataList.toArray(new CompositeData[slotDataList.size()])); +// builder.addChild(crateBank, slotBank);
builder.addChild(builder.getEvent(), crateBank); } catch (EvioException e) { throw new RuntimeException(e);
@@ -255,6 +258,11 @@
// Make a new bank for this crate. EvioBank crateBank = new EvioBank(bankTag, DataType.BANK, ECAL_BANK_NUMBER);
+// // New bank for this slot. +// EvioBank slotBank = new EvioBank(EventConstants.ECAL_PULSE_BANK_TAG, DataType.COMPOSITE, 0); +// +// List<CompositeData> slotDataList = new ArrayList<CompositeData>(); +//
// Loop over the slots in the map. for (int slot : slotMap.keySet()) {
@@ -285,24 +293,17 @@
} // Add CompositeData to bank.
- CompositeData cdata = null;
try {
- cdata = new CompositeData(EventConstants.ECAL_PULSE_FORMAT, 1, data, EventConstants.ECAL_PULSE_BANK_TAG, slot);
+ CompositeData cdata = new CompositeData(EventConstants.ECAL_PULSE_FORMAT, 1, data, EventConstants.ECAL_PULSE_BANK_TAG, 0); +// slotDataList.add(cdata);
slotBank.appendCompositeData(cdata); } catch (EvioException e) { throw new RuntimeException(e); }
- - // Add slot bank to crate bank. - slotBank.setAllHeaderLengths(); - try { - builder.addChild(crateBank, slotBank); - } catch (EvioException e) { - throw new RuntimeException(e); - }
} try {
- crateBank.setAllHeaderLengths();
+// slotBank.appendCompositeData(slotDataList.toArray(new CompositeData[slotDataList.size()])); +// builder.addChild(crateBank, slotBank);
builder.addChild(builder.getEvent(), crateBank); } catch (EvioException e) { throw new RuntimeException(e);
@@ -359,6 +360,11 @@
// Make a new bank for this crate. EvioBank crateBank = new EvioBank(bankTag, DataType.BANK, ECAL_BANK_NUMBER);
+// // New bank for this slot. +// EvioBank slotBank = new EvioBank(EventConstants.ECAL_WINDOW_BANK_TAG, DataType.COMPOSITE, 0); +// +// List<CompositeData> slotDataList = new ArrayList<CompositeData>(); +//
// Loop over the slots in the map. for (int slot : slotMap.keySet()) {
@@ -385,11 +391,11 @@
} // Add CompositeData to bank.
- CompositeData cdata = null;
try {
- cdata = new CompositeData(EventConstants.ECAL_WINDOW_FORMAT, 1, data, EventConstants.ECAL_WINDOW_BANK_TAG, slot);
+ CompositeData cdata = new CompositeData(EventConstants.ECAL_WINDOW_FORMAT, 1, data, EventConstants.ECAL_WINDOW_BANK_TAG, 0); + // slotDataList.add(cdata);
slotBank.appendCompositeData(cdata);
- } catch (EvioException e) {
+ } catch (EvioException e) {
throw new RuntimeException(e); }
@@ -402,7 +408,8 @@
} } try {
- crateBank.setAllHeaderLengths();
+// slotBank.appendCompositeData(slotDataList.toArray(new CompositeData[slotDataList.size()])); +// builder.addChild(crateBank, slotBank);
builder.addChild(builder.getEvent(), crateBank); } catch (EvioException e) { throw new RuntimeException(e);
diff -u -r1.6 -r1.7 --- BasicEvioFileReader.java 2 May 2012 16:53:28 -0000 1.6 +++ BasicEvioFileReader.java 4 May 2012 17:18:57 -0000 1.7 @@ -56,17 +56,20 @@
} } if (bank.getHeader().getDataType() == DataType.COMPOSITE) {
+// for (CompositeData cdata : bank.getCompositeData()) { + CompositeData cdata = bank.getCompositeData();
switch (bank.getHeader().getTag()) { case 0xe101:
- printWindow(bank.getCompositeData(), indent + "\t");
+ printWindow(cdata, indent + "\t");
break; case 0xe102:
- printComposite(bank.getCompositeData(), indent + "\t");
+ printComposite(cdata, indent + "\t");
break; case 0xe103:
- printComposite(bank.getCompositeData(), indent + "\t");
+ printComposite(cdata, indent + "\t");
break; }
+// }
} }
diff -u -r1.12 -r1.13 --- ECalEvioReader.java 2 May 2012 20:31:38 -0000 1.12 +++ ECalEvioReader.java 4 May 2012 17:18:57 -0000 1.13 @@ -1,7 +1,3 @@
-/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */
package org.lcsim.hps.evio; import java.util.ArrayList;
@@ -17,7 +13,7 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: ECalEvioReader.java,v 1.12 2012/05/02 20:31:38 meeg Exp $
+ * @version $Id: ECalEvioReader.java,v 1.13 2012/05/04 17:18:57 meeg Exp $
*/ public class ECalEvioReader extends EvioReader { // Names of subdetectors.
@@ -51,34 +47,35 @@
if (debug) { System.out.println("ECal bank tag: " + header.getTag() + "; childCount: " + bank.getChildCount()); }
- for (BaseStructure slotBank : bank.getChildren()) { - CompositeData cdata = null; - try { - cdata = slotBank.getCompositeData(); - } catch (EvioException e) { - throw new RuntimeException(e); - } - if (slotBank.getHeader().getTag() != bankTag) { - bankTag = slotBank.getHeader().getTag(); - System.out.printf("ECal format tag: 0x%x\n", bankTag); - } - switch (slotBank.getHeader().getTag()) { - case EventConstants.ECAL_WINDOW_BANK_TAG: - hits.addAll(makeWindowHits(cdata, crateBankTag)); - hitClass = RawTrackerHit.class; - break; - case EventConstants.ECAL_PULSE_BANK_TAG: - hits.addAll(makePulseHits(cdata, crateBankTag)); - hitClass = RawTrackerHit.class; - break; - case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG: - hits.addAll(makeIntegralHits(cdata, crateBankTag)); - hitClass = RawCalorimeterHit.class; - break; - default: - throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
+ try { + for (BaseStructure slotBank : bank.getChildren()) { +// for (CompositeData cdata : slotBank.getCompositeData()) { + CompositeData cdata = slotBank.getCompositeData(); + if (slotBank.getHeader().getTag() != bankTag) { + bankTag = slotBank.getHeader().getTag(); + System.out.printf("ECal format tag: 0x%x\n", bankTag); + } + switch (slotBank.getHeader().getTag()) { + case EventConstants.ECAL_WINDOW_BANK_TAG: + hits.addAll(makeWindowHits(cdata, crateBankTag)); + hitClass = RawTrackerHit.class; + break; + case EventConstants.ECAL_PULSE_BANK_TAG: + hits.addAll(makePulseHits(cdata, crateBankTag)); + hitClass = RawTrackerHit.class; + break; + case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG: + hits.addAll(makeIntegralHits(cdata, crateBankTag)); + hitClass = RawCalorimeterHit.class; + break; + default: + throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
+ } +// }
}
+ } catch (EvioException e) { + throw new RuntimeException(e);
} } }
diff -u -r1.9 -r1.10 --- TestRunTriggeredReconToEvio.java 2 May 2012 00:39:40 -0000 1.9 +++ TestRunTriggeredReconToEvio.java 4 May 2012 17:18:57 -0000 1.10 @@ -20,176 +20,176 @@
*/ public class TestRunTriggeredReconToEvio extends Driver {
- EventWriter writer; - String rawCalorimeterHitCollectionName = "EcalReadoutHits"; - String evioOutputFile = "TestRunData.evio"; - String ecalName = "Ecal"; - Queue<QueuedEtEvent> builderQueue = null; - private int eventsWritten = 0; - public static boolean triggerBit = false; - HPSEcalConditions ecalIDConverter = null; - ECalEvioWriter ecalWriter = null; - SVTEvioWriter svtWriter = null; - List<EvioWriter> writers = null; - private int ecalMode = EventConstants.ECAL_PULSE_INTEGRAL_MODE; - - public TestRunTriggeredReconToEvio() { - } - - public void setEcalMode(int ecalMode) { - this.ecalMode = ecalMode; - if (ecalMode != EventConstants.ECAL_WINDOW_MODE && ecalMode != EventConstants.ECAL_PULSE_MODE && ecalMode != EventConstants.ECAL_PULSE_INTEGRAL_MODE) { - throw new IllegalArgumentException("invalid mode " + ecalMode); - } - if (ecalWriter != null) { - ecalWriter.setMode(ecalMode); - } - } - - public void setEvioOutputFile(String evioOutputFile) { - this.evioOutputFile = evioOutputFile; - } - - public void setEcalName(String ecalName) { - this.ecalName = ecalName; - if (ecalWriter != null) { - ecalWriter.setEcalName(ecalName); - } - } - - public void setRawCalorimeterHitCollectionName(String rawCalorimeterHitCollectionName) { - this.rawCalorimeterHitCollectionName = rawCalorimeterHitCollectionName; - if (ecalWriter != null) { - ecalWriter.setHitCollectionName(rawCalorimeterHitCollectionName); - } - } - - protected void startOfData() { - try { - writer = new EventWriter(evioOutputFile); - } catch (EvioException e) { - throw new RuntimeException(e); - } - - writers = new ArrayList<EvioWriter>(); - - ecalWriter = new ECalEvioWriter(); - ecalWriter.setMode(ecalMode); - ecalWriter.setEcalName(ecalName); - ecalWriter.setHitCollectionName(rawCalorimeterHitCollectionName); - writers.add(ecalWriter); - - svtWriter = new SVTEvioWriter(); - writers.add(svtWriter); - - builderQueue = new LinkedList<QueuedEtEvent>(); - } - - protected void endOfData() { - System.out.println(this.getClass().getSimpleName() + " - wrote " + eventsWritten + " EVIO events in job."); - try { - writer.close(); - } catch (EvioException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - protected void process(EventHeader event) { - if (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())); - triggerBit = false; - } - - for (int i = 0; i < writers.size(); i++) { - EvioWriter evioWriter = writers.get(i); - if (evioWriter.hasData(event)) { - System.out.println(evioWriter.getClass().getSimpleName() + ": writing data, event " + event.getEventNumber()); - EventBuilder builder = null; - - for (QueuedEtEvent queuedEvent : builderQueue) { - if (!queuedEvent.getRead(i)) { - builder = queuedEvent.getBuilder(); - queuedEvent.setRead(i); - break; - } - } - if (builder == null) { - throw new RuntimeException("no queued ET events waiting for an " + evioWriter.getClass().getSimpleName() + " bank"); - } - // Write data. - evioWriter.writeData(event, builder); - } - } - - while (!builderQueue.isEmpty() && builderQueue.peek().banksFilled()) { - System.out.println("writing filled ET event, event " + event.getEventNumber()); - EventBuilder builder = builderQueue.poll().getBuilder(); - // Write this EVIO event. - writeEvioEvent(builder); - } - } - - private void writeEvioEvent(EventBuilder builder) { - EvioBank eventIDBank = new EvioBank(EventConstants.EVENTID_BANK_TAG, DataType.UINT32, 0); - int[] eventID = new int[3]; - eventID[0] = eventsWritten; - eventID[1] = 0; //trigger type - eventID[2] = 0; //status - - try { - eventIDBank.appendIntData(eventID); - builder.addChild(builder.getEvent(), eventIDBank); - } catch (EvioException e) { - throw new RuntimeException(e); - } - - builder.setAllHeaderLengths(); - System.out.printf("Writing event with %d bytes\n", builder.getEvent().getTotalBytes()); - try { - writer.writeEvent(builder.getEvent()); - ++eventsWritten; - } catch (EvioException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private class QueuedEtEvent { - - private EventBuilder builder; - public boolean readSVT = false; - public boolean readECal = false; - private boolean[] readData = null; - - public QueuedEtEvent(EventBuilder builder, int numData) { - this.builder = builder; - readData = new boolean[numData]; - } - - public void setRead(int i) { - readData[i] = true; - } - - public boolean getRead(int i) { - return readData[i]; - } - - public EventBuilder getBuilder() { - return builder; - } - - public boolean banksFilled() { - for (boolean x : readData) { - if (!x) { - return false; - } - } - return true; - } - }
+ EventWriter writer; + String rawCalorimeterHitCollectionName = "EcalReadoutHits"; + String evioOutputFile = "TestRunData.evio"; + String ecalName = "Ecal"; + Queue<QueuedEtEvent> builderQueue = null; + private int eventsWritten = 0; + public static boolean triggerBit = false; + HPSEcalConditions ecalIDConverter = null; + ECalEvioWriter ecalWriter = null; + SVTEvioWriter svtWriter = null; + List<EvioWriter> writers = null; + private int ecalMode = EventConstants.ECAL_PULSE_INTEGRAL_MODE; + + public TestRunTriggeredReconToEvio() { + } + + public void setEcalMode(int ecalMode) { + this.ecalMode = ecalMode; + if (ecalMode != EventConstants.ECAL_WINDOW_MODE && ecalMode != EventConstants.ECAL_PULSE_MODE && ecalMode != EventConstants.ECAL_PULSE_INTEGRAL_MODE) { + throw new IllegalArgumentException("invalid mode " + ecalMode); + } + if (ecalWriter != null) { + ecalWriter.setMode(ecalMode); + } + } + + public void setEvioOutputFile(String evioOutputFile) { + this.evioOutputFile = evioOutputFile; + } + + public void setEcalName(String ecalName) { + this.ecalName = ecalName; + if (ecalWriter != null) { + ecalWriter.setEcalName(ecalName); + } + } + + public void setRawCalorimeterHitCollectionName(String rawCalorimeterHitCollectionName) { + this.rawCalorimeterHitCollectionName = rawCalorimeterHitCollectionName; + if (ecalWriter != null) { + ecalWriter.setHitCollectionName(rawCalorimeterHitCollectionName); + } + } + + protected void startOfData() { + try { + writer = new EventWriter(evioOutputFile); + } catch (EvioException e) { + throw new RuntimeException(e); + } + + writers = new ArrayList<EvioWriter>(); + + ecalWriter = new ECalEvioWriter(); + ecalWriter.setMode(ecalMode); + ecalWriter.setEcalName(ecalName); + ecalWriter.setHitCollectionName(rawCalorimeterHitCollectionName); + writers.add(ecalWriter); + + svtWriter = new SVTEvioWriter(); + writers.add(svtWriter); + + builderQueue = new LinkedList<QueuedEtEvent>(); + } + + protected void endOfData() { + System.out.println(this.getClass().getSimpleName() + " - wrote " + eventsWritten + " EVIO events in job."); + try { + writer.close(); + } catch (EvioException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + protected void process(EventHeader event) { + if (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())); + EvioBank eventIDBank = new EvioBank(EventConstants.EVENTID_BANK_TAG, DataType.UINT32, 0); + int[] eventID = new int[3]; + eventID[0] = eventsWritten; + eventID[1] = 0; //trigger type + eventID[2] = 0; //status + + try { + eventIDBank.appendIntData(eventID); + builder.addChild(builder.getEvent(), eventIDBank); + } catch (EvioException e) { + throw new RuntimeException(e); + } + + triggerBit = false; + } + + for (int i = 0; i < writers.size(); i++) { + EvioWriter evioWriter = writers.get(i); + if (evioWriter.hasData(event)) { + System.out.println(evioWriter.getClass().getSimpleName() + ": writing data, event " + event.getEventNumber()); + EventBuilder builder = null; + + for (QueuedEtEvent queuedEvent : builderQueue) { + if (!queuedEvent.getRead(i)) { + builder = queuedEvent.getBuilder(); + queuedEvent.setRead(i); + break; + } + } + if (builder == null) { + throw new RuntimeException("no queued ET events waiting for an " + evioWriter.getClass().getSimpleName() + " bank"); + } + // Write data. + evioWriter.writeData(event, builder); + } + } + + while (!builderQueue.isEmpty() && builderQueue.peek().banksFilled()) { + System.out.println("writing filled ET event, event " + event.getEventNumber()); + EventBuilder builder = builderQueue.poll().getBuilder(); + // Write this EVIO event. + writeEvioEvent(builder); + } + } + + private void writeEvioEvent(EventBuilder builder) { + builder.setAllHeaderLengths(); + System.out.printf("Writing event with %d bytes\n", builder.getEvent().getTotalBytes()); + try { + writer.writeEvent(builder.getEvent()); + ++eventsWritten; + } catch (EvioException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private class QueuedEtEvent { + + private EventBuilder builder; + public boolean readSVT = false; + public boolean readECal = false; + private boolean[] readData = null; + + public QueuedEtEvent(EventBuilder builder, int numData) { + this.builder = builder; + readData = new boolean[numData]; + } + + public void setRead(int i) { + readData[i] = true; + } + + public boolean getRead(int i) { + return readData[i]; + } + + public EventBuilder getBuilder() { + return builder; + } + + public boolean banksFilled() { + for (boolean x : readData) { + if (!x) { + return false; + } + } + return true; + } + }
}
\ No newline at end of file
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