1 /* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5 6 package org.lcsim.recon.tracking.seedtracker.strategybuilder; 7 8 import java.util.List; 9 import org.lcsim.recon.tracking.seedtracker.SeedStrategy; 10 11 /** 12 *This interface is mainly written for documentation purposes (since StrategyBuilder 13 * is somewhat full of code). 14 * 15 * @author cozzy 16 */ 17 public interface IStrategyBuilder { 18 19 /** 20 * Sets the location of the output XML file of strategy lists 21 * @param filename 22 */ 23 public void setOutput(String filename); 24 25 /** 26 * If symmetrize is true, then the Strategy will be force symmetrized between the two endcaps. 27 * @param symmetrize 28 */ 29 public void setSymmetrize(boolean symmetrize); 30 31 /** 32 * Sets the minimum number of layers that an MCParticle must go through to be considered 33 * for strategy finidng 34 * @param min 35 */ 36 public void setMinLayers(int min); 37 38 /** 39 * Sets the number of confirmation layers desired 40 * @param confirmed 41 */ 42 public void setNumConfirmLayers(int confirmed); 43 44 /** 45 * Sets the number of seed layers desired 46 * @param seed 47 */ 48 public void setNumSeedLayers(int seed); 49 50 /** 51 * Sets the LayerWeight object of the strategy builder. A layer weight is 52 * used to treat certain layers preferentially. If no layer weight specified, 53 * the default layer weight will be used. 54 * @param lw The LayerWeight object to use 55 */ 56 public void setLayerWeight(LayerWeight lw); 57 58 /** 59 * Sets the LayerWeight object of the strategy builder. A layer weight is 60 * used to treat certain layers preferentially. If no layer weight specified, 61 * the default layer weight will be used. 62 * @param layerWeightsFile A string representing the filename of an XML file representing a LayerWeight object 63 */ 64 public void setLayerWeight(String layerWeightsFile); 65 66 /** 67 * Set the prototype for the generated strategies. The values for cutoffs 68 * and such will be copied from the prototype. If not prototype is specified, 69 * the default values for SeedStrategy will be used. 70 * @param strategy The SeedStrategyObject to use 71 */ 72 public void setStrategyPrototype(SeedStrategy strategy); 73 74 /** 75 * Set the prototype for the generated strategies. The values for cutoffs 76 * and such will be copied from the prototype. If not prototype is specified, 77 * the default values for SeedStrategy will be used. 78 * @param strategiesFile Filename of XML file containing a list of strategies 79 * @param strategyNumber The (0-indexed) number of the strategy to use as a prototype 80 */ 81 public void setStrategyPrototype(String strategiesFile, int strategyNumber); 82 83 /** 84 * Set the prototype for the generated strategies. The values for cutoffs 85 * and such will be copied from the prototype. If not prototype is specified, 86 * the default values for SeedStrategy will be used. 87 * @param strategiesFile Filename of XML file containing a list of strategies. The first strategy will be used. 88 */ 89 90 public void setStrategyPrototype(String strategiesFile); 91 /** 92 * Set a starting strategy list. New strategies will only be generated for 93 * particles not already found by the starting strategy list. 94 * @param startList a List of SeedStrategy's 95 */ 96 public void setStartingStrategyList(List<SeedStrategy> startList); 97 98 /** 99 * Set a starting strategy list. New strategies will only be generated for 100 * particles not already found by the starting strategy list. 101 * @param startList a file containing a number of SeedStrategies 102 */ 103 public void setStartingStrategyList(String startingStrategiesFile); 104 105 /** 106 * Enables extra output if verbose is true. 107 * @param verbose 108 */ 109 public void setVerbose(boolean verbose); 110 111 /** 112 * Set the minimum unweighted score to create a strategy. This represents 113 * the minimum number of additional tracks in the test event that could 114 * theoretically be found if the strategy is included. 115 * @param score 116 */ 117 public void setMinimumUnweightedScore(int score); 118 119 /** 120 * Sets the particle filter applied to MCParticles during the processing step. 121 * MCParticles which do not pass this filter will not be considered for 122 * strategy finding. Note that MCParticles must also pass the MinLayers 123 * requirement regardless of the filter. 124 * 125 * If no filter is specified, a filter will be generated from dca, z0 and 126 * pt cutoffs present in the prototype SeedStrategy. 127 * 128 * If no filter is desired, AllPassFilter may be used. 129 * 130 * @param filter An object implementing the IParticleFilter interface 131 */ 132 public void setParticleFilter(IParticleFilter filter); 133 134 /** 135 * Sets the particle filter applied to MCParticles during the processing step. 136 * MCParticles which do not pass this filter will not be considered for 137 * strategy finding. Note that MCParticles must also pass the MinLayers 138 * requirement regardless of the filter. 139 * 140 * If no filter is specified, a filter will be generated from dca, z0 and 141 * pt cutoffs present in the prototype SeedStrategy. 142 * 143 * If no filter is desired, AllPassFilter may be used. 144 * 145 * @param filter Fully qualified class name for an object implementing the IParticleFilter interface 146 */ 147 public void setParticleFilter(String filterClassName); 148 }