2 added + 3 modified, total 5 files
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -N AbstractStrategyBuilder.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ AbstractStrategyBuilder.java 26 Sep 2008 23:36:07 -0000 1.1
@@ -0,0 +1,43 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.strategybuilder;
+
+import java.io.File;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
+import org.lcsim.util.Driver;
+
+/**
+ * This class contains implementations for some convenience methods in IStrategyBuilder
+ * @author cozzy
+ */
+public abstract class AbstractStrategyBuilder extends Driver implements IStrategyBuilder{
+
+ public void setStartingStrategyList(String startingStrategies) {
+ setStartingStrategyList(StrategyXMLUtils.getStrategyListFromFile(new File(startingStrategies)));
+ }
+
+ public void setStrategyPrototype(String strategiesFile, int strategyNumber) {
+ setStrategyPrototype(StrategyXMLUtils.getStrategyListFromFile(new File(strategiesFile)).get(strategyNumber));
+ }
+
+ public void setLayerWeight(String layerWeightsFile){
+ setLayerWeight(LayerWeight.getLayerWeightFromFile(new File(layerWeightsFile)));
+ }
+
+ public void setParticleFilter(String filterClassName) {
+ try {
+ setParticleFilter((IParticleFilter) Class.forName(filterClassName).newInstance());
+ } catch (ClassNotFoundException cfne) {
+ System.out.println("WARNING: Class "+filterClassName+ " not found :'(");
+ } catch (InstantiationException ie){
+ System.out.println("WARNING: Class "+filterClassName+ " could not be instantiated. Does the constructor take arguments?");
+ } catch (IllegalAccessException iae){
+ System.out.println("WARNING: IllegalAccessException? WTF does that mean?");
+ } catch (ClassCastException cce){
+ System.out.println("WARNING: Unable to cast "+filterClassName+ " as a IParticleFilter.");
+ }
+ }
+}
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.1 -r1.2
--- RunStrategyBuilder.java 27 Aug 2008 17:55:49 -0000 1.1
+++ RunStrategyBuilder.java 26 Sep 2008 23:36:07 -0000 1.2
@@ -115,32 +115,18 @@
builder.setSymmetrize(symmetrize);
if (startingStrategies.length() > 0)
- builder.setStartingStrategyList(StrategyXMLUtils.getStrategyListFromFile(new File(startingStrategies)));
+ builder.setStartingStrategyList(startingStrategies);
if (prototypeFile.length() > 0)
- builder.setStrategyPrototype(StrategyXMLUtils.getStrategyListFromFile(new File(prototypeFile)).get(prototypeN));
+ builder.setStrategyPrototype(prototypeFile,prototypeN);
if (lwfn.length() > 0)
- builder.setLayerWeight(LayerWeight.getLayerWeightFromFile(new File(lwfn)));
+ builder.setLayerWeight(lwfn);
// if a non-default MCParticle Filter is set, then try to load it and assign it.
if (filterClassName.length() > 0){
- try {
- builder.setParticleFilter((IParticleFilter) Class.forName(filterClassName).newInstance());
- } catch (ClassNotFoundException cfne) {
- System.out.println("Class "+filterClassName+ " not found :'( Exiting.");
- System.exit(123);
- } catch (InstantiationException ie){
- System.out.println("Class "+filterClassName+ " could not be instantiated. Does the constructor take arguments? Exiting.");
- System.exit(234);
- } catch (IllegalAccessException iae){
- System.out.println("IllegalAccessException? WTF does that mean? Exiting.");
- System.exit(345);
- } catch (ClassCastException cce){
- System.out.println("Unable to cast "+filterClassName+ " as a IParticleFilter. Exiting");
- System.exit(456);
- }
+ builder.setParticleFilter(filterClassName);
}
// check data file existence
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.1 -r1.2
--- StrategyBuilder.java 27 Aug 2008 17:55:49 -0000 1.1
+++ StrategyBuilder.java 26 Sep 2008 23:36:07 -0000 1.2
@@ -42,7 +42,7 @@
*
* @author cozzy
*/
-public class StrategyBuilder extends Driver implements IStrategyBuilder {
+public class StrategyBuilder extends AbstractStrategyBuilder implements IStrategyBuilder {
public static final String defaultOutputFile = System.getProperties().getProperty("java.io.tmpdir")+
System.getProperties().getProperty("file.separator")+
lcsim/src/org/lcsim/recon/tracking/seedtracker/strategybuilder
diff -u -r1.1 -r1.2
--- IStrategyBuilder.java 27 Aug 2008 17:55:49 -0000 1.1
+++ IStrategyBuilder.java 26 Sep 2008 23:36:07 -0000 1.2
@@ -54,6 +54,7 @@
* @param lw
*/
public void setLayerWeight(LayerWeight lw);
+ public void setLayerWeight(String layerWeightsFile);
/**
* Set the prototype for the generated strategies. The values for cutoffs
@@ -62,6 +63,7 @@
* @param strategy
*/
public void setStrategyPrototype(SeedStrategy strategy);
+ public void setStrategyPrototype(String strategiesFile, int strategyNumber);
/**
* Set a starting strategy list. New strategies will only be generated for
@@ -69,6 +71,7 @@
* @param startList
*/
public void setStartingStrategyList(List<SeedStrategy> startList);
+ public void setStartingStrategyList(String startingStrategiesFile);
/**
* Enables extra output if verbose is true.
@@ -98,4 +101,5 @@
* @param filter
*/
public void setParticleFilter(IParticleFilter filter);
+ public void setParticleFilter(String filterClassName);
}
lcsim/resources/org/lcsim/recon/tracking/seedtracker/strategybuilder/weights
diff -N default_weights_sid02.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ default_weights_sid02.xml 26 Sep 2008 23:36:07 -0000 1.1
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LayerWeight xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/layerweights.xsd">
+
+
+<!--
+ By Cosmin Deaconu
+
+ These weights were found to work satisfactorily with ngle
+ muon events. They should certainly not be condered optimal...
+
+ Unfortunately, coming up with good weights seems to be a little bit of
+ black magic...
+
+ Score is calculated with the following formula:
+
+ N*w*(c+m*a^e)
+
+ N = Number of new tracks that could theoretically be found
+ w = Average weight of subset layers
+ a = Adjacence, the number of times in the training event that the
+ subset layers are adjacent (i.e., they are hit consecutively by an
+ MCParticle).
+ c = AdjacenceConstant
+ m = AdjacenceMultiplier
+ e = AdjacenceExponent
+
+
+ -->
+
+
+
+ <!--Default used for any not already defined-->
+ <DefaultReadoutEfficiency>0.99</DefaultReadoutEfficiency>
+ <DefaultWeight>1.0</DefaultWeight>
+
+ <TargetDetector
+divide_by_two_in_tracker_endcap="true">sid02</TargetDetector>
+
+ <!-- Adjacence modifiers (see above for formula)-->
+ <AdjacenceConstant>2</AdjacenceConstant>
+ <AdjacenceMultiplier>1</AdjacenceMultiplier>
+ <AdjacenceExponent>0.1</AdjacenceExponent>
+
+ <Layers>
+
+ <!--Barrel-->
+
+ <Layer layer_number="4" detector_name="TrackerBarrel" be_flag="BARREL">3.0</Layer>
+ <Layer layer_number="3" detector_name="TrackerBarrel" be_flag="BARREL">2.08</Layer>
+ <Layer layer_number="2" detector_name="TrackerBarrel" be_flag="BARREL">2.07</Layer>
+ <Layer layer_number="1" detector_name="TrackerBarrel" be_flag="BARREL">2.06</Layer>
+ <Layer layer_number="0" detector_name="TrackerBarrel" be_flag="BARREL">2</Layer>
+ <Layer layer_number="4" detector_name="VertexBarrel" be_flag="BARREL">0.504</Layer>
+ <Layer layer_number="3" detector_name="VertexBarrel" be_flag="BARREL">0.503</Layer>
+ <Layer layer_number="2" detector_name="VertexBarrel" be_flag="BARREL">0.502</Layer>
+ <Layer layer_number="1" detector_name="VertexBarrel" be_flag="BARREL">0.501</Layer>
+ <Layer layer_number="0" detector_name="VertexBarrel" be_flag="BARREL">0.500</Layer>
+
+
+ <!--North Endcap-->
+
+ <Layer layer_number="3" detector_name="TrackerEndcap" be_flag="ENDCAP_NORTH">1.011</Layer>
+ <Layer layer_number="2" detector_name="TrackerEndcap" be_flag="ENDCAP_NORTH">1.010</Layer>
+ <Layer layer_number="1" detector_name="TrackerEndcap" be_flag="ENDCAP_NORTH">1.009</Layer>
+ <Layer layer_number="0" detector_name="TrackerEndcap" be_flag="ENDCAP_NORTH">1.008</Layer>
+
+ <Layer layer_number="2" detector_name="TrackerForward" be_flag="ENDCAP_NORTH">1.007</Layer>
+ <Layer layer_number="1" detector_name="TrackerForward" be_flag="ENDCAP_NORTH">1.006</Layer>
+ <Layer layer_number="0" detector_name="TrackerForward" be_flag="ENDCAP_NORTH">1.005</Layer>
+
+ <Layer layer_number="3" detector_name="VertexEndcap" be_flag="ENDCAP_NORTH">0.504</Layer>
+ <Layer layer_number="2" detector_name="VertexEndcap" be_flag="ENDCAP_NORTH">0.503</Layer>
+ <Layer layer_number="1" detector_name="VertexEndcap" be_flag="ENDCAP_NORTH">0.502</Layer>
+ <Layer layer_number="0" detector_name="VertexEndcap" be_flag="ENDCAP_NORTH">0.501</Layer>
+
+ <!--South Endcap-->
+
+ <Layer layer_number="3" detector_name="TrackerEndcap" be_flag="ENDCAP_SOUTH">1.011</Layer>
+ <Layer layer_number="2" detector_name="TrackerEndcap" be_flag="ENDCAP_SOUTH">1.010</Layer>
+ <Layer layer_number="1" detector_name="TrackerEndcap" be_flag="ENDCAP_SOUTH">1.009</Layer>
+ <Layer layer_number="0" detector_name="TrackerEndcap" be_flag="ENDCAP_SOUTH">1.008</Layer>
+
+ <Layer layer_number="2" detector_name="TrackerForward" be_flag="ENDCAP_SOUTH">1.007</Layer>
+ <Layer layer_number="1" detector_name="TrackerForward" be_flag="ENDCAP_SOUTH">1.006</Layer>
+ <Layer layer_number="0" detector_name="TrackerForward" be_flag="ENDCAP_SOUTH">1.005</Layer>
+
+ <Layer layer_number="3" detector_name="VertexEndcap" be_flag="ENDCAP_SOUTH">0.504</Layer>
+ <Layer layer_number="2" detector_name="VertexEndcap" be_flag="ENDCAP_SOUTH">0.503</Layer>
+ <Layer layer_number="1" detector_name="VertexEndcap" be_flag="ENDCAP_SOUTH">0.502</Layer>
+ <Layer layer_number="0" detector_name="VertexEndcap" be_flag="ENDCAP_SOUTH">0.501</Layer>
+
+ </Layers>
+</LayerWeight>
+
CVSspam 0.2.8