Author: [log in to unmask] Date: Mon Jan 5 20:35:57 2015 New Revision: 1879 Log: Minor updates to Clusterer classes. Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/LegacyClusterer.java 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/SimpleReconClusterer.java Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/LegacyClusterer.java ============================================================================= --- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/LegacyClusterer.java (original) +++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/LegacyClusterer.java Mon Jan 5 20:35:57 2015 @@ -6,10 +6,10 @@ import java.util.Set; import org.hps.recon.ecal.ECalUtils; -import org.hps.recon.ecal.HPSEcalCluster; import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; +import org.lcsim.event.base.BaseCluster; /** * <p> @@ -80,8 +80,7 @@ // Did we find a seed? if (isSeed) { // Make a cluster from the hit list. - HPSEcalCluster cluster = new HPSEcalCluster(); - cluster.setSeedHit(hit); + BaseCluster cluster = new BaseCluster(); cluster.addHit(hit); for (CalorimeterHit clusHit : neighborHits) { cluster.addHit(clusHit); 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 Mon Jan 5 20:35:57 2015 @@ -23,29 +23,24 @@ // Flag to persist the rejected hits to the LCIO file (off by default). boolean writeRejectedHitCollection = false; - // Reference to the concrete Clusterer object for convenience. - ReconClusterer reconClusterer; + ReconClusterer reconClusterer = null; + + public ReconClusterDriver() { + clusterer = ClustererFactory.create("ReconClusterer"); + } /** * Perform job initialization. */ public void startOfData() { - if (clusterer == null) { - // Setup the Clusterer if it wasn't already initialized by a Driver argument. - this.setClustererName("ReconClusterer"); - } else { - // Does the Clusterer have the right type if there was a custom inialization parameter? - 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."); - } - } + // 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 a reference to the specific type of Clusterer. - reconClusterer = getClusterer(); } /** @@ -83,7 +78,7 @@ * Write the list of rejected hits to the event, according to current Driver parameter settings. */ void writeRejectedHitList(EventHeader event) { - List<CalorimeterHit> rejectedHitList = reconClusterer.getRejectedHitList(); + List<CalorimeterHit> rejectedHitList = getReconClusterer().getRejectedHitList(); if (rejectedHitList == null) { throw new RuntimeException("The rejectedHitList is null."); } @@ -99,4 +94,8 @@ event.getMetaData(rejectedHitList).setTransient(true); } } + + ReconClusterer getReconClusterer() { + return (ReconClusterer) this.clusterer; + } } Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/SimpleReconClusterer.java ============================================================================= --- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/SimpleReconClusterer.java (original) +++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/SimpleReconClusterer.java Mon Jan 5 20:35:57 2015 @@ -10,6 +10,7 @@ import org.lcsim.event.CalorimeterHit; import org.lcsim.event.Cluster; import org.lcsim.event.EventHeader; +import org.lcsim.event.base.BaseCluster; /** * <p> @@ -71,7 +72,7 @@ Collections.sort(sortedHitList, Collections.reverseOrder(new CalorimeterHit.CorrectedEnergyComparator())); // map from seed hit to cluster - Map<CalorimeterHit, HPSEcalCluster> seedToCluster = new HashMap<CalorimeterHit, HPSEcalCluster>(); + Map<CalorimeterHit, BaseCluster> seedToCluster = new HashMap<CalorimeterHit, BaseCluster>(); // Quick Map to access hits from cell IDs Map<Long, CalorimeterHit> idToHit = new HashMap<Long, CalorimeterHit>(); @@ -107,7 +108,7 @@ } if (biggestSeed == null) { // if no neighbors had more energy than this hit, this hit is a seed hitToSeed.put(hit, hit); - HPSEcalCluster cluster = new HPSEcalCluster(hit.getCellID()); + BaseCluster cluster = new HPSEcalCluster(); // FIXME: Replace with BaseCluster. clusters.add(cluster); seedToCluster.put(hit, cluster); } else { @@ -118,7 +119,7 @@ // add all hits to clusters for (CalorimeterHit hit : sortedHitList) { CalorimeterHit seed = hitToSeed.get(hit); - HPSEcalCluster cluster = seedToCluster.get(seed); + BaseCluster cluster = seedToCluster.get(seed); cluster.addHit(hit); }