5 from AthenaConfiguration.ComponentFactory
import CompFactory
8 from TrigMuonHypo.TrigMuonHypoMonitoring
import (
9 TrigmuCombHypoMonitoring,
10 TrigMuonEFHypoMonitoring,
11 TrigMuonEFIdtpHypoMonitoring,
12 TrigL2MuonOverlapRemoverMonitoringMucomb,
13 TrigMuonEFInvMassHypoMonitoring,
14 TrigMuonEFIdtpInvMassHypoMonitoring,
15 TrigMuonEFTrackIsolationMonitoring
23 from AthenaCommon.Logging
import logging
24 log = logging.getLogger(
'TrigMuonHypoConfig')
28 '3GeV_v22a' : [ [0,9.9], [ 0.1 ] ],
30 '4GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.38, 1.25, 3.17, 3.41] ],
31 '4GeV_barrelOnly_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.38, 1000., 1000., 1000.] ],
32 '6GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 5.17, 3.25, 4.69, 5.14] ],
33 '8GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 6.63, 5.17, 6.39, 6.81] ],
34 '10GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 8.28, 6.35, 7.19, 8.58] ],
36 '11GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 8.99, 6.62, 7.40, 9.32] ],
37 '13GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 10.42, 7.16, 7.81, 10.80] ],
38 '14GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 11.15, 7.58, 8.43, 11.61] ],
39 '15GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 11.31, 10.52, 12.00, 13.24] ],
40 '18GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 14.33, 9.45, 10.96, 14.35] ],
41 '20GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.10, 3.25, 2.69, 5.14] ],
42 '22GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.20, 3.25, 4.90, 5.00] ],
43 '23GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.20, 3.25, 4.90, 5.00] ],
44 '24GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 4.80, 3.25, 4.50, 5.10] ],
45 '26GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.50, 3.25, 4.45, 4.40] ],
46 '28GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.70, 3.25, 4.50, 5.40] ],
47 '30GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.00, 4.00, 4.30, 5.55] ],
48 '32GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.00, 6.50, 4.20, 6.00] ],
49 '34GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.40, 7.20, 4.60, 9.00] ],
50 '35GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.30, 5.40, 4.80, 5.00] ],
51 '36GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 4.20, 3.90, 4.30, 5.00] ],
52 '40GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.16, 6.20, 5.50, 10.00] ],
53 '45GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.20, 9.80, 5.30, 10.70] ],
54 '48GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 4.00, 7.30, 5.50, 9.50] ],
55 '50GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 1.30, 8.10, 4.50, 9.50] ],
56 '60GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 21.20, 25.38, 29.54] ],
57 '80GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 21.20, 25.38, 29.54] ],
58 '40GeV_uptoEC2_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 21.20, 25.38, 1000.] ],
59 '40GeV_barrelOnly_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 1000., 1000., 1000.] ],
60 '50GeV_barrelOnly_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 1000., 1000., 1000.] ],
61 '60GeV_barrelOnly_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.13, 1000., 1000., 1000.] ],
66 '3GeV_v22a' : [ [0,1.05,1.5,2.0,9.9], [ 2.82, 2.76, 2.64, 2.64] ],
68 '2GeV_v15a' : [ [0,9.9], [ 2.000] ],
69 '3GeV_v15a' : [ [0,9.9], [ 3.000] ],
70 '4GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.86, 3.77, 3.69, 3.70] ],
71 '5GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 4.9, 4.8, 4.8, 4.8] ],
72 '6GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 5.87, 5.79, 5.70, 5.62] ],
73 '7GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 6.8, 6.7, 6.7, 6.6] ],
74 '8GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 7.80, 7.72, 7.59, 7.46] ],
75 '10GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 9.73, 9.63, 9.45, 9.24] ],
76 '11GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 10.8, 10.4, 10.6, 10.6] ],
77 '12GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 11.7, 11.3, 11.4, 11.5] ],
78 '13GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 12.62, 12.48, 12.24, 11.88] ],
79 '14GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 13.57, 13.44, 13.21, 12.77] ],
80 '15GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 14.50, 14.00, 14.00, 14.50] ],
81 '16GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 15.47, 15.09, 14.98, 15.08] ],
82 '18GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 17.41, 17.27, 16.95, 16.25] ],
83 '20GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 16.50, 19.19, 18.80, 17.00] ],
84 '22GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.70, 21.07, 19.13, 18.80] ],
85 '23GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.70, 21.07, 19.13, 18.80] ],
86 '24GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.10, 21.07, 18.60, 19.35] ],
87 '25GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 24.20, 23.20, 23.20, 22.60] ],
88 '26GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.50, 21.07, 20.22, 19.65] ],
89 '27GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 26.20, 25.10, 25.10, 24.40] ],
90 '28GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.30, 21.07, 20.77, 20.00] ],
91 '30GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.80, 21.00, 21.00, 20.10] ],
92 '32GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 16.50, 22.50, 20.00, 21.50] ],
93 '34GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 18.40, 24.10, 21.45, 23.00] ],
94 '35GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 17.40, 25.90, 23.40, 23.80] ],
95 '36GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 16.90, 25.60, 24.20, 24.00] ],
96 '38GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 35.80, 35.40, 35.40, 33.60] ],
97 '40GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 13.20, 27.90, 27.30, 27.60] ],
98 '40GeV_slow_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 40.00, 40.00, 40.00, 40.00] ],
99 '45GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 17.70, 33.10, 31.60, 33.30] ],
100 '48GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 14.00, 33.80, 34.20, 35.90] ],
101 '50GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 8.30, 33.55, 32.40, 37.70] ],
102 '60GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 45.0, 45.0, 45.0, 45.0] ],
103 '60GeV_slow_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 47.0, 47.0, 47.0, 47.0] ],
104 '70GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 49.0, 49.0, 49.0, 49.0] ],
105 '80GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 56.0, 56.0, 56.0, 56.0] ],
106 '100GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 70.0, 70.0, 70.0, 70.0] ],
108 '5GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 4.9, 4.8, 4.8, 4.8] ],
109 '8GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 7.8, 7.7, 7.7, 7.7] ],
110 '10GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 9.8, 9.5, 9.6, 9.7] ],
111 '15GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 14.50, 14.00, 14.00, 14.50] ],
112 '20GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 19.31, 19.19, 18.80, 17.95] ],
113 '25GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 24.2, 23.2, 23.2, 22.6] ],
114 '30GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 29.0, 28.0, 28.0, 27.0] ],
115 '50GeV_v16' : [ [0,1.05,1.5,2.0,9.9], [ 40.0, 40.0, 40.0, 40.0] ],
118 trigMuonEFSAThresholds = {
120 '3GeV_v22a' : [ [0,9.9], [ 1.0 ] ],
122 '0GeV' : [ [0,9.9], [ 0.100 ] ],
123 '2GeV' : [ [0,9.9], [ 2.000 ] ],
124 '3GeV' : [ [0,9.9], [ 3.000 ] ],
125 '4GeV' : [ [0,1.05,1.5,2.0,9.9], [ 3.0, 2.5, 2.5, 2.5] ],
126 '4GeV_barrelOnly' : [ [0,1.05,1.5,2.0,9.9], [ 3.0,1000.0,1000.0,1000.0]],
127 '5GeV' : [ [0,1.05,1.5,2.0,9.9], [ 4.6, 3.3, 4.0, 4.5] ],
128 '6GeV' : [ [0,1.05,1.5,2.0,9.9], [ 5.4, 4.5, 4.9, 5.3] ],
129 '7GeV' : [ [0,1.05,1.5,2.0,9.9], [ 6.3, 5.6, 5.6, 6.3] ],
130 '8GeV' : [ [0,1.05,1.5,2.0,9.9], [ 7.2, 6.7, 6.4, 7.3] ],
131 '10GeV' : [ [0,1.05,1.5,2.0,9.9], [ 8.9, 9.0, 8.4, 9.2] ],
132 '11GeV' : [ [0,1.05,1.5,2.0,9.9], [ 9.8, 10.1, 9.3, 10.1] ],
133 '12GeV' : [ [0,1.05,1.5,2.0,9.9], [ 10.6, 11.0, 10.2, 11.0] ],
134 '13GeV' : [ [0,1.05,1.5,2.0,9.9], [ 11.4, 12.0, 11.1, 12.0] ],
135 '14GeV' : [ [0,1.05,1.5,2.0,9.9], [ 12.2, 13.0, 12.1, 13.0] ],
136 '15GeV' : [ [0,1.05,1.5,2.0,9.9], [ 13.0, 14.0, 13.0, 14.0] ],
137 '16GeV' : [ [0,1.05,1.5,2.0,9.9], [ 13.0, 14.0, 13.0, 14.0] ],
138 '18GeV' : [ [0,1.05,1.5,2.0,9.9], [ 15.7, 16.6, 15.4, 16.3] ],
139 '20GeV' : [ [0,1.05,1.5,2.0,9.9], [ 18.20, 16.50, 17.00, 18.00] ],
140 '22GeV' : [ [0,1.05,1.5,2.0,9.9], [ 20.20, 18.00, 17.00, 19.00] ],
141 '23GeV' : [ [0,1.05,1.5,2.0,9.9], [ 21.20, 18.75, 17.80, 19.60] ],
142 '24GeV' : [ [0,1.05,1.5,2.0,9.9], [ 22.20, 19.50, 18.60, 20.20] ],
143 '26GeV' : [ [0,1.05,1.5,2.0,9.9], [ 23.50, 21.00, 20.15, 22.00] ],
144 '28GeV' : [ [0,1.05,1.5,2.0,9.9], [ 23.40, 21.00, 20.55, 22.50] ],
145 '30GeV' : [ [0,1.05,1.5,2.0,9.9], [ 25.20, 22.10, 21.70, 24.40] ],
146 '32GeV' : [ [0,1.05,1.5,2.0,9.9], [ 27.05, 20.50, 22.30, 26.12] ],
147 '34GeV' : [ [0,1.05,1.5,2.0,9.9], [ 28.90, 22.00, 24.00, 27.88] ],
148 '35GeV' : [ [0,1.05,1.5,2.0,9.9], [ 30.00, 20.90, 24.90, 28.85] ],
149 '36GeV' : [ [0,1.05,1.5,2.0,9.9], [ 30.50, 23.77, 26.40, 28.00] ],
150 '40GeV' : [ [0,1.05,1.5,2.0,9.9], [ 33.00, 27.30, 30.50, 32.90] ],
151 '40GeV_barrelOnly' : [ [0,1.05,1.5,2.0,9.9], [ 31.50,1000.0,1000.0,1000.0] ],
152 '40GeV_uptoEC2' : [ [0,1.05,1.5,2.0,9.9], [ 31.50, 30.00, 28.50, 1000.0] ],
153 '45GeV' : [ [0,1.05,1.5,2.0,9.9], [ 41.20, 31.90, 35.10, 37.50] ],
154 '48GeV' : [ [0,1.05,1.5,2.0,9.9], [ 43.00, 34.45, 38.00, 40.30] ],
155 '50GeV' : [ [0,1.05,1.5,2.0,9.9], [ 40.00, 36.30, 40.00, 42.10] ],
156 '50GeV_barrelOnly' : [ [0,1.05,1.5,2.0,9.9], [ 45.0,1000.0,1000.0,1000.0]],
157 '60GeV' : [ [0,1.05,1.5,2.0,9.9], [ 54.0, 54.0, 54.0, 54.0] ],
158 '60GeV_barrelOnly' : [ [0,1.05,1.5,2.0,9.9], [ 54.0,1000.0,1000.0,1000.0]],
159 '70GeV' : [ [0,1.05,1.5,2.0,9.9], [ 63.0, 63.0, 63.0, 63.0] ],
160 '80GeV' : [ [0,1.05,1.5,2.0,9.9], [ 72.0, 72.0, 72.0, 72.0] ],
161 '100GeV' : [ [0,1.05,1.5,2.0,9.9], [ 90.0, 90.0, 90.0, 90.0] ],
164 efCombinerThresholds = {
167 '3GeV_v22a' : [ [0,1.05,1.5,2.0,9.9], [ 2.94, 2.91, 2.77, 2.72] ],
169 '2GeV_v15a' : [ [0,9.9], [2.000] ],
170 '3GeV_v15a' : [ [0,9.9], [3.000] ],
171 '4GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 3.94, 3.91, 3.77, 3.72] ],
172 '5GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 4.91, 4.86, 4.84, 4.83] ],
173 '6GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 5.92, 5.86, 5.70, 5.64] ],
174 '7GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 6.85, 6.77, 6.74, 6.74] ],
175 '8GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 7.89, 7.81, 7.60, 7.53] ],
176 '10GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 9.84, 9.77, 9.54, 9.47] ],
177 '11GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 10.74, 10.64, 10.58, 10.53] ],
178 '12GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 11.70, 11.59, 11.53, 11.49] ],
179 '13GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 12.80, 12.67, 12.43, 12.38] ],
180 '14GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 13.75, 13.62, 13.38, 13.36] ],
181 '15GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 14.63, 14.49, 14.42, 14.38] ],
182 '16GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 15.65, 15.50, 15.39, 15.37] ],
183 '18GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 17.68, 17.51, 17.34, 17.34] ],
184 '20GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 19.65, 19.50, 19.20, 19.30] ],
185 '22GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 21.64, 21.32, 21.30, 21.30] ],
186 '23GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 22.59, 22.27, 22.25, 22.27] ],
187 '24GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 23.55, 23.21, 23.20, 23.25] ],
188 '26GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 25.60, 25.15, 25.20, 25.20] ],
189 '27GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 26.26, 26.12, 26.11, 26.02] ],
190 '28GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 27.28, 27.09, 27.15, 27.20] ],
191 '30GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 29.20, 29.00, 29.00, 29.00] ],
192 '32GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 31.20, 30.95, 30.90, 30.84] ],
193 '34GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 33.16, 32.88, 32.80, 32.70] ],
194 '35GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 34.15, 33.82, 33.65, 33.65] ],
195 '36GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 35.23, 34.75, 34.50, 34.60] ],
196 '38GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 36.87, 36.67, 36.55, 36.48] ],
197 '40GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 38.80, 38.56, 38.40, 38.90] ],
198 '45GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 43.75, 43.30, 43.10, 43.90] ],
199 '48GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 46.50, 46.20, 46.00, 46.80] ],
200 '50GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 48.00, 48.20, 48.00, 48.80] ],
201 '60GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 54.00, 54.00, 54.00, 54.00] ],
202 '70GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 63.00, 63.00, 63.00, 63.00] ],
203 '80GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 72.00, 72.00, 72.00, 72.00] ],
204 '100GeV_v15a' : [ [0,1.05,1.5,2.0,9.9], [ 90.00, 90.00, 90.00, 90.00] ],
208 muFastThresholdsForECWeakBRegion = {
211 '3GeV_v22a' : [ 0.1, 0.1 ],
213 '4GeV_v15a' : [ 2.72, 1.58],
214 '4GeV_barrelOnly_v15a' : [ 1000., 1000. ],
215 '6GeV_v15a' : [ 3.91, 2.22],
216 '8GeV_v15a' : [ 4.65, 3.26],
217 '10GeV_v15a' : [ 5.96, 4.24],
219 '11GeV_v15a' : [ 6.19, 4.37 ],
220 '13GeV_v15a' : [ 6.65, 4.64 ],
221 '14GeV_v15a' : [ 6.78, 5.03 ],
222 '15GeV_v15a' : [ 7.61, 7.81 ],
223 '18GeV_v15a' : [ 8.48, 7.26 ],
224 '20GeV_v15a' : [ 8.63, 7.26 ],
225 '22GeV_v15a' : [ 9.53, 7.77 ],
226 '23GeV_v15a' : [ 9.53, 7.77 ],
227 '24GeV_v15a' : [ 9.02, 8.31 ],
228 '26GeV_v15a' : [ 9.89, 8.77 ],
229 '28GeV_v15a' : [ 9.89, 8.77 ],
230 '30GeV_v15a' : [ 14.41, 17.43 ],
231 '32GeV_v15a' : [ 14.41, 17.43 ],
232 '34GeV_v15a' : [ 14.41, 17.43 ],
233 '35GeV_v15a' : [ 14.41, 17.43 ],
234 '36GeV_v15a' : [ 10.78, 10.66 ],
235 '40GeV_v15a' : [ 15.07, 18.02 ],
236 '45GeV_v15a' : [ 15.07, 18.02 ],
237 '48GeV_v15a' : [ 15.07, 18.02 ],
238 '50GeV_v15a' : [ 15.07, 18.02 ],
239 '60GeV_v15a' : [ 15.07, 18.02 ],
240 '80GeV_v15a' : [ 15.07, 18.02 ],
241 '40GeV_uptoEC2_v15a' : [ 15.07, 18.02 ],
242 '40GeV_barrelOnly_v15a' : [ 1000., 1000. ],
243 '50GeV_barrelOnly_v15a' : [ 1000., 1000. ],
244 '60GeV_barrelOnly_v15a' : [ 1000., 1000. ],
252 trigMuonEFTrkIsoThresholds = {
256 'ivarverytight' : 0.04,
269 trigMuonEFInvMassThresholds = {
270 'invmJPsiOS' : [2.5, 4.3],
271 'invmDimu' : [1.5, 14.],
272 'idZmumu' : [50., 130.],
273 'idJpsimumu' : [1., 5.],
277 muonHypoMonGroups = [
'muonMon:online']
278 idHypoMonGroups = [
'idMon:t0',
'idMon:shifter']
281 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon' or i[
'signature']==
'Bphysics']
282 return sum( [ [part[
'threshold']]*
int(part[
'multiplicity'])
for part
in cparts ], [])
286 return CompFactory.TrigMufastHypoAlg(name, **kwargs)
290 chainPart = chainDict[
'chainParts'][0]
292 doOverlapRemoval =
False
293 if chainPart[
'signature'] ==
'Bphysics' or 'l2io' in chainPart[
'l2AlgInfo']:
294 doOverlapRemoval =
False
295 elif int(chainPart[
'multiplicity']) > 1:
296 doOverlapRemoval =
True
297 elif len(chainDict[
'signatures']) > 1
and not chainPart[
'extra']:
298 doOverlapRemoval =
True
300 doMonitoring = monitorAll
or any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups'])
303 config.compile(flags)
308 def __init__(self, name, cpart, doOverlapRemoval = False, doMonitoring = False):
310 from AthenaCommon.Logging
import logging
311 self.
__log = logging.getLogger(
'TrigMufastHypoToolConfig')
319 self.
__useGeV_v15a = any(x
in cpart[
'addInfo']
for x
in [
'idperf',
'idtp',
'3layersEC'])
324 from AthenaConfiguration.ComponentFactory
import CompFactory
325 tool = CompFactory.TrigMufastHypoTool(name)
368 key = threshold +
'GeV_v15a'
370 key = threshold +
'GeV_v22a'
372 key = threshold +
'GeV_barrelOnly_v15a'
374 key = threshold +
'GeV_v15a'
378 self.
tool().ApplyOR =
True
380 self.
tool().RequireDR =
True
381 self.
tool().RequireMass =
True
382 self.
tool().RequireSameSign =
True
384 self.
tool().DRThresBB = 0.05
385 self.
tool().MassThresBB = 0.20
387 self.
tool().DRThresBE = 0.05
388 self.
tool().MassThresBE = 0.20
390 self.
tool().EtaBinsEC = [0.0, 1.9, 2.1, 9.9]
391 self.
tool().DRThresEC = [0.06, 0.05, 0.05]
392 self.
tool().MassThresEC = [0.20, 0.15, 0.10]
395 self.
tool().ApplyOR =
True
397 self.
tool().RequireDR =
True
398 self.
tool().RequireMass =
True
399 self.
tool().RequireSameSign =
True
401 self.
tool().DRThresBB = 0.05
402 self.
tool().MassThresBB = 0.20
404 self.
tool().DRThresBE = 0.05
405 self.
tool().MassThresBE = 0.20
407 self.
tool().EtaBinsEC = [0.0, 1.9, 2.1, 9.9]
408 self.
tool().DRThresEC = [0.06, 0.05, 0.05]
409 self.
tool().MassThresEC = [0.20, 0.15, 0.10]
415 self.
tool().AcceptAll =
False
416 self.
tool().DoCalib =
True
417 self.
tool().PtBins = [ [ 0.0, 2.5 ] ] * nt
420 self.
tool().AcceptAll =
True
421 self.
tool().PtBins = [ [-10000.,10000.] ]
422 self.
tool().PtThresholds = [ [ -1. * GeV ] ]
423 self.
tool().PtThresholdForECWeakBRegionA = [ 3. * GeV ]
424 self.
tool().PtThresholdForECWeakBRegionB = [ 3. * GeV ]
429 self.
log().
debug(
'Set %d thresholds', nt)
430 self.
tool().AcceptAll =
False
431 self.
tool().PtBins = [ [ 0.0, 2.5 ] ] * nt
432 self.
tool().PtThresholds = [ [ 5.49 * GeV ] ] * nt
433 self.
tool().PtThresholdForECWeakBRegionA = [ 3. * GeV ] * nt
434 self.
tool().PtThresholdForECWeakBRegionB = [ 3. * GeV ] * nt
440 values = muFastThresholds[thvaluename]
441 self.
tool().PtBins[th] = values[0]
442 self.
tool().PtThresholds[th] = [ x * GeV
for x
in values[1] ]
443 self.
log().
debug(
'Configration of threshold[%d] %s', th, self.
tool().PtThresholds[th])
444 self.
log().
debug(
'Configration of PtBins[%d] %s', th, self.
tool().PtBins[th])
445 if thvaluename
in muFastThresholdsForECWeakBRegion:
446 spThres = muFastThresholdsForECWeakBRegion[thvaluename]
447 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
448 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[1] * GeV
450 self.
log().
debug(
'No special thresholds for EC weak Bfield regions for %s. Copy EC1 for region A, EC2 for region B.', thvaluename)
451 spThres = values[0][1]
452 if thvaluename ==
'2GeV' or thvaluename ==
'3GeV':
453 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
454 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[0] * GeV
456 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[1] * GeV
457 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[2] * GeV
459 self.
log().
debug(
'Thresholds for A[%d]/B[%d] = %d/%d', th, th, self.
tool().PtThresholdForECWeakBRegionA[th], self.
tool().PtThresholdForECWeakBRegionB[th])
462 raise Exception(
'MuFast Hypo Misconfigured: threshold %r not supported' % thvaluename)
471 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigL2MuonOverlapRemoverMonitoringMufast
474 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigMufastHypoMonitoring
479 return CompFactory.TrigmuCombHypoAlg(name, **kwargs)
483 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
484 thresholds = [
'passthrough']
485 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
486 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
496 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
501 if chainDict[
'chainParts'][0][
'signature'] ==
'Bphysics':
504 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
509 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
513 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
514 d0cut=trigMuonLrtd0Cut[
'd0loose']
515 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
516 d0cut=trigMuonLrtd0Cut[
'd0medium']
517 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
518 d0cut=trigMuonLrtd0Cut[
'd0tight']
526 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
527 thresholds = [
'passthrough']
528 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
529 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
538 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
543 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
548 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
553 tool.RequireDR =
True
554 tool.RequireMufastDR =
True
555 tool.RequireMass =
True
556 tool.RequireSameSign =
True
557 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
558 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
559 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
560 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
569 if chainDict[
'chainParts'][0][
'multiplicity']==
"0":
570 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
579 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
583 tool.RequireDR =
True
584 tool.RequireMufastDR =
False
585 tool.RequireMass =
True
586 tool.RequireSameSign =
True
587 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
588 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
589 tool.MufastDRThres = [0]
590 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
598 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
599 thresholds = [
'passthrough']
600 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
601 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
612 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
616 tool.RequireDR =
True
617 tool.RequireMufastDR =
True
618 tool.RequireMass =
True
619 tool.RequireSameSign =
True
620 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
621 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
622 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
623 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
630 log = logging.getLogger(
'TrigmuCombHypoConfig')
634 tool = CompFactory.TrigmuCombHypoTool( thresholdHLT )
635 tool.AcceptAll = acceptAll
638 log.debug(
'Set %d thresholds', nt)
639 tool.PtBins = [ [ 0.0, 2.5 ] ] * nt
640 tool.PtThresholds = [ [ 5.83 * GeV ] ] * nt
642 for th, thvalue
in enumerate(thresholds):
643 if thvalue ==
'passthrough':
644 tool.AcceptAll =
True
645 tool.PtBins[th] = [-10000.,10000.]
646 tool.PtThresholds[th] = [ -1. * GeV ]
654 thvaluename = thvalue +
'GeV_v16'
656 thvaluename = thvalue +
'GeV_v15a'
659 thvaluename = thvalue +
'GeV_v22a'
660 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
663 values = muCombThresholds[thvaluename]
664 tool.PtBins[th] = values[0]
665 tool.PtThresholds[th] = [ x * GeV
for x
in values[1] ]
667 tool.ApplyPikCuts =
True
668 tool.MaxPtToApplyPik = 25.
669 tool.MaxChi2IDPik = 3.5
671 raise Exception(
'MuComb Hypo Misconfigured: threshold %r not supported' % thvaluename)
676 return CompFactory.TrigMuonEFHypoAlg(name, **kwargs)
681 if chainDict[
'chainParts'][0][
'multiplicity']==
"0":
682 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
684 kwargs.setdefault(
"RequireSAMuons",
True)
685 if 'msonly' in chainDict[
'chainParts'][0][
'msonlyInfo']
and 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
686 kwargs.setdefault(
"RemoveOverlaps",
True)
691 kwargs.setdefault(
"MonTool", monTool)
693 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
695 kwargs.setdefault(
"MonTool", monTool)
696 if '3layersEC' in chainDict[
'chainParts'][0][
'addInfo']:
697 kwargs.setdefault(
"RequireThreeStations",
True)
698 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
699 if muonflags.Muon.runCommissioningChain:
700 kwargs.setdefault(
"RunCommissioningChain",
True)
703 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
706 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
709 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
712 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
715 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
722 kwargs.setdefault(
"ConeSize", conesize)
723 kwargs.setdefault(
"NarrowScan", narrowscan)
731 chainName = chainDict[
"chainName"]
732 hltChainName = chainName.rsplit(
"_L1",1)[0]
733 cparts = hltChainName.split(
"_")
735 if 'HLT' in hltChainName:
739 thrPart = part.split(
'mu')
740 if not thrPart[0]
or thrPart[0] ==
"0":
746 thr =thr.replace(
'noL1',
'')
748 thresholds.append(thr)
754 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
757 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
760 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
763 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
766 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
769 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
777 return TrigMuonEFHypoToolCfg( chainDict[
'chainName'], thresholds, doSA=
True, MonTool=monTool, RequireSAMuons=
True, NarrowScan=narrowscan, ConeSize=conesize)
782 log = logging.getLogger(name)
785 log.debug(
'Set %d thresholds', nt)
786 PtBins = [ [ 0.0, 2.5 ] ] * nt
787 PtThresholds = [ [ 5.49 * GeV ] ] * nt
789 for th, thvalue
in enumerate(thresholds):
790 if (thvalue==
'passthrough'):
792 PtBins[th] = [-10000.,10000.]
793 PtThresholds[th] = [ -1. * GeV ]
795 if "0eta105" in name:
796 thvaluename = thvalue+
"GeV_barrelOnly"
799 thvaluename = thvalue +
'GeV_v22a'
802 thvaluename = thvalue +
'GeV'
804 thvaluename = thvalue +
'GeV_v15a'
805 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
808 values = trigMuonEFSAThresholds[thvaluename]
810 values = efCombinerThresholds[thvaluename]
811 PtBins[th] = values[0]
812 PtThresholds[th] = [ x * GeV
for x
in values[1] ]
815 kwargs.setdefault(
"AcceptAll", passthrough)
816 kwargs.setdefault(
"PtBins", PtBins)
817 kwargs.setdefault(
"PtThresholds", PtThresholds)
818 return CompFactory.TrigMuonEFHypoTool(name, **kwargs)
822 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo']:
823 thresholds = [
'passthrough']
824 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
825 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
829 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
834 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
837 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
840 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
843 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
846 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
853 if 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
862 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
866 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
867 d0cut=trigMuonLrtd0Cut[
'd0loose']
868 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
869 d0cut=trigMuonLrtd0Cut[
'd0medium']
870 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
871 d0cut=trigMuonLrtd0Cut[
'd0tight']
874 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
875 NarrowScan=narrowscan, RemoveOverlaps=overlap, ConeSize=conesize, MinimumD0=d0cut)
885 chainName = chainDict[
"chainName"]
886 hltChainName = chainName.rsplit(
"_L1",1)[0]
887 cparts = hltChainName.split(
"_")
888 if 'HLT' in hltChainName:
892 thrPart = part.split(
'mu')
893 if not thrPart[0]
or thrPart[0] ==
"0":
899 thr =thr.replace(
'noL1',
'')
901 thresholds.append(thr)
902 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
905 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
908 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
911 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
914 if 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
921 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
930 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
933 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
934 NarrowScan=narrowscan, ConeSize=conesize)
941 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
942 if 'ivarperf' in chainDict[
'chainParts'][0][
'isoInfo']:
943 thresholds =
'passthrough'
945 thresholds = cparts[0][
'isoInfo']
953 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
961 if(isoCut==
'passthrough') :
962 kwargs.setdefault(
"AcceptAll",
True)
965 ptcone03 = trigMuonEFTrkIsoThresholds[ isoCut ]
967 kwargs.setdefault(
"PtCone02Cut", 0.0)
968 kwargs.setdefault(
"PtCone03Cut", ptcone03)
969 kwargs.setdefault(
"AcceptAll",
False)
972 kwargs.setdefault(
"RequireCombinedMuon",
False)
973 kwargs.setdefault(
"DoAbsCut",
True)
975 kwargs.setdefault(
"RequireCombinedMuon",
True)
976 kwargs.setdefault(
"DoAbsCut",
False)
980 kwargs.setdefault(
"useVarIso",
True)
982 kwargs.setdefault(
"useVarIso",
False)
984 tool = CompFactory.TrigMuonEFTrackIsolationHypoTool(name, **kwargs)
988 return CompFactory.TrigMuonEFTrackIsolationHypoAlg(name, **kwargs)
991 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
993 thresholds = cparts[-1][
'invMassInfo']
994 if "os" in cparts[-1][
'addInfo']:
1004 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1011 massWindow = trigMuonEFInvMassThresholds[thresholds]
1013 kwargs.setdefault(
"InvMassLow", massWindow[0])
1014 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1015 kwargs.setdefault(
"AcceptAll",
False)
1017 tool = CompFactory.TrigMuonEFInvMassHypoTool(toolName, **kwargs)
1023 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1031 log = logging.getLogger(name)
1033 nt = len(thresholds)
1034 log.debug(
'Set %d thresholds', nt)
1035 ptBins = [ [ 0, 2.5 ] ] * nt
1036 ptThresholds = [ [ 5.49 * GeV ] ] * nt
1037 for th, thvalue
in enumerate(thresholds):
1038 thvaluename = thvalue +
'GeV'
1040 thvaluename = thvalue +
'GeV_v22a'
1041 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
1042 if (thvalue==
'passthrough'):
1043 ptBins[th] = [-10000.,10000.]
1044 ptThresholds[th] = [ -1. * GeV ]
1046 values = trigMuonEFSAThresholds[thvaluename]
1047 ptBins[th] = values[0]
1048 ptThresholds[th] = [ x * GeV
for x
in values[1] ]
1051 if (thvalue==
'passthrough'):
1052 kwargs.setdefault(
"AcceptAll",
True)
1054 kwargs.setdefault(
"AcceptAll",
False)
1056 kwargs.setdefault(
"PtBins", ptBins)
1057 kwargs.setdefault(
"PtThresholds", ptThresholds)
1060 return CompFactory.TrigMuonEFIdtpHypoTool( name, **kwargs )
1063 cname = chainDict[
'chainName']
1064 if 'idZmumu' in cname :
1065 thresholds =
'idZmumu'
1066 elif 'idJpsimumu' in cname :
1067 thresholds =
'idJpsimumu'
1069 log.warning(
"unknown chain name for IdtpInvmassHypo, chain name= %s, setting threshold of Z mass",cname)
1070 thresholds =
'idZmumu'
1074 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1081 massWindow = trigMuonEFInvMassThresholds[thresholds]
1082 kwargs.setdefault(
"InvMassLow", massWindow[0])
1083 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1084 kwargs.setdefault(
"AcceptAll",
False)
1086 return CompFactory.TrigMuonEFIdtpInvMassHypoTool(name, **kwargs)
1090 return CompFactory.TrigMuonEFIdtpHypoAlg(name, **kwargs)
1093 return CompFactory.TrigMuonLateMuRoIHypoAlg(name, **kwargs)
1101 tool = CompFactory.TrigMuonLateMuRoIHypoTool(name, AcceptAll=
False)