Print

Print


Author: [log in to unmask]
Date: Thu Sep 10 05:50:38 2015
New Revision: 3574

Log:
improved energy timing cuts in clustering

Modified:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java	Thu Sep 10 05:50:38 2015
@@ -64,7 +64,7 @@
     double minTime = 0.0;
 
     // Maximum time cut window range. Units in ns.
-    double timeWindow = 8.0;
+    double timeWindow = 6.0;
 
     // Make a map for quick calculation of the x-y position of crystal face
     Map<Point, double[]> correctedPositionMap = new HashMap<Point, double[]>();
@@ -73,7 +73,7 @@
 
     ReconClusterer() {
         super(new String[] { "hitEnergyThreshold", "seedEnergyThreshold", "clusterEnergyThreshold", "minTime", "timeWindow" }, 
-                new double[] { 0.0075, 0.05, 0.1, 0.0, 8.0 });
+                new double[] { 0.0075, 0.05, 0.1, 0.0, 6.0 });
     }
 
     void setUseTimeCut(boolean useTimeCut) {
@@ -383,10 +383,16 @@
             
             // Consider time cut-is this hit in same time window as seed?
             if (useTimeCut){
-            	if(Math.abs(ihit.getTime() - iseed.getTime()) < timeWindow)
+            	if(ihit.getCorrectedEnergy() < 0.1 && (Math.abs(ihit.getTime() - iseed.getTime()) < timeWindow))
             	{	
             		icluster.addHit(ihit);
             	}
+            
+            	else if (ihit.getCorrectedEnergy() > 0.1 && (Math.abs(ihit.getTime() - iseed.getTime()) < 2.0))
+            	{
+            		icluster.addHit(ihit);
+            	}
+            	
             } // end of using time cut
             else {icluster.addHit(ihit);}           
         }
@@ -400,15 +406,29 @@
             boolean inTimeWithA = false;
             boolean inTimeWithB = false;
         	// In time window with seedA?
-            if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < timeWindow){
-            	inTimeWithA = true;
-            }
-            
-            // In time window with seedB?
-            if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < timeWindow){
-            	inTimeWithB = true;
-            }
-                    	
+            if (commHit.getKey().getCorrectedEnergy() < 0.1){
+            	if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < timeWindow){
+            		inTimeWithA = true;
+            	}	
+            
+            	// In time window with seedB?
+            	if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < timeWindow){
+            		inTimeWithB = true;
+            	}
+            }
+            
+            else if (commHit.getKey().getCorrectedEnergy() > 0.1)
+            {
+            	if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < 2.0){
+            		inTimeWithA = true;
+            	}	
+            
+            	// In time window with seedB?
+            	if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < 2.0){
+            		inTimeWithB = true;
+            	}	
+            }
+                         	
             double eclusterA = seedToCluster.get(seedA).getEnergy();
             double eclusterB = seedToCluster.get(seedB).getEnergy();
             double fractionA = eclusterA / (eclusterA + eclusterB);