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 ]
427 self.
log().
debug(
'Set %d thresholds', nt)
428 self.
tool().AcceptAll =
False
429 self.
tool().PtBins = [ [ 0.0, 2.5 ] ] * nt
430 self.
tool().PtThresholds = [ [ 5.49 * GeV ] ] * nt
431 self.
tool().PtThresholdForECWeakBRegionA = [ 3. * GeV ] * nt
432 self.
tool().PtThresholdForECWeakBRegionB = [ 3. * GeV ] * nt
438 values = muFastThresholds[thvaluename]
439 self.
tool().PtBins[th] = values[0]
440 self.
tool().PtThresholds[th] = [ x * GeV
for x
in values[1] ]
441 self.
log().
debug(
'Configration of threshold[%d] %s', th, self.
tool().PtThresholds[th])
442 self.
log().
debug(
'Configration of PtBins[%d] %s', th, self.
tool().PtBins[th])
443 if thvaluename
in muFastThresholdsForECWeakBRegion:
444 spThres = muFastThresholdsForECWeakBRegion[thvaluename]
445 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
446 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[1] * GeV
448 self.
log().
debug(
'No special thresholds for EC weak Bfield regions for %s. Copy EC1 for region A, EC2 for region B.', thvaluename)
449 spThres = values[0][1]
450 if thvaluename ==
'2GeV' or thvaluename ==
'3GeV':
451 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
452 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[0] * GeV
454 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[1] * GeV
455 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[2] * GeV
457 self.
log().
debug(
'Thresholds for A[%d]/B[%d] = %d/%d', th, th, self.
tool().PtThresholdForECWeakBRegionA[th], self.
tool().PtThresholdForECWeakBRegionB[th])
460 raise Exception(
'MuFast Hypo Misconfigured: threshold %r not supported' % thvaluename)
469 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigL2MuonOverlapRemoverMonitoringMufast
472 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigMufastHypoMonitoring
477 return CompFactory.TrigmuCombHypoAlg(name, **kwargs)
481 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
482 thresholds = [
'passthrough']
492 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
497 if chainDict[
'chainParts'][0][
'signature'] ==
'Bphysics':
500 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
505 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
509 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
510 d0cut=trigMuonLrtd0Cut[
'd0loose']
511 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
512 d0cut=trigMuonLrtd0Cut[
'd0medium']
513 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
514 d0cut=trigMuonLrtd0Cut[
'd0tight']
522 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
523 thresholds = [
'passthrough']
532 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
537 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
542 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
547 tool.RequireDR =
True
548 tool.RequireMufastDR =
True
549 tool.RequireMass =
True
550 tool.RequireSameSign =
True
551 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
552 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
553 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
554 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
571 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
575 tool.RequireDR =
True
576 tool.RequireMufastDR =
False
577 tool.RequireMass =
True
578 tool.RequireSameSign =
True
579 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
580 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
581 tool.MufastDRThres = [0]
582 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
590 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
591 thresholds = [
'passthrough']
602 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
606 tool.RequireDR =
True
607 tool.RequireMufastDR =
True
608 tool.RequireMass =
True
609 tool.RequireSameSign =
True
610 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
611 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
612 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
613 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
620 log = logging.getLogger(
'TrigmuCombHypoConfig')
624 tool = CompFactory.TrigmuCombHypoTool( thresholdHLT )
625 tool.AcceptAll = acceptAll
628 log.debug(
'Set %d thresholds', nt)
629 tool.PtBins = [ [ 0.0, 2.5 ] ] * nt
630 tool.PtThresholds = [ [ 5.83 * GeV ] ] * nt
632 for th, thvalue
in enumerate(thresholds):
633 if thvalue ==
'passthrough':
634 tool.AcceptAll =
True
635 tool.PtBins[th] = [-10000.,10000.]
636 tool.PtThresholds[th] = [ -1. * GeV ]
644 thvaluename = thvalue +
'GeV_v16'
646 thvaluename = thvalue +
'GeV_v15a'
649 thvaluename = thvalue +
'GeV_v22a'
650 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
653 values = muCombThresholds[thvaluename]
654 tool.PtBins[th] = values[0]
655 tool.PtThresholds[th] = [ x * GeV
for x
in values[1] ]
657 tool.ApplyPikCuts =
True
658 tool.MaxPtToApplyPik = 25.
659 tool.MaxChi2IDPik = 3.5
661 raise Exception(
'MuComb Hypo Misconfigured: threshold %r not supported' % thvaluename)
666 return CompFactory.TrigMuonEFHypoAlg(name, **kwargs)
672 kwargs.setdefault(
"RequireSAMuons",
True)
673 if 'msonly' in chainDict[
'chainParts'][0][
'msonlyInfo']
and 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
674 kwargs.setdefault(
"RemoveOverlaps",
True)
679 kwargs.setdefault(
"MonTool", monTool)
681 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
683 kwargs.setdefault(
"MonTool", monTool)
684 if '3layersEC' in chainDict[
'chainParts'][0][
'addInfo']:
685 kwargs.setdefault(
"RequireThreeStations",
True)
686 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
687 if muonflags.Muon.runCommissioningChain:
688 kwargs.setdefault(
"RunCommissioningChain",
True)
691 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
694 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
697 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
700 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
703 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
710 kwargs.setdefault(
"ConeSize", conesize)
711 kwargs.setdefault(
"NarrowScan", narrowscan)
719 chainName = chainDict[
"chainName"]
720 hltChainName = chainName.rsplit(
"_L1",1)[0]
721 cparts = hltChainName.split(
"_")
723 if 'HLT' in hltChainName:
727 thrPart = part.split(
'mu')
734 thr =thr.replace(
'noL1',
'')
736 thresholds.append(thr)
742 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
745 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
748 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
751 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
754 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
757 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
765 return TrigMuonEFHypoToolCfg( chainDict[
'chainName'], thresholds, doSA=
True, MonTool=monTool, RequireSAMuons=
True, NarrowScan=narrowscan, ConeSize=conesize)
770 log = logging.getLogger(name)
773 log.debug(
'Set %d thresholds', nt)
774 PtBins = [ [ 0.0, 2.5 ] ] * nt
775 PtThresholds = [ [ 5.49 * GeV ] ] * nt
777 for th, thvalue
in enumerate(thresholds):
778 if (thvalue==
'passthrough'):
780 PtBins[th] = [-10000.,10000.]
781 PtThresholds[th] = [ -1. * GeV ]
783 if "0eta105" in name:
784 thvaluename = thvalue+
"GeV_barrelOnly"
787 thvaluename = thvalue +
'GeV_v22a'
790 thvaluename = thvalue +
'GeV'
792 thvaluename = thvalue +
'GeV_v15a'
793 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
796 values = trigMuonEFSAThresholds[thvaluename]
798 values = efCombinerThresholds[thvaluename]
799 PtBins[th] = values[0]
800 PtThresholds[th] = [ x * GeV
for x
in values[1] ]
803 kwargs.setdefault(
"AcceptAll", passthrough)
804 kwargs.setdefault(
"PtBins", PtBins)
805 kwargs.setdefault(
"PtThresholds", PtThresholds)
806 return CompFactory.TrigMuonEFHypoTool(name, **kwargs)
810 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo']:
811 thresholds = [
'passthrough']
815 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
820 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
823 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
826 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
829 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
832 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
839 if 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
848 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
852 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
853 d0cut=trigMuonLrtd0Cut[
'd0loose']
854 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
855 d0cut=trigMuonLrtd0Cut[
'd0medium']
856 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
857 d0cut=trigMuonLrtd0Cut[
'd0tight']
860 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
861 NarrowScan=narrowscan, RemoveOverlaps=overlap, ConeSize=conesize, MinimumD0=d0cut)
871 chainName = chainDict[
"chainName"]
872 hltChainName = chainName.rsplit(
"_L1",1)[0]
873 cparts = hltChainName.split(
"_")
874 if 'HLT' in hltChainName:
878 thrPart = part.split(
'mu')
885 thr =thr.replace(
'noL1',
'')
887 thresholds.append(thr)
888 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
891 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
894 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
897 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
900 if 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
907 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
916 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
919 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
920 NarrowScan=narrowscan, ConeSize=conesize)
927 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
928 if 'ivarperf' in chainDict[
'chainParts'][0][
'isoInfo']:
929 thresholds =
'passthrough'
931 thresholds = cparts[0][
'isoInfo']
939 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
947 if(isoCut==
'passthrough') :
948 kwargs.setdefault(
"AcceptAll",
True)
951 ptcone03 = trigMuonEFTrkIsoThresholds[ isoCut ]
953 kwargs.setdefault(
"PtCone02Cut", 0.0)
954 kwargs.setdefault(
"PtCone03Cut", ptcone03)
955 kwargs.setdefault(
"AcceptAll",
False)
958 kwargs.setdefault(
"RequireCombinedMuon",
False)
959 kwargs.setdefault(
"DoAbsCut",
True)
961 kwargs.setdefault(
"RequireCombinedMuon",
True)
962 kwargs.setdefault(
"DoAbsCut",
False)
966 kwargs.setdefault(
"useVarIso",
True)
968 kwargs.setdefault(
"useVarIso",
False)
970 tool = CompFactory.TrigMuonEFTrackIsolationHypoTool(name, **kwargs)
974 return CompFactory.TrigMuonEFTrackIsolationHypoAlg(name, **kwargs)
977 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
979 thresholds = cparts[-1][
'invMassInfo']
980 if "os" in cparts[-1][
'addInfo']:
990 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
997 massWindow = trigMuonEFInvMassThresholds[thresholds]
999 kwargs.setdefault(
"InvMassLow", massWindow[0])
1000 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1001 kwargs.setdefault(
"AcceptAll",
False)
1003 tool = CompFactory.TrigMuonEFInvMassHypoTool(toolName, **kwargs)
1009 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1017 log = logging.getLogger(name)
1019 nt = len(thresholds)
1020 log.debug(
'Set %d thresholds', nt)
1021 ptBins = [ [ 0, 2.5 ] ] * nt
1022 ptThresholds = [ [ 5.49 * GeV ] ] * nt
1023 for th, thvalue
in enumerate(thresholds):
1024 thvaluename = thvalue +
'GeV'
1026 thvaluename = thvalue +
'GeV_v22a'
1027 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
1028 if (thvalue==
'passthrough'):
1029 ptBins[th] = [-10000.,10000.]
1030 ptThresholds[th] = [ -1. * GeV ]
1032 values = trigMuonEFSAThresholds[thvaluename]
1033 ptBins[th] = values[0]
1034 ptThresholds[th] = [ x * GeV
for x
in values[1] ]
1037 if (thvalue==
'passthrough'):
1038 kwargs.setdefault(
"AcceptAll",
True)
1040 kwargs.setdefault(
"AcceptAll",
False)
1042 kwargs.setdefault(
"PtBins", ptBins)
1043 kwargs.setdefault(
"PtThresholds", ptThresholds)
1046 return CompFactory.TrigMuonEFIdtpHypoTool( name, **kwargs )
1049 cname = chainDict[
'chainName']
1050 if 'idZmumu' in cname :
1051 thresholds =
'idZmumu'
1052 elif 'idJpsimumu' in cname :
1053 thresholds =
'idJpsimumu'
1055 log.warning(
"unknown chain name for IdtpInvmassHypo, chain name= %s, setting threshold of Z mass",cname)
1056 thresholds =
'idZmumu'
1060 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1067 massWindow = trigMuonEFInvMassThresholds[thresholds]
1068 kwargs.setdefault(
"InvMassLow", massWindow[0])
1069 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1070 kwargs.setdefault(
"AcceptAll",
False)
1072 return CompFactory.TrigMuonEFIdtpInvMassHypoTool(name, **kwargs)
1076 return CompFactory.TrigMuonEFIdtpHypoAlg(name, **kwargs)
1079 return CompFactory.TrigMuonLateMuRoIHypoAlg(name, **kwargs)
1087 tool = CompFactory.TrigMuonLateMuRoIHypoTool(name, AcceptAll=
False)