View Javadoc

1   package org.lcsim.recon.tracking.seedtracker;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   /**
7    *
8    * @author Richard Partridge
9    */
10  public class SeedSectoring {
11  
12      private List<List<Sector>> _seedsectors;
13  
14      public SeedSectoring(HitManager hmanager, SeedStrategy strategy,
15              double bfield, boolean doSectorBinCheck) {
16  
17          _seedsectors = new ArrayList<List<Sector>>();
18  
19          FastCheck checker = new FastCheck(strategy, bfield, null);     
20          if(doSectorBinCheck) checker.setDoSectorBinCheck(hmanager.getSectorManager());
21          
22          //  Get the SeedLayers for this strategy
23          List<SeedLayer> layers = strategy.getLayers(SeedLayer.SeedType.Seed);
24          if (layers.size() != 3)
25              throw new RuntimeException("Illegal Strategy "+strategy.getName()+": Number of Seed Layers is not 3");
26  
27          List<Sector> slist0 = hmanager.getSectors(layers.get(0));
28          List<Sector> slist1 = hmanager.getSectors(layers.get(1));
29          List<Sector> slist2 = hmanager.getSectors(layers.get(2));
30  
31          for (Sector s0 : slist0) {
32              for (Sector s1 : slist1) {
33                  if (!checker.CheckSectorPair(s0, s1)) continue;
34                  for (Sector s2 : slist2) {
35                      if (!checker.CheckSectorPair(s0, s2)) continue;
36                      if (!checker.CheckSectorPair(s1, s2)) continue;
37                      List<Sector> slist = new ArrayList<Sector>();
38                      slist.add(s0);
39                      slist.add(s1);
40                      slist.add(s2);
41                      _seedsectors.add(slist);
42                  }
43              }
44          }
45      }
46  
47      public List<List<Sector>> SeedSectors() {
48          return _seedsectors;
49      }
50  }