1 package org.lcsim.recon.tracking.seedtracker;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6
7
8
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
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 }