Author: [log in to unmask] Date: Tue Dec 16 17:35:13 2014 New Revision: 1771 Log: Add list of rejected hits to the IC Clusterer API. Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterer.java Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterer.java ============================================================================= --- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterer.java (original) +++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterer.java Tue Dec 16 17:35:13 2014 @@ -87,6 +87,8 @@ static final double PHOTON_POS_C = 0.011; static final double PHOTON_POS_D = -0.037; static final double PHOTON_POS_E = 0.294; + + List<CalorimeterHit> currentRejectedHitList; public ClasInnerCalClusterer() { super(new String[] { "hitEnergyThreshold", "seedEnergyThreshold", "clusterEnergyThreshold", "minTime", "timeWindow", "timeCut" }, new double[] { 0.0075, 0.1, 0.3, 0.0, 20.0, 0. }); @@ -113,8 +115,8 @@ // Create a list to store the newly created clusters in. ArrayList<Cluster> clusterList = new ArrayList<Cluster>(); - // Create a list to store the rejected hits in. - ArrayList<CalorimeterHit> rejectedHitList = new ArrayList<CalorimeterHit>(); + // Reset the reference to the rejected hit list. + currentRejectedHitList = new ArrayList<CalorimeterHit>(); // Sort the list of hits by energy. Collections.sort(hitList, ENERGY_COMP); @@ -124,7 +126,7 @@ filterLoop: 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)))) { - rejectedHitList.add(hitList.get(index)); + currentRejectedHitList.add(hitList.get(index)); hitList.remove(index); } @@ -193,7 +195,7 @@ // remove from hit list and do not cluster. else if (isSeed && hit.getCorrectedEnergy() < seedEnergyThreshold) { hitList.remove(ii); - rejectedHitList.add(hit); + currentRejectedHitList.add(hit); ii--; } @@ -478,7 +480,7 @@ if (entry2.getKey() == entry2.getValue()) { if (seedEnergyTot.get(entry2.getKey()) < clusterEnergyThreshold) { // Not clustered for not passing cuts - rejectedHitList.add(entry2.getKey()); + currentRejectedHitList.add(entry2.getKey()); } else { @@ -488,8 +490,8 @@ // Loop over hits belonging to seeds for (Map.Entry<CalorimeterHit, CalorimeterHit> entry3 : hitSeedMap.entrySet()) { if (entry3.getValue() == entry2.getValue()) { - if (rejectedHitList.contains(entry2.getValue())) { - rejectedHitList.add(entry3.getKey()); + if (currentRejectedHitList.contains(entry2.getValue())) { + currentRejectedHitList.add(entry3.getKey()); } else { // Add hit to cluster cluster.addHit(entry3.getKey()); @@ -521,6 +523,14 @@ } // End event output loop. return clusterList; + } + + /** + * Get the list of rejected hits that was made from processing the last event. + * @return The list of rejected hit. + */ + public List<CalorimeterHit> getRejectedHitList() { + return this.currentRejectedHitList; } /**