Author: [log in to unmask] Date: Mon Jun 15 17:56:31 2015 New Revision: 3148 Log: Add assertions to ECal MC test. Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/EcalSimReconTest.java Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/EcalSimReconTest.java ============================================================================= --- java/trunk/integration-tests/src/test/java/org/hps/test/it/EcalSimReconTest.java (original) +++ java/trunk/integration-tests/src/test/java/org/hps/test/it/EcalSimReconTest.java Mon Jun 15 17:56:31 2015 @@ -46,6 +46,36 @@ private static final Integer RUN = 5000; /** + * Expected mean of high cluster energy in GeV. + */ + private static final double HIGH_CLUS_MEAN_E = 1.00; + + /** + * Acceptable delta of high cluster mean energy in GeV. + */ + private static final double HIGH_CLUS_DELTA_E = 0.02; + + /** + * Expected mean time of primary cluster in nanoseconds. + */ + private static final double CLUS_MEAN_T = 150; + + /** + * Acceptable delta of cluster time in nanoseconds. + */ + private static final double CLUS_DELTA_T = 10; + + /** + * Expected number of triggers. + */ + private static final int TRIGGERS = 650; + + /** + * Acceptable delta of trigger count. + */ + private static final int TRIGGER_DELTA = 3; + + /** * Run the test. * * @throws Exception if there is an uncaught exception thrown @@ -81,10 +111,14 @@ // Check the recon output. LCSimLoop loop = new LCSimLoop(); loop.setLCIORecordSource(reconFile); - loop.add(new EcalSimReconCheckDriver()); + EcalSimReconCheckDriver checkDriver = new EcalSimReconCheckDriver(); + loop.add(checkDriver); loop.loop(-1); loop.dispose(); System.out.println("EcalSimReconCheckDriver ran on " + loop.getTotalCountableConsumed() + " events"); + + // Check the number of triggers. + TestCase.assertEquals("Number of triggers out of range.", TRIGGERS, loop.getTotalCountableConsumed(), TRIGGER_DELTA); } /** @@ -117,8 +151,8 @@ /** * First hit time in highest energy cluster. */ - private final IHistogram1D clusTimeH1D = aida.histogram1D("Cluster Time", 500, -0.5, 499.5); - + private final IHistogram1D clusTimeH1D = aida.histogram1D("Cluster Time", 500, -0.5, 499.5); + /** * Process events and fill histograms from cluster collection. */ @@ -135,22 +169,28 @@ } /** - * Save histograms and perform checks on histogram statistics. + * Save histograms and perform checks on statistics. */ public void endOfData() { - System.out.println("clusCountH1D mean: " + clusCountH1D.mean()); + // Print some statistics. + System.out.println("clusCountH1D mean: " + clusCountH1D.mean()); System.out.println("clusEnergyH1D mean: " + clusEnergyH1D.mean()); System.out.println("clusHighEnergyH1D mean: " + clusHighEnergyH1D.mean()); System.out.println("clusTimeH1D mean: " + clusTimeH1D.mean()); - // TODO: Add test assertions here. - + // Save plots to AIDA file. try { aida.saveAs(new TestOutputFile(EcalSimReconTest.class, "plots.aida")); } catch (IOException e) { throw new RuntimeException(e); } + + // Check high cluster energy mean. + TestCase.assertEquals("High cluster energy was not within range.", HIGH_CLUS_MEAN_E, clusHighEnergyH1D.mean(), HIGH_CLUS_DELTA_E); + + // Check high cluster time mean. + TestCase.assertEquals("High cluster mean time was not within range.", CLUS_MEAN_T, clusTimeH1D.mean(), CLUS_DELTA_T); } } }