lcsim/src/org/lcsim/contrib/uiowa/structural
diff -u -r1.2 -r1.3
--- GenericStructuralDriver.java 1 Oct 2005 01:34:42 -0000 1.2
+++ GenericStructuralDriver.java 14 Oct 2005 17:53:10 -0000 1.3
@@ -7,6 +7,8 @@
import java.util.List;
import java.util.Vector;
+import util.decision.DecisionMakerSingle;
+
/**
*
**/
@@ -17,7 +19,7 @@
abstract public void initializeEvent();
abstract public List<Cluster> getListOfBigClusters();
- abstract public boolean ignoreCluster(Cluster clus);
+ //abstract public boolean ignoreCluster(Cluster clus);
abstract public void initializeBigCluster(Cluster clus);
abstract public List<Cluster> findTrackSegments(Cluster clus);
abstract public List<Cluster> findClumps(Cluster clus);
@@ -27,6 +29,9 @@
abstract public void finalizeBigCluster(Cluster clus, List<Cluster> vMIPs, List<Cluster> vClumps);
abstract public void finalizeEvent();
+ protected DecisionMakerSingle<Cluster> m_ignoreClusterDecision;
+ public void setIgnoreClusterDecision(DecisionMakerSingle<Cluster> dec) { m_ignoreClusterDecision = dec; }
+ public DecisionMakerSingle<Cluster> getIgnoreClusterDecision() { return m_ignoreClusterDecision; }
public void process(EventHeader event)
{
@@ -35,36 +40,42 @@
initializeEvent();
List<Cluster> listOfBigClusters = getListOfBigClusters();
for (Cluster currentCluster : listOfBigClusters) {
- boolean ignoreThisCluster = ignoreCluster(currentCluster);
+ boolean ignoreThisCluster = !(m_ignoreClusterDecision.valid(currentCluster));
if (!ignoreThisCluster) {
initializeBigCluster(currentCluster);
List<Cluster> vClumps = findClumps(currentCluster);
List<Cluster> vMIPs = findTrackSegments(currentCluster);
// Consider MIP-MIP links, making sure to compare each pair
// once and once only:
- for (int iMIP=0; iMIP<vMIPs.size(); iMIP++) {
- Cluster track1 = (Cluster) (vMIPs.get(iMIP));
- // Compare to other MIPs:
- for (int jMIP=iMIP+1; jMIP<vMIPs.size(); jMIP++) {
- Cluster track2 = (Cluster) (vMIPs.get(jMIP));
- compareTrackSegmentToTrackSegment(track1, track2);
- }
- }
+ if (vMIPs != null) {
+ for (int iMIP=0; iMIP<vMIPs.size(); iMIP++) {
+ Cluster track1 = (Cluster) (vMIPs.get(iMIP));
+ // Compare to other MIPs:
+ for (int jMIP=iMIP+1; jMIP<vMIPs.size(); jMIP++) {
+ Cluster track2 = (Cluster) (vMIPs.get(jMIP));
+ compareTrackSegmentToTrackSegment(track1, track2);
+ }
+ }
+ }
// Now consider MIP-Clump links:
- for (Cluster track : vMIPs) {
- for (Cluster clump : vClumps) {
- compareTrackSegmentToClump(track, clump);
- }
- }
+ if (vMIPs != null && vClumps != null) {
+ for (Cluster track : vMIPs) {
+ for (Cluster clump : vClumps) {
+ compareTrackSegmentToClump(track, clump);
+ }
+ }
+ }
// Now consider Clump-Clump links:
- for (Cluster clump1 : vClumps) {
- for (Cluster clump2 : vClumps) {
- compareClumpToClump(clump1, clump2);
+ if (vClumps != null) {
+ for (Cluster clump1 : vClumps) {
+ for (Cluster clump2 : vClumps) {
+ compareClumpToClump(clump1, clump2);
+ }
}
}
// Finalize big cluster:
finalizeBigCluster(currentCluster, vMIPs, vClumps);
- }
+ }
}
// OK, done looping. We may want to do a final step, such as writing out
// the results: