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.steeringwrappers;
7   
8   import java.io.File;
9   import org.lcsim.recon.tracking.seedtracker.*;
10  import org.lcsim.util.Driver;
11  
12  /**
13   *This is a wrapper around SeedTracker so that one can instantiate SeedTracker 
14   * and a list of strategies without a constructor. This is necessary when 
15   * using Jeremy's XML steering driver 
16   * @author cozzy
17   */
18  public class SeedTrackerWrapper extends Driver{
19      
20      private boolean added = false;
21      private SeedTracker seedTracker = null;
22      
23      public void setStrategyFile(String file) {
24          if(added) throw new AlreadyAddedException();
25          seedTracker = new SeedTracker(StrategyXMLUtils.getStrategyListFromFile(new File(file)));
26          add(seedTracker); 
27          added = true; 
28      }
29      
30      public void setStrategyResource(String resource) {
31          if(added) throw new AlreadyAddedException(); 
32          seedTracker = new SeedTracker(StrategyXMLUtils.getStrategyListFromResource(resource)); 
33          added = true; 
34      }
35      
36      public void setStrategyResourceWithDefaultPrefix(String resource) {
37          setStrategyResource(StrategyXMLUtils.getDefaultStrategiesPrefix() + resource);
38      }
39      
40      public void setTimingPlots(boolean timing) {
41      	if (!added) throw new NotAddedException();
42      	seedTracker.setTimingPlots(timing);
43      }
44      
45      public void setTrkCollectionName(String name) {
46      	if (!added) throw new NotAddedException();
47      	seedTracker.setTrkCollectionName(name);
48  	}
49      
50      public void setInputCollectionName(String name) {
51      	seedTracker.setInputCollectionName(name);
52      }
53      
54      public void setMaxFit(int maxfit) {
55      	seedTracker.setMaxFit(maxfit);
56      }
57      
58      public void setBField(double bfield) {
59      	seedTracker.setBField(bfield);
60      }
61      
62      class AlreadyAddedException extends RuntimeException {
63          public AlreadyAddedException(){
64              super("SeedTracker already has been added"); 
65          }
66      }
67      
68      class NotAddedException extends RuntimeException {
69      	public NotAddedException(){
70      		super("SeedTracker has not been added, yet");
71      	}
72      }
73  }