Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker on MAIN
SeedCandidate.java+17-41.9 -> 1.10
Enable setting specific particle types to be followed by diagnostics

lcsim/src/org/lcsim/recon/tracking/seedtracker
SeedCandidate.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- SeedCandidate.java	4 Sep 2009 23:26:05 -0000	1.9
+++ SeedCandidate.java	13 Nov 2010 02:38:44 -0000	1.10
@@ -40,6 +40,7 @@
     private List<ScatterAngle> _scatters;
     private LinkedList<SeedLayer> _unchecked;
     private Set<MCParticle> _mcpset;
+    private Set<Integer> _pdgset;
     
     /**
      * Create an empty SeedCandidate.
@@ -50,6 +51,7 @@
         _hits = new LinkedList<HelicalTrackHit>();
         _msmap = new HashMap<HelicalTrackHit, MultipleScatter>();
         _mcpset = new HashSet<MCParticle>();
+        _pdgset = new HashSet<Integer>();
      }
     
     /**
@@ -91,6 +93,7 @@
         if (oldscat != null) _scatters = new ArrayList<ScatterAngle>(oldscat);
         setUncheckedLayers(seed.getUncheckedLayers());
         _mcpset.addAll(seed.getMCParticles());
+        _pdgset.addAll(seed.getTruePDG());
     }
     
     /**
@@ -212,13 +215,23 @@
         return _mcpset;
     }
 
+    public void setTruePDG(int pdgid) {
+        _pdgset.add(pdgid);
+    }
+    
+    public Set<Integer> getTruePDG() {
+        return _pdgset;
+    }
+
     public boolean isTrueSeed() {
-        boolean hasmuon = false;
+        if (_mcpset.size() == 0) return false;
+        if (_pdgset.size() == 0) return true;
         for (MCParticle mcp : _mcpset) {
-            if (Math.abs(mcp.getPDGID()) == 13) hasmuon = true;
+            for (int truepdg : _pdgset) {
+                if (mcp.getPDGID() == truepdg) return true;
+            }
         }
-        return _mcpset.size() > 0 && hasmuon;
-//        return _mcpset.size() > 0;
+        return false;
     }
 
     public double getBField() {
CVSspam 0.2.8