Print

Print


Author: [log in to unmask]
Date: Tue Jan  6 14:18:15 2015
New Revision: 1890

Log:
Add set methods for cut values.  Remove boolean timeCut variable from cuts and use Driver method to set this instead.

Modified:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterDriver.java
    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/ReconClusterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterDriver.java	Tue Jan  6 14:18:15 2015
@@ -22,26 +22,53 @@
     
     // Flag to persist the rejected hits to the LCIO file (off by default).
     boolean writeRejectedHitCollection = false;
-    
-    ReconClusterer reconClusterer = null;
-        
+            
     public ReconClusterDriver() {
         clusterer = ClustererFactory.create("ReconClusterer");
     }
+    
+    public void setClusterer(Clusterer clusterer) {
+        throw new UnsupportedOperationException("This method should not be used on this Driver.");
+    }
+    
+    public void setClustererName(String clustererName) {
+        throw new UnsupportedOperationException("This method should not be used on this Driver.");
+    }
+    
+    public void setHitEnergyThreshold(double hitEnergyThreshold) {
+        getReconClusterer().getCuts().setValue("hitEnergyThreshold", hitEnergyThreshold);
+    }
+    
+    public void setSeedEnergyThreshold(double seedEnergyThreshold) {
+        getReconClusterer().getCuts().setValue("seedEnergyThreshold", seedEnergyThreshold);
+    }
+    
+    public void setClusterEnergyThreshold(double clusterEnergyThreshold) {
+        getReconClusterer().getCuts().setValue("clusterEnergyThreshold", clusterEnergyThreshold);
+    }
+    
+    public void setMinTime(double minTime) {
+        getReconClusterer().getCuts().setValue("minTime", minTime);
+    }
+    
+    public void setTimeWindow(double timeWindow) {
+        getReconClusterer().getCuts().setValue("timeWindow", timeWindow);
+    }
+    
+    public void setUseTimeCut(boolean useTimeCut) {
+        int timeCut = 0;
+        if (useTimeCut) {
+            timeCut = 1;
+        }
+    }    
         
     /**
      * Perform job initialization.  
      */
     public void startOfData() {
-        // Does the Clusterer have the right type?
-        if (!(clusterer instanceof ReconClusterer)) {
-            // The Clusterer does not appear to have the right type for this Driver!
-            throw new IllegalArgumentException("The Clusterer type " + this.clusterer.getClass().getCanonicalName() + " does not have the right type.");
-        }           
-        
         // Perform standard start of data initialization from super-class.
         super.startOfData();
-    }
+    }          
     
     /**
      * Set the name of the list of rejected hits.

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	Tue Jan  6 14:18:15 2015
@@ -58,7 +58,7 @@
     double clusterEnergyThreshold = 0.3;
 
     // Apply time cut to hits
-    boolean timeCut = false;
+    boolean useTimeCut = false;
 
     // Minimum time cut window range. Units in ns.
     double minTime = 0.0;
@@ -76,8 +76,12 @@
     private static final EnergyComparator ENERGY_COMP = new EnergyComparator();
 
     ReconClusterer() {
-        super(new String[] { "hitEnergyThreshold", "seedEnergyThreshold", "clusterEnergyThreshold", "minTime", "timeWindow", "timeCut" }, 
-                new double[] { 0.0075, 0.1, 0.3, 0.0, 20.0, 0. });
+        super(new String[] { "hitEnergyThreshold", "seedEnergyThreshold", "clusterEnergyThreshold", "minTime", "timeWindow" }, 
+                new double[] { 0.0075, 0.1, 0.3, 0.0, 20.0 });
+    }
+    
+    void setUseTimeCut(boolean useTimeCut) {
+        this.useTimeCut = useTimeCut;
     }
 
     public void initialize() {
@@ -89,7 +93,6 @@
         clusterEnergyThreshold = getCuts().getValue("clusterEnergyThreshold");
         minTime = getCuts().getValue("minTime");
         timeWindow = getCuts().getValue("timeWindow");
-        timeCut = (getCuts().getValue("timeCut") == 1.);
     }
     
     /**
@@ -126,7 +129,7 @@
 
         for (int index = hitList.size() - 1; index >= 0; index--) {
             // If the hit is below threshold or outside of time window, kill it.
-            if ((hitList.get(index).getCorrectedEnergy() < hitEnergyThreshold) || (timeCut && (hitList.get(index).getTime() < minTime || hitList.get(index).getTime() > (minTime + timeWindow)))) {
+            if ((hitList.get(index).getCorrectedEnergy() < hitEnergyThreshold) || (useTimeCut && (hitList.get(index).getTime() < minTime || hitList.get(index).getTime() > (minTime + timeWindow)))) {
                 rejectedHitList.add(hitList.get(index));
                 hitList.remove(index);
             }