View Javadoc

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 }