Print

Print


Author: [log in to unmask]
Date: Wed Jan  7 17:14:58 2015
New Revision: 1899

Log:
Add more plots to clusterer test and some other minor changes.

Modified:
    java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java

Modified: java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java
 =============================================================================
--- java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java	(original)
+++ java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java	Wed Jan  7 17:14:58 2015
@@ -1,5 +1,6 @@
 package org.hps.recon.ecal.cluster;
 
+import hep.aida.ICloud1D;
 import hep.aida.IHistogram1D;
 import hep.aida.IHistogram2D;
 
@@ -15,6 +16,7 @@
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.Cluster;
 import org.lcsim.event.EventHeader;
+import org.lcsim.event.base.BaseCluster;
 import org.lcsim.job.EventMarkerDriver;
 import org.lcsim.util.Driver;
 import org.lcsim.util.aida.AIDA;
@@ -55,13 +57,11 @@
     
     public void testReconClusterer() {
         //runClustererTest("ReconClusterer", new double[] { 0.0075, 0.1, 0.3, 0.0, 20.0 }, true);
-        //runClustererTest("ReconClusterer");
         runClustererTest("ReconClusterer", null, true, true);
     }
     
     public void testSimpleReconClusterer() {
         //runClustererTest("SimpleReconClusterer", new double[] { 0.0, 0.0, 9999.0, 0. }, true);
-        //runClustererTest("SimpleReconClusterer");
         runClustererTest("SimpleReconClusterer", null, true, true);
     }
     
@@ -76,7 +76,6 @@
     }
     
     public void testGTPOnlineClusterer() {
-        //runClustererTest("GTPOnlineClusterer");
         runClustererTest("GTPOnlineClusterer", null, true, true);
     }
     
@@ -115,8 +114,8 @@
         clusterDriver.setInputHitCollectionName("EcalHits");       
         clusterDriver.setOutputClusterCollectionName(clusterCollectionName);
         clusterDriver.setRaiseErrorNoHitCollection(true);
+        clusterDriver.setCalculateProperties(true);
         clusterDriver.getLogger().setLevel(Level.CONFIG);
-        //clusterDriver.getLogger().getHandlers()[0].flush();
         loop.add(clusterDriver);                         
         
         // This Driver generates plots and the output LCIO file.
@@ -139,15 +138,7 @@
         }
         loop.dispose();
     }
-    
-    /**
-     * Run the Clusterer test with default cuts, writing an LCIO output file and not checking seed hit. 
-     * @param clustererName The name of the Clusterer.
-     */
-    private void runClustererTest(String clustererName) {
-        runClustererTest(clustererName, null, true, false);
-    }
-    
+           
     /**
      * This Driver will check some of the basic Cluster values (currently just size and energy).
      * It also produces some QA plots for each Clusterer in its own output AIDA dir within the plot tree.
@@ -164,6 +155,12 @@
         IHistogram2D rawVsCorrectedH2D;
         IHistogram1D positionXH1D;
         IHistogram1D positionYH1D;
+        IHistogram1D positionZH1D;
+        IHistogram1D shapeParam1H1D;
+        IHistogram1D shapeParam2H1D;
+        IHistogram1D shapeParam3H1D;
+        ICloud1D ithetaC1D;
+        ICloud1D iphiC1D;
         String clusterCollectionName;
         String clustererName;        
         boolean checkSeedHit = true;
@@ -183,6 +180,12 @@
             rawVsCorrectedH2D = aida.histogram2D(clusterCollectionName + "/Raw vs Corrected Energy", 100, 0.0, 2.0, 100, 0.0, 2.0);
             positionXH1D = aida.histogram1D(clusterCollectionName + "/Position X", 300, 0., 1500.0);
             positionYH1D = aida.histogram1D(clusterCollectionName + "/Position Y", 500, 0., 1000.0);
+            positionZH1D = aida.histogram1D(clusterCollectionName + "/Position Z", 600, 1400., 1500.0);
+            shapeParam1H1D = aida.histogram1D(clusterCollectionName + "/Shape Param 1", 500, -5, 95);
+            shapeParam2H1D = aida.histogram1D(clusterCollectionName + "/Shape Param 2", 520, -10, 250);
+            shapeParam3H1D = aida.histogram1D(clusterCollectionName + "/Shape Param 3", 520, -10, 250);
+            ithetaC1D = aida.cloud1D(clusterCollectionName + "/ITheta");
+            iphiC1D = aida.cloud1D(clusterCollectionName + "/IPhi");
         }
         
         public void process(EventHeader event) {
@@ -193,6 +196,7 @@
                 if (checkSeedHit) {
                     assertEquals("First hit is not seed.", cluster.getCalorimeterHits().get(0), ClusterUtilities.findHighestEnergyHit(cluster));
                 }
+                assertTrue("Cluster properties not calculated.", !((BaseCluster)cluster).needsPropertyCalculation());
                 energyH1D.fill(cluster.getEnergy());
                 double rawEnergy = ClusterUtilities.computeRawEnergy(cluster);
                 uncorrectedEnergyH1D.fill(rawEnergy);
@@ -204,6 +208,12 @@
                 highestHitEnergyH1D.fill(ClusterUtilities.findHighestEnergyHit(cluster).getCorrectedEnergy());
                 positionXH1D.fill(Math.abs(cluster.getPosition()[0]));
                 positionYH1D.fill(Math.abs(cluster.getPosition()[1]));
+                positionZH1D.fill(Math.abs(cluster.getPosition()[2]));
+                shapeParam1H1D.fill(cluster.getShape()[0]);
+                shapeParam2H1D.fill(cluster.getShape()[1]);
+                shapeParam3H1D.fill(cluster.getShape()[2]);
+                iphiC1D.fill(Math.toDegrees(cluster.getIPhi()));
+                ithetaC1D.fill(Math.toDegrees(cluster.getITheta()));
             }            
             countH1D.fill(clusters.size());
         }