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;
}
/**
|