5from AthenaConfiguration.ComponentFactory
import CompFactory
8from TrigMuonHypo.TrigMuonHypoMonitoring
import (
9 TrigmuCombHypoMonitoring,
10 TrigMuonEFHypoMonitoring,
11 TrigMuonEFIdtpHypoMonitoring,
12 TrigL2MuonOverlapRemoverMonitoringMucomb,
13 TrigMuonEFInvMassHypoMonitoring,
14 TrigMuonEFIdtpInvMassHypoMonitoring,
15 TrigMuonEFTrackIsolationMonitoring
21from AthenaCommon.SystemOfUnits
import GeV
23from AthenaCommon.Logging
import logging
24log = 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] ],
118trigMuonEFSAThresholds = {
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] ],
164efCombinerThresholds = {
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] ],
208muFastThresholdsForECWeakBRegion = {
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. ],
252trigMuonEFTrkIsoThresholds = {
256 'ivarverytight' : 0.04,
269trigMuonEFInvMassThresholds = {
270 'invmJPsiOS' : [2.5, 4.3],
271 'invmDimu' : [1.5, 14.],
272 'idZmumu' : [50., 130.],
273 'idJpsimumu' : [1., 5.],
277muonHypoMonGroups = [
'muonMon:online']
278idHypoMonGroups = [
'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'])
302 config =
TrigMufastHypoToolConfig(chainDict[
'chainName'], chainPart, chainDict[
'eventBuildType'], doOverlapRemoval, doMonitoring)
303 config.compile(flags)
308 def __init__(self, name, cpart, eventBuildType, doOverlapRemoval = False, doMonitoring = False):
310 from AthenaCommon.Logging
import logging
311 self.
__log = logging.getLogger(
'TrigMufastHypoToolConfig')
320 self.
__useGeV_v15a = any(x
in cpart[
'addInfo']
for x
in [
'idperf',
'idtp',
'3layersEC'])
325 from AthenaConfiguration.ComponentFactory
import CompFactory
326 tool = CompFactory.TrigMufastHypoTool(name)
372 key = threshold +
'GeV_v15a'
374 key = threshold +
'GeV_v22a'
376 key = threshold +
'GeV_barrelOnly_v15a'
378 key = threshold +
'GeV_v15a'
382 self.
tool().ApplyOR =
True
384 self.
tool().RequireDR =
True
385 self.
tool().RequireMass =
True
386 self.
tool().RequireSameSign =
True
388 self.
tool().DRThresBB = 0.05
389 self.
tool().MassThresBB = 0.20
391 self.
tool().DRThresBE = 0.05
392 self.
tool().MassThresBE = 0.20
394 self.
tool().EtaBinsEC = [0.0, 1.9, 2.1, 9.9]
395 self.
tool().DRThresEC = [0.06, 0.05, 0.05]
396 self.
tool().MassThresEC = [0.20, 0.15, 0.10]
399 self.
tool().ApplyOR =
True
401 self.
tool().RequireDR =
True
402 self.
tool().RequireMass =
True
403 self.
tool().RequireSameSign =
True
405 self.
tool().DRThresBB = 0.05
406 self.
tool().MassThresBB = 0.20
408 self.
tool().DRThresBE = 0.05
409 self.
tool().MassThresBE = 0.20
411 self.
tool().EtaBinsEC = [0.0, 1.9, 2.1, 9.9]
412 self.
tool().DRThresEC = [0.06, 0.05, 0.05]
413 self.
tool().MassThresEC = [0.20, 0.15, 0.10]
421 self.
tool().AcceptAll =
True
423 self.
tool().AcceptAll =
False
424 self.
tool().DoCalib =
True
425 self.
tool().PtBins = [ [ 0.0, 2.5 ] ] * nt
428 self.
tool().AcceptAll =
True
429 self.
tool().PtBins = [ [-10000.,10000.] ]
430 self.
tool().PtThresholds = [ [ -1. * GeV ] ]
431 self.
tool().PtThresholdForECWeakBRegionA = [ 3. * GeV ]
432 self.
tool().PtThresholdForECWeakBRegionB = [ 3. * GeV ]
437 self.
log().
debug(
'Set %d thresholds', nt)
438 self.
tool().AcceptAll =
False
439 self.
tool().PtBins = [ [ 0.0, 2.5 ] ] * nt
440 self.
tool().PtThresholds = [ [ 5.49 * GeV ] ] * nt
441 self.
tool().PtThresholdForECWeakBRegionA = [ 3. * GeV ] * nt
442 self.
tool().PtThresholdForECWeakBRegionB = [ 3. * GeV ] * nt
448 values = muFastThresholds[thvaluename]
449 self.
tool().PtBins[th] = values[0]
450 self.
tool().PtThresholds[th] = [ x * GeV
for x
in values[1] ]
451 self.
log().
debug(
'Configration of threshold[%d] %s', th, self.
tool().PtThresholds[th])
452 self.
log().
debug(
'Configration of PtBins[%d] %s', th, self.
tool().PtBins[th])
453 if thvaluename
in muFastThresholdsForECWeakBRegion:
454 spThres = muFastThresholdsForECWeakBRegion[thvaluename]
455 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
456 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[1] * GeV
458 self.
log().
debug(
'No special thresholds for EC weak Bfield regions for %s. Copy EC1 for region A, EC2 for region B.', thvaluename)
459 spThres = values[0][1]
460 if thvaluename ==
'2GeV' or thvaluename ==
'3GeV':
461 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[0] * GeV
462 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[0] * GeV
464 self.
tool().PtThresholdForECWeakBRegionA[th] = spThres[1] * GeV
465 self.
tool().PtThresholdForECWeakBRegionB[th] = spThres[2] * GeV
467 self.
log().
debug(
'Thresholds for A[%d]/B[%d] = %d/%d', th, th, self.
tool().PtThresholdForECWeakBRegionA[th], self.
tool().PtThresholdForECWeakBRegionB[th])
470 raise Exception(
'MuFast Hypo Misconfigured: threshold %r not supported' % thvaluename)
479 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigL2MuonOverlapRemoverMonitoringMufast
480 self.
tool().MonTool = TrigL2MuonOverlapRemoverMonitoringMufast(flags,
'TrigMufastHypoTool/' + self.
toolName())
482 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigMufastHypoMonitoring
483 self.
tool().MonTool = TrigMufastHypoMonitoring(flags,
'TrigMufastHypoTool/' + self.
toolName())
487 return CompFactory.TrigmuCombHypoAlg(name, **kwargs)
491 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
492 thresholds = [
'passthrough']
493 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
494 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
504 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
509 if chainDict[
'chainParts'][0][
'signature'] ==
'Bphysics':
512 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
515 tool.MonTool = TrigmuCombHypoMonitoring(flags,
"TrigmuCombHypoTool/"+chainDict[
'chainName'])
517 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
518 tool.MonTool = TrigmuCombHypoMonitoring(flags,
"TrigmuCombHypoTool/"+chainDict[
'chainName'])
521 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
522 d0cut=trigMuonLrtd0Cut[
'd0loose']
523 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
524 d0cut=trigMuonLrtd0Cut[
'd0medium']
525 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
526 d0cut=trigMuonLrtd0Cut[
'd0tight']
534 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
535 thresholds = [
'passthrough']
536 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
537 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
546 if 'mucombTag' in chainDict[
'chainParts'][0][
'extra']:
551 tool = config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
554 tool.MonTool = TrigL2MuonOverlapRemoverMonitoringMucomb(flags,
"TrigmuCombHypoTool/"+chainDict[
'chainName'])
556 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
557 tool.MonTool = TrigL2MuonOverlapRemoverMonitoringMucomb(flags,
"TrigmuCombHypoTool/"+chainDict[
'chainName'])
561 tool.RequireDR =
True
562 tool.RequireMufastDR =
True
563 tool.RequireMass =
True
564 tool.RequireSameSign =
True
565 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
566 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
567 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
568 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
577 if chainDict[
'chainParts'][0][
'multiplicity']==
"0":
578 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
587 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
591 tool.RequireDR =
True
592 tool.RequireMufastDR =
False
593 tool.RequireMass =
True
594 tool.RequireSameSign =
True
595 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
596 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
597 tool.MufastDRThres = [0]
598 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
606 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo'] :
607 thresholds = [
'passthrough']
608 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
609 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
620 tool=config.ConfigurationHypoTool( chainDict[
'chainName'], thresholds, tight, acceptAll, domuCombTag )
624 tool.RequireDR =
True
625 tool.RequireMufastDR =
True
626 tool.RequireMass =
True
627 tool.RequireSameSign =
True
628 tool.EtaBins = [0, 0.9, 1.1, 1.9, 2.1, 9.9]
629 tool.DRThres = [0.002, 0.001, 0.002, 0.002, 0.002]
630 tool.MufastDRThres = [0.4, 0.4, 0.4, 0.4, 0.4]
631 tool.MassThres = [0.004, 0.002, 0.006, 0.006, 0.006]
638 log = logging.getLogger(
'TrigmuCombHypoConfig')
642 tool = CompFactory.TrigmuCombHypoTool( thresholdHLT )
643 tool.AcceptAll = acceptAll
646 log.debug(
'Set %d thresholds', nt)
647 tool.PtBins = [ [ 0.0, 2.5 ] ] * nt
648 tool.PtThresholds = [ [ 5.83 * GeV ] ] * nt
650 for th, thvalue
in enumerate(thresholds):
651 if thvalue ==
'passthrough':
652 tool.AcceptAll =
True
653 tool.PtBins[th] = [-10000.,10000.]
654 tool.PtThresholds[th] = [ -1. * GeV ]
662 thvaluename = thvalue +
'GeV_v16'
664 thvaluename = thvalue +
'GeV_v15a'
667 thvaluename = thvalue +
'GeV_v22a'
668 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
671 values = muCombThresholds[thvaluename]
672 tool.PtBins[th] = values[0]
673 tool.PtThresholds[th] = [ x * GeV
for x
in values[1] ]
675 tool.ApplyPikCuts =
True
676 tool.MaxPtToApplyPik = 25.
677 tool.MaxChi2IDPik = 3.5
679 raise Exception(
'MuComb Hypo Misconfigured: threshold %r not supported' % thvaluename)
684 return CompFactory.TrigMuonEFHypoAlg(name, **kwargs)
688 chainPart = chainDict[
'chainParts'][0]
691 if int(chainPart[
'multiplicity']) == 0:
692 thresholds = [chainPart[
'threshold']]
694 doOverlapRemoval =
False
696 if chainPart[
'signature'] ==
'Bphysics' or 'l2io' in chainPart[
'l2AlgInfo']:
697 doOverlapRemoval =
False
698 elif int(chainPart[
'multiplicity']) > 1:
699 doOverlapRemoval =
True
700 elif len(chainDict[
'signatures']) > 1
and not chainPart[
'extra']:
701 doOverlapRemoval =
True
704 kwargs[
"RequireSAMuons"] =
True
705 kwargs[
"IsFastReco"] =
True
706 kwargs[
"RemoveOverlaps"] = doOverlapRemoval
709 if monitorAll
or any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
711 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigL2MuonOverlapRemoverMonitoringMufast
712 kwargs[
"MonTool"] = TrigL2MuonOverlapRemoverMonitoringMufast(flags,
'TrigMuonEFFastSAHypoTool/' + chainDict[
'chainName'])
714 from TrigMuonHypo.TrigMuonHypoMonitoring
import TrigMufastHypoMonitoring
715 kwargs[
"MonTool"] = TrigMufastHypoMonitoring(flags,
'TrigMuonEFFastSAHypoTool/' + chainDict[
'chainName'])
717 kwargs[
"ConeSize"] = 0.0
718 kwargs[
"NarrowScan"] =
False
720 name = chainDict[
'chainName']
721 log = logging.getLogger(name)
726 log.debug(
'Set %d thresholds', nt)
727 PtBins = [ [ 0.0, 2.5 ] ] * nt
728 PtThresholds = [ [ 5.49 * GeV ] ] * nt
730 for th, thvalue
in enumerate(thresholds):
731 thvaluename =
'6GeV_v15a'
733 useGeV_v15a = any(x
in chainPart[
'addInfo']
for x
in [
'idperf',
'idtp',
'3layersEC'])
734 if useGeV_v15a
or int(thvalue) < 5:
735 thvaluename = thvalue +
'GeV_v15a'
736 if int(thvalue) == 3:
737 thvaluename = thvalue +
'GeV_v22a'
739 isBarrelOnly =
'0eta105' in chainPart[
'etaRange']
741 thvaluename = thvalue+
"GeV_barrelOnly_v15a"
743 if int(thvalue) >= 20:
744 thvaluename = thvalue +
'GeV_v15a'
746 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
748 values = muFastThresholds[thvaluename]
750 PtBins[th] = values[0]
751 PtThresholds[th] = [ x * GeV
for x
in values[1] ]
752 log.debug(
'Configration of threshold[%d] %s', th, PtThresholds[th])
753 log.debug(
'Configration of PtBins[%d] %s', th, PtBins[th])
755 kwargs[
"AcceptAll"] =
'mucombTag' in chainPart[
'extra']
756 kwargs[
"PtBins"] = PtBins
757 kwargs[
"PtThresholds"] = PtThresholds
758 return CompFactory.TrigMuonEFHypoTool(name, **kwargs)
762 if chainDict[
'chainParts'][0][
'multiplicity']==
"0":
763 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
765 kwargs.setdefault(
"RequireSAMuons",
True)
766 if 'msonly' in chainDict[
'chainParts'][0][
'msonlyInfo']
and 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
767 kwargs.setdefault(
"RemoveOverlaps",
True)
771 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
772 kwargs.setdefault(
"MonTool", monTool)
774 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
775 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
776 kwargs.setdefault(
"MonTool", monTool)
777 if '3layersEC' in chainDict[
'chainParts'][0][
'addInfo']:
778 kwargs.setdefault(
"RequireThreeStations",
True)
780 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
783 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
786 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
789 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
792 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
799 kwargs.setdefault(
"ConeSize", conesize)
800 kwargs.setdefault(
"NarrowScan", narrowscan)
801 kwargs.setdefault(
"IsPhII", flags.Trigger.Offline.SA.Muon.scheduleActsReco
and
802 flags.Trigger.Offline.SA.Muon.usePhaseIIGeoSetup)
810 chainName = chainDict[
"chainName"]
811 hltChainName = chainName.rsplit(
"_L1",1)[0]
812 cparts = hltChainName.split(
"_")
814 if 'HLT' in hltChainName:
818 thrPart = part.split(
'mu')
819 if not thrPart[0]
or thrPart[0] ==
"0":
825 thr =thr.replace(
'noL1',
'')
826 for i
in range(1,int(mult)+1):
827 thresholds.append(thr)
831 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
833 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
834 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
836 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
839 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
842 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
845 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
848 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
856 return TrigMuonEFHypoToolCfg( chainDict[
'chainName'], thresholds, doSA=
True, MonTool=monTool, RequireSAMuons=
True, NarrowScan=narrowscan, ConeSize=conesize)
861 log = logging.getLogger(name)
864 log.debug(
'Set %d thresholds', nt)
865 PtBins = [ [ 0.0, 2.5 ] ] * nt
866 PtThresholds = [ [ 5.49 * GeV ] ] * nt
868 for th, thvalue
in enumerate(thresholds):
869 if (thvalue==
'passthrough'):
871 PtBins[th] = [-10000.,10000.]
872 PtThresholds[th] = [ -1. * GeV ]
874 if "0eta105" in name:
875 thvaluename = thvalue+
"GeV_barrelOnly"
878 thvaluename = thvalue +
'GeV_v22a'
881 thvaluename = thvalue +
'GeV'
883 thvaluename = thvalue +
'GeV_v15a'
884 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
887 values = trigMuonEFSAThresholds[thvaluename]
889 values = efCombinerThresholds[thvaluename]
890 PtBins[th] = values[0]
891 PtThresholds[th] = [ x * GeV
for x
in values[1] ]
894 kwargs.setdefault(
"AcceptAll", passthrough)
895 kwargs.setdefault(
"PtBins", PtBins)
896 kwargs.setdefault(
"PtThresholds", PtThresholds)
897 return CompFactory.TrigMuonEFHypoTool(name, **kwargs)
901 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo']:
902 thresholds = [
'passthrough']
903 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
904 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
908 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
913 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
916 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
919 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
922 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
925 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
932 if 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
939 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
941 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
942 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
945 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
946 d0cut=trigMuonLrtd0Cut[
'd0loose']
947 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
948 d0cut=trigMuonLrtd0Cut[
'd0medium']
949 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
950 d0cut=trigMuonLrtd0Cut[
'd0tight']
953 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
954 NarrowScan=narrowscan, RemoveOverlaps=overlap, ConeSize=conesize, MinimumD0=d0cut)
964 chainName = chainDict[
"chainName"]
965 hltChainName = chainName.rsplit(
"_L1",1)[0]
966 cparts = hltChainName.split(
"_")
967 if 'HLT' in hltChainName:
971 thrPart = part.split(
'mu')
972 if not thrPart[0]
or thrPart[0] ==
"0":
978 thr =thr.replace(
'noL1',
'')
979 for i
in range(1,int(mult)+1):
980 thresholds.append(thr)
981 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
984 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
987 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
990 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
993 if 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
1000 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
1007 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
1009 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1010 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
1012 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
1013 NarrowScan=narrowscan, ConeSize=conesize)
1020 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
1021 if 'ivarperf' in chainDict[
'chainParts'][0][
'isoInfo']:
1022 thresholds =
'passthrough'
1024 thresholds = cparts[0][
'isoInfo']
1030 tool.MonTool = TrigMuonEFTrackIsolationMonitoring(flags,
'TrigMuonEFTrackIsolationHypoTool/'+chainDict[
'chainName'])
1032 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1033 tool.MonTool = TrigMuonEFTrackIsolationMonitoring(flags,
'TrigMuonEFTrackIsolationHypoTool/'+chainDict[
'chainName'])
1040 if(isoCut==
'passthrough') :
1041 kwargs.setdefault(
"AcceptAll",
True)
1044 ptcone03 = trigMuonEFTrkIsoThresholds[ isoCut ]
1046 kwargs.setdefault(
"PtCone02Cut", 0.0)
1047 kwargs.setdefault(
"PtCone03Cut", ptcone03)
1048 kwargs.setdefault(
"AcceptAll",
False)
1051 kwargs.setdefault(
"RequireCombinedMuon",
False)
1052 kwargs.setdefault(
"DoAbsCut",
True)
1054 kwargs.setdefault(
"RequireCombinedMuon",
True)
1055 kwargs.setdefault(
"DoAbsCut",
False)
1058 if 'var' in isoCut :
1059 kwargs.setdefault(
"useVarIso",
True)
1061 kwargs.setdefault(
"useVarIso",
False)
1063 tool = CompFactory.TrigMuonEFTrackIsolationHypoTool(name, **kwargs)
1067 return CompFactory.TrigMuonEFTrackIsolationHypoAlg(name, **kwargs)
1070 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
1072 thresholds = cparts[-1][
'invMassInfo']
1073 if "os" in cparts[-1][
'addInfo']:
1081 tool.MonTool = TrigMuonEFInvMassHypoMonitoring(flags,
"TrigMuonEFInvMassHypoTool/"+chainDict[
'chainName'])
1083 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1084 tool.MonTool = TrigMuonEFInvMassHypoMonitoring(flags,
"TrigMuonEFInvMassHypoTool/"+chainDict[
'chainName'])
1090 massWindow = trigMuonEFInvMassThresholds[thresholds]
1092 kwargs.setdefault(
"InvMassLow", massWindow[0])
1093 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1094 kwargs.setdefault(
"AcceptAll",
False)
1096 tool = CompFactory.TrigMuonEFInvMassHypoTool(toolName, **kwargs)
1102 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1103 monTool = TrigMuonEFIdtpHypoMonitoring(flags,
"TrigMuonEFIdtpHypoTool/"+chainDict[
'chainName'])
1110 log = logging.getLogger(name)
1112 nt = len(thresholds)
1113 log.debug(
'Set %d thresholds', nt)
1114 ptBins = [ [ 0, 2.5 ] ] * nt
1115 ptThresholds = [ [ 5.49 * GeV ] ] * nt
1116 for th, thvalue
in enumerate(thresholds):
1117 thvaluename = thvalue +
'GeV'
1119 thvaluename = thvalue +
'GeV_v22a'
1120 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
1121 if (thvalue==
'passthrough'):
1122 ptBins[th] = [-10000.,10000.]
1123 ptThresholds[th] = [ -1. * GeV ]
1125 values = trigMuonEFSAThresholds[thvaluename]
1126 ptBins[th] = values[0]
1127 ptThresholds[th] = [ x * GeV
for x
in values[1] ]
1130 if (thvalue==
'passthrough'):
1131 kwargs.setdefault(
"AcceptAll",
True)
1133 kwargs.setdefault(
"AcceptAll",
False)
1135 kwargs.setdefault(
"PtBins", ptBins)
1136 kwargs.setdefault(
"PtThresholds", ptThresholds)
1139 return CompFactory.TrigMuonEFIdtpHypoTool( name, **kwargs )
1142 cname = chainDict[
'chainName']
1143 if 'idZmumu' in cname :
1144 thresholds =
'idZmumu'
1145 elif 'idJpsimumu' in cname :
1146 thresholds =
'idJpsimumu'
1148 log.warning(
"unknown chain name for IdtpInvmassHypo, chain name= %s, setting threshold of Z mass",cname)
1149 thresholds =
'idZmumu'
1153 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1154 tool.MonTool = TrigMuonEFIdtpInvMassHypoMonitoring(flags,
"TrigMuonEFIdtpInvMassHypoTool/"+chainDict[
'chainName'])
1160 massWindow = trigMuonEFInvMassThresholds[thresholds]
1161 kwargs.setdefault(
"InvMassLow", massWindow[0])
1162 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1163 kwargs.setdefault(
"AcceptAll",
False)
1165 return CompFactory.TrigMuonEFIdtpInvMassHypoTool(name, **kwargs)
1169 return CompFactory.TrigMuonEFIdtpHypoAlg(name, **kwargs)
1172 return CompFactory.TrigMuonLateMuRoIHypoAlg(name, **kwargs)
1180 tool = CompFactory.TrigMuonLateMuRoIHypoTool(name, AcceptAll=
False)
ConfigurationHypoTool(self, thresholdHLT, thresholds, tight, acceptAll, domuCombTag)
TrigMuonLateMuRoIHypoAlgCfg(flags, name="TrigMuRoIHypoAlg", **kwargs)
TrigMufastHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigMuonEFTrackIsolationHypoToolFromDict(flags, chainDict)
TrigMuonEFMSonlyHypoToolFromName(flags, chainDict)
TrigMuonEFCombinerHypoToolFromName(flags, chainDict)
Trigl2mtCBHypoToolwORFromDict(flags, chainDict)
TrigMuonEFFastRecoSAHypoToolFromDict(flags, chainDict)
TrigMuonEFTrackIsolationHypoAlgCfg(flags, name="TrigMuonEFTrackIsolationHypoAlg", **kwargs)
TrigMuonEFHypoToolCfg(name, thresholds, doSA=False, **kwargs)
TrigMuonEFHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigMuonLateMuRoIHypoCfg(flags, name="TrigMuRoIHypoTool")
TrigMuonEFTrackIsolationHypoCfg(flags, name, isoCut, **kwargs)
Trigl2IOHypoToolwORFromDict(flags, chainDict)
TrigMuonEFInvMassHypoCfg(flags, toolName, thresholds, **kwargs)
TrigMuonEFIdtpHypoToolFromDict(flags, chainDict)
TrigmuCombHypoToolFromDict(flags, chainDict)
getThresholdsFromDict(chainDict)
TrigMuonEFIdtpHypoAlgCfg(flags, name="TrigMuonEFIdtpHypoAlg", **kwargs)
TrigMufastHypoToolFromDict(flags, chainDict)
TrigMuonEFIdtpInvMassHypoToolFromDict(flags, chainDict)
TrigMuonEFIdtpHypoCfg(name, thresholds, **kwargs)
TrigMuonEFIdtpInvMassHypoCfg(name, thresholds, **kwargs)
TrigMuonEFInvMassHypoToolFromDict(flags, chainDict)
TrigmuCombHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigMuonEFMSonlyHypoToolFromDict(flags, chainDict)
TrigMuonEFCombinerHypoToolFromDict(flags, chainDict)
TrigMuonLateMuRoIHypoToolFromDict(flags, chainDict)
TrigmuCombHypoToolwORFromDict(flags, chainDict)