lcsim/src/org/lcsim/contrib/seedtracker
diff -u -r1.3 -r1.4
--- SeedTrackerDiagnostics.java 21 Apr 2008 09:07:21 -0000 1.3
+++ SeedTrackerDiagnostics.java 22 Apr 2008 22:57:06 -0000 1.4
@@ -28,7 +28,7 @@
private EventHeader ev;
private HitManager hm;
private double purity_cutoff = 0.0;
-
+ private String prefix = "";
public SeedTrackerDiagnostics(EventHeader event, double b_field, HitManager hm){
this.ev = event;
@@ -42,7 +42,7 @@
* @param strategy
*/
public void performDiagnostics(List<SeedCandidate> seedlist, SeedStrategy strategy){
-
+
Map<SeedCandidate,SeedValidator> vmap = generateValidators(seedlist);
makePurityPlots(vmap);
Set<MCParticle> likelyMCs = generateLikelyMCSet(vmap);
@@ -58,6 +58,14 @@
purity_cutoff = new_purity_cutoff;
}
+ /**
+ * Sets the prefix to be appended to the beginning of each plot (for example, a strategy name
+ * @param str the new prefix
+ */
+ public void setPrefix(String str){
+ this.prefix = str;
+ }
+
private Map<SeedCandidate,SeedValidator> generateValidators(List<SeedCandidate> seedlist) {
Map<SeedCandidate,SeedValidator> ret = new HashMap<SeedCandidate,SeedValidator>();
@@ -89,21 +97,21 @@
SeedValidator v = vmap.get(s);
if (v.getVerdict().isGoodValue()) {
- aida.cloud1D("Good seeds chisq").fill(s.getHelix().chisqtot());
- aida.cloud1D("Good seeds numhits").fill(s.getHits().size());
- aida.cloud1D("Good seeds pt").fill(s.getHelix().pT(5.0));
+ aida.cloud1D(prefix+"Good seeds chisq").fill(s.getHelix().chisqtot());
+ aida.cloud1D(prefix+"Good seeds numhits").fill(s.getHits().size());
+ aida.cloud1D(prefix+"Good seeds pt").fill(s.getHelix().pT(5.0));
} else {
- aida.cloud1D("Bad seeds chisq").fill(s.getHelix().chisqtot());
- aida.cloud1D("Bad seeds numhits").fill(s.getHits().size());
- aida.cloud1D("Bad seeds pt").fill(s.getHelix().pT(5.0));
+ aida.cloud1D(prefix+"Bad seeds chisq").fill(s.getHelix().chisqtot());
+ aida.cloud1D(prefix+"Bad seeds numhits").fill(s.getHits().size());
+ aida.cloud1D(prefix+"Bad seeds pt").fill(s.getHelix().pT(5.0));
}
- aida.cloud1D("purity").fill(v.getPurity());
- aida.cloud2D("purity vs. numHits").fill(v.getPurity(), s.getHits().size());
- aida.cloud2D("purity vs. pt").fill(v.getPurity(), s.getHelix().pT(5.0));
- aida.cloud2D("purity vs. cth").fill(v.getPurity(), s.getHelix().cth());
- aida.cloud2D("purity vs. chisq").fill(v.getPurity(), s.getHelix().chisqtot());
- aida.cloud2D("purity cs. dca").fill(v.getPurity(), s.getHelix().dca());
+ aida.cloud1D(prefix+"purity").fill(v.getPurity());
+ aida.cloud2D(prefix+"purity vs. numHits").fill(v.getPurity(), s.getHits().size());
+ aida.cloud2D(prefix+"purity vs. pt").fill(v.getPurity(), s.getHelix().pT(5.0));
+ aida.cloud2D(prefix+"purity vs. cth").fill(v.getPurity(), s.getHelix().cth());
+ aida.cloud2D(prefix+"purity vs. chisq").fill(v.getPurity(), s.getHelix().chisqtot());
+ aida.cloud2D(prefix+"purity cs. dca").fill(v.getPurity(), s.getHelix().dca());
}
}
@@ -112,7 +120,8 @@
FindableTracks findable = new FindableTracks(strat, hm);
findable.setBField(b_field);
- List<MCParticle> MCs = ev.getMCParticles();
+ List<MCParticle> MCs = new ArrayList<MCParticle>();
+ MCs.addAll(ev.getMCParticles());
Iterator iter = MCs.iterator();
@@ -124,7 +133,7 @@
}
int numFindable = MCs.size();
- aida.cloud1D("Number findable").fill(numFindable);
+ aida.cloud1D(prefix+"Number findable").fill(numFindable);
// remove all the MC's we've found... this gives us findable - found
@@ -132,12 +141,14 @@
int numFound = numFindable - MCs.size(); // findable - (findable - found) = found
- aida.cloud1D("Num found (purity cutoff="+purity_cutoff+") ").fill(numFound);
+ aida.cloud1D(prefix+"Num found (purity cutoff="+purity_cutoff+") ").fill(numFound);
if(numFindable > 0){
double eff = (double) numFound / (double) numFindable;
- aida.cloud1D("Efficiency").fill(eff);
+ aida.cloud1D(prefix+"Efficiency").fill(eff);
}
}
+
}
+
\ No newline at end of file