Author: [log in to unmask] Date: Wed Dec 3 12:51:37 2014 New Revision: 1637 Log: Integration test to check the conversion of test run EVIO to LCIO. Added: java/trunk/evio/src/test/java/org/hps/evio/LCSimTestRunEventBuilderTest.java (with props) Added: java/trunk/evio/src/test/java/org/hps/evio/LCSimTestRunEventBuilderTest.java ============================================================================= --- java/trunk/evio/src/test/java/org/hps/evio/LCSimTestRunEventBuilderTest.java (added) +++ java/trunk/evio/src/test/java/org/hps/evio/LCSimTestRunEventBuilderTest.java Wed Dec 3 12:51:37 2014 @@ -0,0 +1,76 @@ +package org.hps.evio; + +import java.io.File; +import java.net.URL; + +import junit.framework.TestCase; + +import org.jlab.coda.jevio.EvioEvent; +import org.jlab.coda.jevio.EvioReader; + +import org.lcsim.event.EventHeader; +import org.lcsim.util.cache.FileCache; + +import org.hps.conditions.database.DatabaseConditionsManager; +import org.hps.record.evio.EvioEventUtilities; + +/** + * Integration test to check the conversion of test run EVIO to LCIO + * + * @author Omar Moreno <[log in to unmask]> + * @date November 20, 2014 + */ +public class LCSimTestRunEventBuilderTest extends TestCase { + + //-----------------// + //--- Constants ---// + //-----------------// + private static final String DB_CONFIGURATION + = "/org/hps/conditions/config/conditions_database_testrun_2012.xml"; + private static final String DETECTOR = "HPS-TestRun-v5"; + private static final int RUN_NUMBER = 1351; + + public void testLCSimTestRunEventBuilder() throws Exception { + + // Configure the conditions system to retrieve test run conditions for + // run 1351 + DatabaseConditionsManager conditionsManager = new DatabaseConditionsManager(); + conditionsManager.setXmlConfig(DB_CONFIGURATION); + //conditionsManager.setDetector(DETECTOR, RUN_NUMBER); + + // Create the test run event builder + LCSimTestRunEventBuilder builder = new LCSimTestRunEventBuilder(); + conditionsManager.addConditionsListener(builder); + builder.setDetectorName("HPS-TestRun-v5"); + + // Retrieve the remote test file. The file currently being contains a + // subset of events from run 1351 + FileCache cache = new FileCache(); + File evioFile = cache.getCachedFile(new URL("http://www.lcsim.org/test/hps-java/hps1351_test.evio")); + + // Instantiate the EVIO reader and open the test file. If the file + // can't be found, throw a runtime exception + EvioReader reader = null; + try { + reader = new EvioReader(evioFile); + } catch (Exception e) { + throw new RuntimeException( + "[ " + this.getClass().getSimpleName() + " ]: EVIO file couldn't be opened."); + } + + // Loop through all EVIO events in the file and process them using the + // event builder. If the event is a physics event, process the event + // using the subdetector readers. + EvioEvent evioEvent = null; + while ((evioEvent = reader.nextEvent()) != null) { + reader.parseEvent(evioEvent); + builder.readEvioEvent(evioEvent); + if (EvioEventUtilities.isPhysicsEvent(evioEvent)) { + EventHeader lcsimEvent = builder.makeLCSimEvent(evioEvent); + } + } + + // Close the EVIO reader + reader.close(); + } +}