1 added + 5 modified, total 6 files
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -N SubsetScore.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SubsetScore.java 10 Oct 2008 06:10:46 -0000 1.1
@@ -0,0 +1,35 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.strategybuilder;
+
+/**
+ *This is a not-very smart class to keep track of scores...
+ * @author cozzy
+ */
+public class SubsetScore {
+
+ private double score;
+ private int numTracks;
+ private int adjacency;
+
+ public SubsetScore(double score, int numTracks, int adjacency){
+ this.score =score;
+ this.numTracks = numTracks;
+ this.adjacency = adjacency;
+ }
+
+ public double score() {
+ return score;
+ }
+
+ public int numTracks() {
+ return numTracks;
+ }
+
+ public double adjacency() {
+ return adjacency;
+ }
+}
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.1 -r1.2
--- StrategyBuilderUtils.java 27 Aug 2008 17:55:49 -0000 1.1
+++ StrategyBuilderUtils.java 10 Oct 2008 06:10:46 -0000 1.2
@@ -15,13 +15,14 @@
import org.lcsim.recon.tracking.seedtracker.SeedLayer.SeedType;
import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLMetadata;
/**
* StrategyBuilder was getting too bloated, so some of the code has been moved here
* @author cozzy
*/
public class StrategyBuilderUtils {
-
+
private static final BarrelEndcapFlag[] beArray =
new BarrelEndcapFlag[]{BarrelEndcapFlag.ENDCAP_NORTH, BarrelEndcapFlag.ENDCAP_SOUTH};
@@ -35,7 +36,7 @@
*
* @param strat_list
*/
- static void symmetrizeStrategies (List<SeedStrategy> strat_list) {
+ static void symmetrizeStrategies (List<SeedStrategy> strat_list, StrategyXMLMetadata meta) {
/**
* There are 3 interesting cases here:
@@ -75,7 +76,10 @@
for (BarrelEndcapFlag be : beArray) {
SeedStrategy newstrat = makeMirroredLayer(next, be);
symmetrized.add(newstrat);
+ meta.strategyComments.put(newstrat, meta.strategyComments.get(next)+
+ "\n\t\t\tNOTE: These layers are combined for both endcaps of this symmetrized strategy\n\t\t");
}
+ meta.strategyComments.remove(next);
extendOnlyFlag = false;
break;
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.2 -r1.3
--- StrategyBuilder.java 26 Sep 2008 23:36:07 -0000 1.2
+++ StrategyBuilder.java 10 Oct 2008 06:10:46 -0000 1.3
@@ -226,31 +226,34 @@
if (verbose) System.out.println("Layer set has "+setset.size()+" entries.");
//map from a final_set to all other associated layers to generate extension layers
Map<Set<DumbLayer>, Set<DumbLayer>> extendmap = new HashMap<Set<DumbLayer>,Set<DumbLayer>>();
+ Map<Set<DumbLayer>,SubsetScore> scoremap = new HashMap<Set<DumbLayer>,SubsetScore>();
+
+ SubsetScore score = new SubsetScore(0,0,0);
//Figure out a "good" set of four-layer combinations by brute force...
//We have a scoring algorithm and we find the maximal scoring one.
while (true){
if (usedSets.size() == setset.size()) break; //if we've used all sets, then we're done!
Set<DumbLayer> max = all_subsets.get(0);
- double maxScore = 0;
+ SubsetScore maxScore = new SubsetScore(0,0,0);
//get the highest scoring strategy...
for (Set<DumbLayer> trial : all_subsets){
- double score = scorer.getScore(trial);
- if (score > maxScore) {
+ score = scorer.getScoreObject(trial);
+ if (score.score() > maxScore.score()) {
maxScore = score;
max = trial;
}
}
//ignore anything that has too few occurrences...
- if (scorer.getUnweightedScore(max) <= minUnweightedScore) break;
+ if (maxScore.numTracks() <= minUnweightedScore) break;
scorer.markUsed(max);
final_sets.add(max);
extendmap.put(max, new HashSet<DumbLayer>());
-
+ scoremap.put(max,maxScore);
for (Set<DumbLayer> this_set : setset) {
if (this_set.containsAll(max)) { //If this set contains all the layers in max, it should be findable!
@@ -279,6 +282,8 @@
strat_list.addAll(startingStrategies);
+ StrategyXMLMetadata meta = new StrategyXMLMetadata();
+
//create Strategies from final_sets... this part is klunky right now.
for (Set<DumbLayer> s : final_sets) {
@@ -372,9 +377,16 @@
SeedStrategy stgy = new SeedStrategy(name,lyrlst);
stgy.copyCutoffsFromStrategy(prototype);
strat_list.add(stgy);
+
+ //Write in scoring information about each strategy
+ score = scoremap.get(s);
+ String comment = "AUTOGEN STATISTICS: \n\t\t\tScore: "+score.score() + "\n";
+ comment += "\t\t\tUnweighted Score (num new tracks): "+score.numTracks() + "\n";
+ comment += "\t\t\tAdjacency: "+score.adjacency() +"\n\t\t";
+ meta.strategyComments.put(stgy, comment);
}
- StrategyXMLMetadata meta = new StrategyXMLMetadata();
+
String comment = "Strategy list Autogenerated by Strategy Builder on "+new Date()+".";
meta.targetDetector = detectorName;
meta.comment = comment;
@@ -382,7 +394,7 @@
//If symmetrizing, make Endcap Layers for both north and south
if (symmetrize) {
if (verbose) System.out.println("Symmetrizing...");
- StrategyBuilderUtils.symmetrizeStrategies(strat_list);
+ StrategyBuilderUtils.symmetrizeStrategies(strat_list, meta);
}
StrategyXMLUtils.writeStrategyListToFile(strat_list, new File(outputFile), meta);
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.1 -r1.2
--- SubsetScorer.java 27 Aug 2008 17:55:49 -0000 1.1
+++ SubsetScorer.java 10 Oct 2008 06:10:46 -0000 1.2
@@ -41,8 +41,6 @@
adjacencemap.put(set,1);
}
}
-
-// System.out.println(adjacencemap.toString());
}
public void setLayerWeight(LayerWeight lw) {
@@ -50,6 +48,13 @@
}
+ public SubsetScore getScoreObject(Set<DumbLayer> testset) {
+
+ return new SubsetScore(getScore(testset), getUnweightedScore(testset), getAdjacence(testset));
+
+ }
+
+
//s * w * (a + b * adjacence ^ c)
//
public double getScore(Set<DumbLayer> testSet) {
@@ -63,7 +68,7 @@
}
- public double getUnweightedScore(Set<DumbLayer> testSet){
+ public int getUnweightedScore(Set<DumbLayer> testSet){
int ret = 0;
for (Set<DumbLayer> s : setmap.keySet()){
lcsim/src/org/lcsim/recon/tracking/seedtracker
diff -u -r1.3 -r1.4
--- StrategyXMLUtils.java 27 Aug 2008 19:28:50 -0000 1.3
+++ StrategyXMLUtils.java 10 Oct 2008 06:10:47 -0000 1.4
@@ -192,6 +192,11 @@
for (SeedStrategy strat : strategyList){
Element strategy = new Element("Strategy");
+
+ if (meta.strategyComments.containsKey(strat)){
+ strategy.addContent(new Comment(meta.strategyComments.get(strat)));
+ }
+
strategy.setAttribute("name",strat.getName());
strategy.addContent(new Comment("Cutoffs"));
strategy.addContent(new Element("MinPT").addContent(String.valueOf(strat.getMinPT())));
lcsim/src/org/lcsim/recon/tracking/seedtracker
diff -u -r1.1 -r1.2
--- StrategyXMLMetadata.java 27 Aug 2008 17:59:02 -0000 1.1
+++ StrategyXMLMetadata.java 10 Oct 2008 06:10:47 -0000 1.2
@@ -5,13 +5,16 @@
package org.lcsim.recon.tracking.seedtracker;
+import java.util.HashMap;
+import java.util.Map;
+
/**
- *
+ * A not very smart data object...
* @author cozzy
*/
public class StrategyXMLMetadata {
public String comment = null;
public String targetDetector = null;
-
+ public Map<SeedStrategy, String> strategyComments = new HashMap<SeedStrategy, String>();
}
CVSspam 0.2.8