View Javadoc

1   /*
2    * DefaultStrategy.java
3    *
4    * Created on March 29, 2006, 3:45 PM
5    *
6    */
7   
8   package org.lcsim.recon.tracking.seedtracker;
9   
10  import java.util.List;
11  import java.util.ArrayList;
12  
13  import org.lcsim.recon.tracking.seedtracker.SeedLayer.SeedType;
14  import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
15  
16  /**
17   * Define the default strategy to be used by the SeedTracker tracking algorithm.  The default strategy may be
18   * over-ridden by calling the method SeedTracker.putStrategyList.
19   * @author Richard Partridge
20   * @version 1.0
21   */
22  public class DefaultStrategy {
23      private List<SeedStrategy> _strategylist;
24      
25      /** Creates a new instance of DefaultStrategy */
26      public DefaultStrategy() {
27          _strategylist = new ArrayList();
28          // Barrel only strategies
29  //        List<SeedLayer> tv012layers = new ArrayList();
30  //        tv012layers.add(new SeedLayer("VertexBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Seed));
31  //        tv012layers.add(new SeedLayer("VertexBarrel", 1, BarrelEndcapFlag.BARREL, SeedType.Seed));
32  //        tv012layers.add(new SeedLayer("VertexBarrel", 2, BarrelEndcapFlag.BARREL, SeedType.Seed));
33  //        tv012layers.add(new SeedLayer("VertexBarrel", 3, BarrelEndcapFlag.BARREL, SeedType.Confirm));
34  //        tv012layers.add(new SeedLayer("VertexBarrel", 4, BarrelEndcapFlag.BARREL, SeedType.Confirm));
35  //        tv012layers.add(new SeedLayer("TrackerBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Extend));
36  //        tv012layers.add(new SeedLayer("TrackerBarrel", 1, BarrelEndcapFlag.BARREL, SeedType.Extend));
37  //        tv012layers.add(new SeedLayer("TrackerBarrel", 2, BarrelEndcapFlag.BARREL, SeedType.Extend));
38  //        tv012layers.add(new SeedLayer("TrackerBarrel", 3, BarrelEndcapFlag.BARREL, SeedType.Extend));
39  //        tv012layers.add(new SeedLayer("TrackerBarrel", 4, BarrelEndcapFlag.BARREL, SeedType.Extend));
40          
41  //        _strategylist.add(new SeedStrategy("TV012",tv012layers));
42  
43          List<SeedLayer> tb345layers = new ArrayList();
44          tb345layers.add(new SeedLayer("VertexBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Extend));
45          tb345layers.add(new SeedLayer("VertexBarrel", 1, BarrelEndcapFlag.BARREL, SeedType.Extend));
46          tb345layers.add(new SeedLayer("VertexBarrel", 2, BarrelEndcapFlag.BARREL, SeedType.Extend));
47          tb345layers.add(new SeedLayer("VertexBarrel", 3, BarrelEndcapFlag.BARREL, SeedType.Extend));
48          tb345layers.add(new SeedLayer("VertexBarrel", 4, BarrelEndcapFlag.BARREL, SeedType.Extend));
49          tb345layers.add(new SeedLayer("TrackerBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Extend));
50          tb345layers.add(new SeedLayer("TrackerBarrel", 1, BarrelEndcapFlag.BARREL, SeedType.Confirm));
51          tb345layers.add(new SeedLayer("TrackerBarrel", 2, BarrelEndcapFlag.BARREL, SeedType.Seed));
52          tb345layers.add(new SeedLayer("TrackerBarrel", 3, BarrelEndcapFlag.BARREL, SeedType.Seed));
53          tb345layers.add(new SeedLayer("TrackerBarrel", 4, BarrelEndcapFlag.BARREL, SeedType.Seed));
54          
55          _strategylist.add(new SeedStrategy("TB345",tb345layers));
56          
57          List<BarrelEndcapFlag> belist = new ArrayList();
58          belist.add(BarrelEndcapFlag.ENDCAP_NORTH);
59          belist.add(BarrelEndcapFlag.ENDCAP_SOUTH);
60          
61          for (BarrelEndcapFlag beflag : belist) {
62              List<SeedLayer> td012layers = new ArrayList();
63              td012layers.add(new SeedLayer("TrackerEndcap", 0, beflag, SeedType.Seed));
64              td012layers.add(new SeedLayer("TrackerEndcap", 2, beflag, SeedType.Seed));
65              td012layers.add(new SeedLayer("TrackerEndcap", 4, beflag, SeedType.Seed));
66  //            _strategylist.add(new SeedStrategy("TD012"+beflag.toString(),td012layers));
67              
68              List<SeedLayer> tca = new ArrayList();
69              tca.add(new SeedLayer("TrackerBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Seed));
70              tca.add(new SeedLayer("TrackerBarrel", 1, BarrelEndcapFlag.BARREL, SeedType.Seed));
71              tca.add(new SeedLayer("TrackerEndcap", 4, beflag, SeedType.Seed));
72  //            _strategylist.add(new SeedStrategy("TCA"+beflag.toString(),tca));
73              
74              List<SeedLayer> tcb = new ArrayList();
75              tcb.add(new SeedLayer("TrackerBarrel", 0, BarrelEndcapFlag.BARREL, SeedType.Seed));
76              tcb.add(new SeedLayer("TrackerEndcap", 2, beflag, SeedType.Seed));
77              tcb.add(new SeedLayer("TrackerEndcap", 4, beflag, SeedType.Seed));
78  //            _strategylist.add(new SeedStrategy("TCB"+beflag.toString(),tcb));
79          }        
80      }
81      
82      /**
83       * Returns the default list of track-finding strategies
84       * @return List of strategies to be used by SeedTracker
85       */
86      public List<SeedStrategy> getStrategyList() {
87          return _strategylist;
88      }
89  }