22def getSecondStagePlanes(flags):
23 """ Default logic for selecting logical layer / plane configuration for first stage.
24 This used to be hardcoded in the map maker header file. Now it's hardcoded here."""
25 if (not flags.Trigger.FPGATrackSim.oldRegionDefs) or flags.doInsideOut:
26
27
28
29
30
31 return [
32 ["pb0"] + [f"pe{x}+" for x in range(0, 21)],
33 ["pb1"] + [f"pe{x}+" for x in range(21, 44)],
34 ["pb2"] + [f"pe{x}+" for x in range(44, 61)],
35 ["pb3"] + [f"pe{x}+" for x in range(61, 77)],
36 ["pb4"] + [f"pe{x}+" for x in range(77, 95)],
37 ["sb0", "se4+", "se0+"],
38 ["sb1", "se5+", "se1+"],
39 ["sb2", "se6+", "se2+"],
40 ["sb3", "se7+", "se3+"],
41 ["sb4", "se8+"],
42 ["sb5", "se9+"],
43 ["sb6", "se10+"],
44 ["sb7", "se11+"]
45 ]
46 else:
47
48 if flags.Trigger.FPGATrackSim.spacePoints:
49
50 match flags.Trigger.FPGATrackSim.region:
51 case 0 | 1 | 5 | 6 | 7:
52 return [["pb4"],["sb0"],["sb1"],["sb2"],["sb3"],["sb4"],["sb5"],["sb6"],["sb7"],["pb0"],["pb1"],["pb2"],["pb3"]]
53 case 3:
54 return [["pb4","pe83+","pe84+","pe85+","pe86+","pe87+","pe88+","pe89+"],["se4+"],["se5+"],["se6+"],["se7+"],["se8+"],["se9+"],["se10+"],["se11+"],["pb2"],["pb3","pe58+"],["se2+"],["se3+"]]
55 case 2 | 4 | _:
56 return [["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"]]
57 else:
58 match flags.Trigger.FPGATrackSim.region:
59 case 0 | 1 | 5 | 6 | 7:
60 return [["pb4"],["sb0"],["sb2"],["sb3"],["sb4"],["sb5"],["sb6"],["sb7"],["pb0"],["pb1"],["pb2"],["pb3"], ["sb1"]]
61 case 3:
62 return [["pb4","pe83+","pe84+","pe85+","pe86+","pe87+","pe88+","pe89+"],["se5+"],["se6+"],["se7+"],["se8+"],["se9+"],["se10+"],["se11+"],["pb2"],["pb3","pe58+"],["se2+"],["se3+"], ["se4+"]]
63 case 2 | 4 | _:
64 return [["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"],["-1"]]
65