lcsim/src/org/lcsim/recon/tracking/seedtracker
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() {