Print

Print


Author: [log in to unmask]
Date: Wed Jan  7 18:30:39 2015
New Revision: 1904

Log:
Add particle plots to test.

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 18:30:39 2015
@@ -8,6 +8,7 @@
 import java.io.IOException;
 import java.net.URL;
 import java.util.List;
+import java.util.Set;
 import java.util.logging.Level;
 
 import junit.framework.TestCase;
@@ -16,6 +17,7 @@
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.Cluster;
 import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
 import org.lcsim.event.base.BaseCluster;
 import org.lcsim.job.EventMarkerDriver;
 import org.lcsim.util.Driver;
@@ -33,7 +35,7 @@
  */
 public class ClustererTest extends TestCase {
     
-    static int nEvents = 100;
+    static int nEvents = 1000;
     static final String fileLocation = "http://www.lcsim.org/test/hps-java/MockDataReconTest.slcio";
     File inputFile;
     File testOutputDir;
@@ -115,6 +117,7 @@
         clusterDriver.setOutputClusterCollectionName(clusterCollectionName);
         clusterDriver.setRaiseErrorNoHitCollection(true);
         clusterDriver.setCalculateProperties(true);
+        clusterDriver.setSortHits(true);
         clusterDriver.getLogger().setLevel(Level.CONFIG);
         loop.add(clusterDriver);                         
         
@@ -161,6 +164,8 @@
         IHistogram1D shapeParam3H1D;
         ICloud1D ithetaC1D;
         ICloud1D iphiC1D;
+        IHistogram2D particleVsClusterEnergyH2D;
+        IHistogram1D particleMinusClusterEnergyH1D;
         String clusterCollectionName;
         String clustererName;        
         boolean checkSeedHit = true;
@@ -180,10 +185,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);
+            positionZH1D = aida.histogram1D(clusterCollectionName + "/Position Z", 1000, 0, 2000.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);
+            particleVsClusterEnergyH2D = aida.histogram2D(clusterCollectionName + "/MCParticle vs Cluster E", 200, 0, 2.0, 200, 0., 2.0);
+            particleMinusClusterEnergyH1D = aida.histogram1D(clusterCollectionName + "/MCParticle Minus Cluster E", 200, -2.0, 2.0);
             ithetaC1D = aida.cloud1D(clusterCollectionName + "/ITheta");
             iphiC1D = aida.cloud1D(clusterCollectionName + "/IPhi");
         }
@@ -213,7 +220,15 @@
                 shapeParam2H1D.fill(cluster.getShape()[1]);
                 shapeParam3H1D.fill(cluster.getShape()[2]);
                 iphiC1D.fill(Math.toDegrees(cluster.getIPhi()));
-                ithetaC1D.fill(Math.toDegrees(cluster.getITheta()));
+                ithetaC1D.fill(Math.toDegrees(cluster.getITheta()));                                
+                
+                Set<MCParticle> particles = ClusterUtilities.findMCParticles(cluster);
+                double particleEnergy = 0;
+                for (MCParticle particle : particles) {
+                    particleEnergy += particle.getEnergy();
+                }
+                particleVsClusterEnergyH2D.fill(particleEnergy, cluster.getEnergy());
+                particleMinusClusterEnergyH1D.fill(particleEnergy - cluster.getEnergy());
             }            
             countH1D.fill(clusters.size());
         }