Print

Print


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);            
         }
     }    
 }