Author: [log in to unmask] Date: Wed Jan 14 12:17:14 2015 New Revision: 1925 Log: Add method to get head bank if it exists. Modified: java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventUtilities.java Modified: java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventUtilities.java ============================================================================= --- java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventUtilities.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/evio/EvioEventUtilities.java Wed Jan 14 12:17:14 2015 @@ -6,8 +6,8 @@ import static org.hps.record.evio.EvioEventConstants.PHYSICS_EVENT_TAG; import static org.hps.record.evio.EvioEventConstants.PRESTART_EVENT_TAG; import static org.hps.record.evio.EvioEventConstants.SYNC_EVENT_TAG; + import org.jlab.coda.jevio.BaseStructure; - import org.jlab.coda.jevio.EvioEvent; /** @@ -114,4 +114,25 @@ return null; //we didn't find the bank; give up } } -} + + /** + * Get the head bank with event header that includes run number. + * This is a nested bank. + * @param evioEvent The EVIO event. + * @return The head bank or null if does not exist in this event. + */ + public static BaseStructure getHeadBank(EvioEvent evioEvent) { + if (evioEvent.getChildCount() > 0) { + for (BaseStructure topBank : evioEvent.getChildren()) { + if (topBank.getChildren() != null) { + for (BaseStructure nestedBank : topBank.getChildren()) { + if (nestedBank.getHeader().getTag() == EvioEventConstants.HEAD_BANK_TAG) { + return nestedBank; + } + } + } + } + } + return null; + } +}