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