Author: [log in to unmask] Date: Tue Oct 6 15:16:07 2015 New Revision: 3778 Log: Move exceptions to static nested class. Separate out header check methods to separate class. Added: java/trunk/evio/src/main/java/org/hps/evio/SvtEventHeaderChecker.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioExceptions.java Removed: java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderApvBufferAddressException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderApvFrameCountException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderApvReadErrorException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderMultisampleErrorBitException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderOFErrorException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderSkipCountException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioHeaderSyncErrorException.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReaderException.java Modified: java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java java/trunk/evio/src/main/java/org/hps/evio/AugmentedSvtEvioReader.java java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java java/trunk/evio/src/main/java/org/hps/evio/TestRunSvtEvioReader.java Modified: java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java Tue Oct 6 15:16:07 2015 @@ -7,6 +7,8 @@ import java.util.logging.Level; import java.util.logging.Logger; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderException; +import org.hps.evio.SvtEvioExceptions.SvtEvioReaderException; import org.hps.record.svt.SvtHeaderDataInfo; import org.hps.util.BasicLogFormatter; import org.hps.util.Pair; Modified: java/trunk/evio/src/main/java/org/hps/evio/AugmentedSvtEvioReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/AugmentedSvtEvioReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/AugmentedSvtEvioReader.java Tue Oct 6 15:16:07 2015 @@ -3,10 +3,9 @@ */ package org.hps.evio; -import java.util.Arrays; import java.util.List; -import java.util.logging.Level; +import org.hps.evio.SvtEvioExceptions.*; import org.hps.record.svt.SvtHeaderDataInfo; import org.lcsim.event.EventHeader; import org.lcsim.lcio.LCIOUtil; @@ -25,187 +24,6 @@ } - protected void checkSvtHeaderData(SvtHeaderDataInfo header) throws SvtEvioHeaderException { - int tail = header.getTail(); - if(logger.getLevel().intValue() >= Level.FINE.intValue()) { - logger.fine("checkSvtHeaderData tail " + tail + "( " + Integer.toHexString(tail) + " )"); - logger.fine("checkSvtHeaderData errorbit " + Integer.toHexString(SvtEvioUtils.getSvtTailSyncErrorBit(tail))); - logger.fine("checkSvtHeaderData OFerrorbit " + Integer.toHexString(SvtEvioUtils.getSvtTailOFErrorBit(tail))); - logger.fine("checkSvtHeaderData skipcount " + Integer.toHexString(SvtEvioUtils.getSvtTailMultisampleSkipCount(tail))); - } - if( SvtEvioUtils.getSvtTailSyncErrorBit(tail) != 0) { - throw new SvtEvioHeaderSyncErrorException("This SVT header had a SyncError " + header.toString()); - } - else if( SvtEvioUtils.getSvtTailOFErrorBit(tail) != 0) { - throw new SvtEvioHeaderOFErrorException("This header had a OverFlowError " + header.toString()); - } - else if( SvtEvioUtils.getSvtTailMultisampleSkipCount(tail) != 0) { - throw new SvtEvioHeaderSkipCountException("This header had a skipCount " + SvtEvioUtils.getSvtTailMultisampleSkipCount(tail) + " error " + header.toString()); - } - logger.fine("checkSvtHeaderData passed all I guess"); - } - - - protected void addSvtHeadersToEventEventCollection(List<SvtHeaderDataInfo> headers, EventHeader lcsimEvent) { - // Turn on 64-bit cell ID. - int flag = LCIOUtil.bitSet(0, 31, true); - // Add the collection of raw hits to the LCSim event - lcsimEvent.put(SVT_HEADER_COLLECTION_NAME, headers, SvtHeaderDataInfo.class, flag); - - } - - - - private String getMultisampleDebugString(SvtHeaderDataInfo headerDataInfo, int multisampleHeaderTailWord) { - String s = " header" + headerDataInfo.toString() + - " multisample: feb " + SvtEvioUtils.getFebIDFromMultisampleTail(multisampleHeaderTailWord) + - " hybrid " + SvtEvioUtils.getFebHybridIDFromMultisampleTail(multisampleHeaderTailWord) + - " apv " + SvtEvioUtils.getApvFromMultisampleTail(multisampleHeaderTailWord); - return s; - } - - private String getDebugString(int[] bufAddresses, int[] frameCounts, int[] readError ) { - String s = ""; - for (int i=0; i<bufAddresses.length; ++i) - s+="\nbuffer address " + i + " " + bufAddresses[i] + " ( " + Integer.toHexString( bufAddresses[i]) + " )"; - for (int i=0; i<frameCounts.length; ++i) - s+="\nframe count " + i + " " + frameCounts[i] + " ( " + Integer.toHexString( frameCounts[i]) + " )"; - for (int i=0; i<readError.length; ++i) - s+="\nread error " + i + " " + readError[i] + " ( " + Integer.toHexString( readError[i]) + " )"; - return s; - } - - - - /** - * Check the integrity of the SVT header information. - * @param headers - headers to check - * @throws SvtEvioHeaderException - */ - protected void checkSvtHeaders(List<SvtHeaderDataInfo> headers) throws SvtEvioHeaderException { - logger.fine("check " + headers.size() + " headers "); - int[] bufferAddresses = new int[6]; - int[] firstFrameCounts = new int[6]; - boolean firstHeader = true; - int[] multisampleHeader; - int[] bufAddresses; - int[] frameCounts; - int[] readError; - int count; - int multisampleHeaderTailerrorBit; - for( SvtHeaderDataInfo headerDataInfo : headers ) { - logger.fine("checking header: " + headerDataInfo.toString()); - - - // Check the multisample header information - int nMultisampleHeaders = headerDataInfo.getNumberOfMultisampleHeaders(); - for(int iMultisampleHeader = 0; iMultisampleHeader < nMultisampleHeaders; iMultisampleHeader++) { - logger.fine("iMultisampleHeader " + iMultisampleHeader); - - multisampleHeader = SvtHeaderDataInfo.getMultisampleHeader(iMultisampleHeader, headerDataInfo); - - // get multisample tail error bit - multisampleHeaderTailerrorBit = SvtEvioUtils.getErrorBitFromMultisampleHeader(SvtEvioUtils.getMultisampleTailWord(multisampleHeader)); - - // get buffer addresses - bufAddresses = SvtEvioUtils.getApvBufferAddresses(multisampleHeader); - - // get frame counts - frameCounts = SvtEvioUtils.getApvFrameCount(multisampleHeader); - - // check if there was any read errors - readError = SvtEvioUtils.getApvReadErrors(multisampleHeader); - - if( bufAddresses.length != 6) - throw new SvtEvioHeaderApvBufferAddressException("Invalid number of APV buffer addresses."); - - if( frameCounts.length != 6) - throw new SvtEvioHeaderApvFrameCountException("Invalid number of APV frame counts."); - - if( readError.length != 6) - throw new SvtEvioHeaderApvFrameCountException("Invalid number of read errors."); - - // Check for error bit - if( multisampleHeaderTailerrorBit != 0) { - throw new SvtEvioHeaderMultisampleErrorBitException("A multisample header error bit was set for " + - this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError)); - } - - // print debug - if(logger.getLevel().intValue() >= Level.FINE.intValue()) { - logger.fine(this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError)); - } - - // Get a reference for comparison - if(firstHeader) { - - System.arraycopy(bufAddresses, 0, bufferAddresses, 0, bufAddresses.length); - - System.arraycopy(frameCounts, 0, firstFrameCounts, 0, frameCounts.length); - - firstHeader = false; - } - else { - - // Check that apv buffer addresses match - if( !Arrays.equals(bufferAddresses, bufAddresses)) { - throw new SvtEvioHeaderApvBufferAddressException("The APV buffer addresses in this event do not match " + - this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError) + - " compared to " + - this.getDebugString(bufferAddresses, firstFrameCounts, readError)); - } - - // Check that apv frame count match - if( !Arrays.equals(firstFrameCounts, frameCounts)) { - throw new SvtEvioHeaderApvFrameCountException("The APV frame counts in this event do not match " + - this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError) + - " compared to " + - this.getDebugString(bufferAddresses, firstFrameCounts, readError)); - } - } - - // Check that the APV frame counts are incrementing - // remember to take into account the 2-bit rollover (duh!) - - count = -1; - for (int iFrame=0; iFrame<frameCounts.length; ++iFrame) { - logger.fine("frame count " + iFrame + " " + frameCounts[iFrame] + " ( " + Integer.toHexString( frameCounts[iFrame]) + " )"); - - if( frameCounts[iFrame] > 15 || (count < 15 && frameCounts[iFrame] < count) || ( count == 15 && frameCounts[iFrame] != 0 ) ) { - throw new SvtEvioHeaderApvFrameCountException("The APV frame counts in this events are invalid " + - this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError)); - } - count = frameCounts[iFrame]; - } - - for (int iReadError=0; iReadError<readError.length; ++iReadError) { - logger.fine("read error " + iReadError + " " + readError[iReadError] + " ( " + Integer.toHexString( readError[iReadError]) + " )"); - if( readError[iReadError] != 1) {// active low - throw new SvtEvioHeaderApvReadErrorException("Read error occurred " + - this.getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + - this.getDebugString(bufAddresses, frameCounts, readError)); - } - } - - - } // multisampleheaders - - - // Check the header data - // Parts of this get its input from the multisample which has already been checked - // therefore I don't expect these to happen. - this.checkSvtHeaderData(headerDataInfo); - - - - } - - } @Override protected void processSvtHeaders(List<SvtHeaderDataInfo> headers, EventHeader lcsimEvent) throws SvtEvioHeaderException { @@ -214,7 +32,7 @@ // and handle it outside try { - this.checkSvtHeaders(headers); + SvtEventHeaderChecker.checkSvtHeaders(headers); } catch(SvtEvioHeaderException e) { @@ -236,5 +54,17 @@ //this.addSvtHeadersToEventEventCollection(headers, lcsimEvent); } + + + protected void addSvtHeadersToEventEventCollection(List<SvtHeaderDataInfo> headers, EventHeader lcsimEvent) { + // Turn on 64-bit cell ID. + int flag = LCIOUtil.bitSet(0, 31, true); + // Add the collection of raw hits to the LCSim event + lcsimEvent.put(SVT_HEADER_COLLECTION_NAME, headers, SvtHeaderDataInfo.class, flag); + + } + + + } Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java Tue Oct 6 15:16:07 2015 @@ -5,6 +5,15 @@ import java.util.logging.Level; import java.util.logging.Logger; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderApvBufferAddressException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderApvFrameCountException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderApvReadErrorException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderMultisampleErrorBitException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderOFErrorException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderSkipCountException; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderSyncErrorException; +import org.hps.evio.SvtEvioExceptions.SvtEvioReaderException; import org.hps.record.epics.EpicsData; import org.hps.record.epics.EpicsEvioProcessor; import org.hps.record.evio.EvioEventUtilities; Added: java/trunk/evio/src/main/java/org/hps/evio/SvtEventHeaderChecker.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/SvtEventHeaderChecker.java (added) +++ java/trunk/evio/src/main/java/org/hps/evio/SvtEventHeaderChecker.java Tue Oct 6 15:16:07 2015 @@ -0,0 +1,206 @@ +/** + * + */ +package org.hps.evio; + +import java.util.Arrays; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.hps.evio.SvtEvioExceptions.*; +import org.hps.record.svt.SvtHeaderDataInfo; +import org.hps.util.BasicLogFormatter; +import org.lcsim.util.log.LogUtil; + +/** + * + * Static functions to check integrity of the SVT header data. + * + * @author Per Hansson Adrian <[log in to unmask]> + * + */ +public class SvtEventHeaderChecker { + + private static Logger logger = LogUtil.create(SvtEventHeaderChecker.class.getSimpleName(), new BasicLogFormatter(), Level.INFO); + + /** + * Check the integrity of the SVT header information. + * @param headers - headers to check + * @throws SvtEvioHeaderException + */ + public static void checkSvtHeaders(List<SvtHeaderDataInfo> headers) throws SvtEvioHeaderException { + logger.fine("check " + headers.size() + " headers "); + int[] bufferAddresses = new int[6]; + int[] firstFrameCounts = new int[6]; + boolean firstHeader = true; + int[] multisampleHeader; + int[] bufAddresses; + int[] frameCounts; + int[] readError; + int count; + int multisampleHeaderTailerrorBit; + for( SvtHeaderDataInfo headerDataInfo : headers ) { + logger.fine("checking header: " + headerDataInfo.toString()); + + + // Check the multisample header information + int nMultisampleHeaders = headerDataInfo.getNumberOfMultisampleHeaders(); + for(int iMultisampleHeader = 0; iMultisampleHeader < nMultisampleHeaders; iMultisampleHeader++) { + logger.fine("iMultisampleHeader " + iMultisampleHeader); + + multisampleHeader = SvtHeaderDataInfo.getMultisampleHeader(iMultisampleHeader, headerDataInfo); + + // get multisample tail error bit + multisampleHeaderTailerrorBit = SvtEvioUtils.getErrorBitFromMultisampleHeader(SvtEvioUtils.getMultisampleTailWord(multisampleHeader)); + + // get buffer addresses + bufAddresses = SvtEvioUtils.getApvBufferAddresses(multisampleHeader); + + // get frame counts + frameCounts = SvtEvioUtils.getApvFrameCount(multisampleHeader); + + // check if there was any read errors + readError = SvtEvioUtils.getApvReadErrors(multisampleHeader); + + if( bufAddresses.length != 6) + throw new SvtEvioHeaderApvBufferAddressException("Invalid number of APV buffer addresses."); + + if( frameCounts.length != 6) + throw new SvtEvioHeaderApvFrameCountException("Invalid number of APV frame counts."); + + if( readError.length != 6) + throw new SvtEvioHeaderApvFrameCountException("Invalid number of read errors."); + + // Check for error bit + if( multisampleHeaderTailerrorBit != 0) { + throw new SvtEvioHeaderMultisampleErrorBitException("A multisample header error bit was set for " + + getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError)); + } + + // print debug + if(logger.getLevel().intValue() >= Level.FINE.intValue()) { + logger.fine(getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError)); + } + + // Get a reference for comparison + if(firstHeader) { + + System.arraycopy(bufAddresses, 0, bufferAddresses, 0, bufAddresses.length); + + System.arraycopy(frameCounts, 0, firstFrameCounts, 0, frameCounts.length); + + firstHeader = false; + } + else { + + // Check that apv buffer addresses match + if( !Arrays.equals(bufferAddresses, bufAddresses)) { + throw new SvtEvioHeaderApvBufferAddressException("The APV buffer addresses in this event do not match " + + getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError) + + " compared to " + + getDebugString(bufferAddresses, firstFrameCounts, readError)); + } + + // Check that apv frame count match + if( !Arrays.equals(firstFrameCounts, frameCounts)) { + throw new SvtEvioHeaderApvFrameCountException("The APV frame counts in this event do not match " + + getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError) + + " compared to " + + getDebugString(bufferAddresses, firstFrameCounts, readError)); + } + } + + // Check that the APV frame counts are incrementing + // remember to take into account the 2-bit rollover (duh!) + + count = -1; + for (int iFrame=0; iFrame<frameCounts.length; ++iFrame) { + logger.fine("frame count " + iFrame + " " + frameCounts[iFrame] + " ( " + Integer.toHexString( frameCounts[iFrame]) + " )"); + + if( frameCounts[iFrame] > 15 || (count < 15 && frameCounts[iFrame] < count) || ( count == 15 && frameCounts[iFrame] != 0 ) ) { + throw new SvtEvioHeaderApvFrameCountException("The APV frame counts in this events are invalid " + + getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError)); + } + count = frameCounts[iFrame]; + } + + for (int iReadError=0; iReadError<readError.length; ++iReadError) { + logger.fine("read error " + iReadError + " " + readError[iReadError] + " ( " + Integer.toHexString( readError[iReadError]) + " )"); + if( readError[iReadError] != 1) {// active low + throw new SvtEvioHeaderApvReadErrorException("Read error occurred " + + getMultisampleDebugString(headerDataInfo, SvtEvioUtils.getMultisampleTailWord(multisampleHeader)) + + getDebugString(bufAddresses, frameCounts, readError)); + } + } + + + } // multisampleheaders + + + // Check the header data + // Parts of this get its input from the multisample which has already been checked + // therefore I don't expect these to happen. + checkSvtHeaderData(headerDataInfo); + + + + } + + } + + public static void checkSvtHeaderData(SvtHeaderDataInfo header) throws SvtEvioHeaderException { + int tail = header.getTail(); + if(logger.getLevel().intValue() >= Level.FINE.intValue()) { + logger.fine("checkSvtHeaderData tail " + tail + "( " + Integer.toHexString(tail) + " )"); + logger.fine("checkSvtHeaderData errorbit " + Integer.toHexString(SvtEvioUtils.getSvtTailSyncErrorBit(tail))); + logger.fine("checkSvtHeaderData OFerrorbit " + Integer.toHexString(SvtEvioUtils.getSvtTailOFErrorBit(tail))); + logger.fine("checkSvtHeaderData skipcount " + Integer.toHexString(SvtEvioUtils.getSvtTailMultisampleSkipCount(tail))); + } + if( SvtEvioUtils.getSvtTailSyncErrorBit(tail) != 0) { + throw new SvtEvioExceptions.SvtEvioHeaderSyncErrorException("This SVT header had a SyncError " + header.toString()); + } + else if( SvtEvioUtils.getSvtTailOFErrorBit(tail) != 0) { + throw new SvtEvioHeaderOFErrorException("This header had a OverFlowError " + header.toString()); + } + else if( SvtEvioUtils.getSvtTailMultisampleSkipCount(tail) != 0) { + throw new SvtEvioHeaderSkipCountException("This header had a skipCount " + SvtEvioUtils.getSvtTailMultisampleSkipCount(tail) + " error " + header.toString()); + } + logger.fine("checkSvtHeaderData passed all I guess"); + } + + + private static String getMultisampleDebugString(SvtHeaderDataInfo headerDataInfo, int multisampleHeaderTailWord) { + String s = " header" + headerDataInfo.toString() + + " multisample: feb " + SvtEvioUtils.getFebIDFromMultisampleTail(multisampleHeaderTailWord) + + " hybrid " + SvtEvioUtils.getFebHybridIDFromMultisampleTail(multisampleHeaderTailWord) + + " apv " + SvtEvioUtils.getApvFromMultisampleTail(multisampleHeaderTailWord); + return s; + } + + private static String getDebugString(int[] bufAddresses, int[] frameCounts, int[] readError ) { + String s = ""; + for (int i=0; i<bufAddresses.length; ++i) + s+="\nbuffer address " + i + " " + bufAddresses[i] + " ( " + Integer.toHexString( bufAddresses[i]) + " )"; + for (int i=0; i<frameCounts.length; ++i) + s+="\nframe count " + i + " " + frameCounts[i] + " ( " + Integer.toHexString( frameCounts[i]) + " )"; + for (int i=0; i<readError.length; ++i) + s+="\nread error " + i + " " + readError[i] + " ( " + Integer.toHexString( readError[i]) + " )"; + return s; + } + + /** + * Private construction to avoid class being instantiated + */ + private SvtEventHeaderChecker() { + } + + + + +} Added: java/trunk/evio/src/main/java/org/hps/evio/SvtEvioExceptions.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/SvtEvioExceptions.java (added) +++ java/trunk/evio/src/main/java/org/hps/evio/SvtEvioExceptions.java Tue Oct 6 15:16:07 2015 @@ -0,0 +1,127 @@ +/** + * + */ +package org.hps.evio; + +/** + * @author Per Hansson Adrian <[log in to unmask]> + * + */ +public class SvtEvioExceptions { + + + public static class SvtEvioReaderException extends Exception { + public SvtEvioReaderException(String message) { + super(message); + } + + public SvtEvioReaderException(SvtEvioReaderException e) { + super(e); + } + } + + public static class SvtEvioHeaderException extends SvtEvioReaderException { + + public SvtEvioHeaderException(String message) { + super(message); + } + + public SvtEvioHeaderException(SvtEvioHeaderException e) { + super(e); + } + } + + + + public static class SvtEvioHeaderSyncErrorException extends SvtEvioHeaderException { + + public SvtEvioHeaderSyncErrorException(String message) { + super(message); + } + + public SvtEvioHeaderSyncErrorException(SvtEvioHeaderSyncErrorException e) { + super(e); + } + } + + + public static class SvtEvioHeaderApvBufferAddressException extends SvtEvioHeaderException { + + public SvtEvioHeaderApvBufferAddressException(String message) { + super(message); + } + + public SvtEvioHeaderApvBufferAddressException(SvtEvioHeaderApvBufferAddressException e) { + super(e); + } + } + + public static class SvtEvioHeaderApvFrameCountException extends SvtEvioHeaderException { + + public SvtEvioHeaderApvFrameCountException(String message) { + super(message); + } + + public SvtEvioHeaderApvFrameCountException(SvtEvioHeaderApvFrameCountException e) { + super(e); + } + } + + + public static class SvtEvioHeaderApvReadErrorException extends SvtEvioHeaderException { + + public SvtEvioHeaderApvReadErrorException(String message) { + super(message); + } + + public SvtEvioHeaderApvReadErrorException(SvtEvioHeaderApvReadErrorException e) { + super(e); + } + + } + + public static class SvtEvioHeaderMultisampleErrorBitException extends SvtEvioHeaderException { + + public SvtEvioHeaderMultisampleErrorBitException(String message) { + super(message); + } + + public SvtEvioHeaderMultisampleErrorBitException(SvtEvioHeaderMultisampleErrorBitException e) { + super(e); + } + + } + + public static class SvtEvioHeaderOFErrorException extends SvtEvioHeaderException { + + public SvtEvioHeaderOFErrorException(String message) { + super(message); + } + + public SvtEvioHeaderOFErrorException(SvtEvioHeaderOFErrorException e) { + super(e); + } + } + + public static class SvtEvioHeaderSkipCountException extends SvtEvioHeaderException { + + public SvtEvioHeaderSkipCountException(String message) { + super(message); + } + + public SvtEvioHeaderSkipCountException(SvtEvioHeaderSkipCountException e) { + super(e); + } + } + + + /** + * Private constructor to avoid instantiation + */ + private SvtEvioExceptions() { + // TODO Auto-generated constructor stub + } + + + +} Modified: java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java Tue Oct 6 15:16:07 2015 @@ -2,6 +2,8 @@ import java.util.List; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderException; +import org.hps.evio.SvtEvioExceptions.SvtEvioReaderException; import org.hps.record.svt.SvtHeaderDataInfo; import org.hps.util.Pair; import org.jlab.coda.jevio.BaseStructure; Modified: java/trunk/evio/src/main/java/org/hps/evio/TestRunSvtEvioReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/TestRunSvtEvioReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/TestRunSvtEvioReader.java Tue Oct 6 15:16:07 2015 @@ -2,6 +2,7 @@ import java.util.List; +import org.hps.evio.SvtEvioExceptions.SvtEvioHeaderException; import org.hps.record.svt.SvtHeaderDataInfo; import org.hps.util.Pair; import org.jlab.coda.jevio.BaseStructure;