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)
808 chainName = chainDict[
"chainName"]
809 hltChainName = chainName.rsplit(
"_L1",1)[0]
810 cparts = hltChainName.split(
"_")
812 if 'HLT' in hltChainName:
816 thrPart = part.split(
'mu')
817 if not thrPart[0]
or thrPart[0] ==
"0":
823 thr =thr.replace(
'noL1',
'')
824 for i
in range(1,int(mult)+1):
825 thresholds.append(thr)
829 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
831 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
832 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFMSonlyHypoTool/"+chainDict[
'chainName'])
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']:
854 return TrigMuonEFHypoToolCfg( chainDict[
'chainName'], thresholds, doSA=
True, MonTool=monTool, RequireSAMuons=
True, NarrowScan=narrowscan, ConeSize=conesize)
859 log = logging.getLogger(name)
862 log.debug(
'Set %d thresholds', nt)
863 PtBins = [ [ 0.0, 2.5 ] ] * nt
864 PtThresholds = [ [ 5.49 * GeV ] ] * nt
866 for th, thvalue
in enumerate(thresholds):
867 if (thvalue==
'passthrough'):
869 PtBins[th] = [-10000.,10000.]
870 PtThresholds[th] = [ -1. * GeV ]
872 if "0eta105" in name:
873 thvaluename = thvalue+
"GeV_barrelOnly"
876 thvaluename = thvalue +
'GeV_v22a'
879 thvaluename = thvalue +
'GeV'
881 thvaluename = thvalue +
'GeV_v15a'
882 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
885 values = trigMuonEFSAThresholds[thvaluename]
887 values = efCombinerThresholds[thvaluename]
888 PtBins[th] = values[0]
889 PtThresholds[th] = [ x * GeV
for x
in values[1] ]
892 kwargs.setdefault(
"AcceptAll", passthrough)
893 kwargs.setdefault(
"PtBins", PtBins)
894 kwargs.setdefault(
"PtThresholds", PtThresholds)
895 return CompFactory.TrigMuonEFHypoTool(name, **kwargs)
899 if 'idperf' in chainDict[
'chainParts'][0][
'addInfo']
or 'idtp' in chainDict[
'chainParts'][0][
'addInfo']:
900 thresholds = [
'passthrough']
901 elif chainDict[
'chainParts'][0][
'multiplicity']==
"0":
902 thresholds = [chainDict[
'chainParts'][0][
'threshold']]
906 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
911 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
914 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
917 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
920 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
923 elif 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
930 if 'noL1' not in chainDict[
'chainParts'][0][
'extra']:
937 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
939 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
940 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
943 if 'd0loose' in chainDict[
'chainParts'][0][
'lrtInfo']:
944 d0cut=trigMuonLrtd0Cut[
'd0loose']
945 elif 'd0medium' in chainDict[
'chainParts'][0][
'lrtInfo']:
946 d0cut=trigMuonLrtd0Cut[
'd0medium']
947 elif 'd0tight' in chainDict[
'chainParts'][0][
'lrtInfo']:
948 d0cut=trigMuonLrtd0Cut[
'd0tight']
951 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
952 NarrowScan=narrowscan, RemoveOverlaps=overlap, ConeSize=conesize, MinimumD0=d0cut)
962 chainName = chainDict[
"chainName"]
963 hltChainName = chainName.rsplit(
"_L1",1)[0]
964 cparts = hltChainName.split(
"_")
965 if 'HLT' in hltChainName:
969 thrPart = part.split(
'mu')
970 if not thrPart[0]
or thrPart[0] ==
"0":
976 thr =thr.replace(
'noL1',
'')
977 for i
in range(1,int(mult)+1):
978 thresholds.append(thr)
979 if 'nscan10' in chainDict[
'chainParts'][0][
'addInfo']:
982 elif 'nscan20' in chainDict[
'chainParts'][0][
'addInfo']:
985 elif 'nscan30' in chainDict[
'chainParts'][0][
'addInfo']:
988 elif 'nscan40' in chainDict[
'chainParts'][0][
'addInfo']:
991 if 'nscan' in chainDict[
'chainParts'][0][
'addInfo']:
998 if 'muonqual' in chainDict[
'chainParts'][0][
'addInfo']:
1005 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
1007 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1008 monTool = TrigMuonEFHypoMonitoring(flags,
"TrigMuonEFCombinerHypoTool/"+chainDict[
'chainName'])
1010 tool =
TrigMuonEFHypoToolCfg(chainDict[
'chainName'], thresholds, doSA=
False, MuonQualityCut=muonquality, MonTool=monTool,
1011 NarrowScan=narrowscan, ConeSize=conesize)
1018 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
1019 if 'ivarperf' in chainDict[
'chainParts'][0][
'isoInfo']:
1020 thresholds =
'passthrough'
1022 thresholds = cparts[0][
'isoInfo']
1028 tool.MonTool = TrigMuonEFTrackIsolationMonitoring(flags,
'TrigMuonEFTrackIsolationHypoTool/'+chainDict[
'chainName'])
1030 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1031 tool.MonTool = TrigMuonEFTrackIsolationMonitoring(flags,
'TrigMuonEFTrackIsolationHypoTool/'+chainDict[
'chainName'])
1038 if(isoCut==
'passthrough') :
1039 kwargs.setdefault(
"AcceptAll",
True)
1042 ptcone03 = trigMuonEFTrkIsoThresholds[ isoCut ]
1044 kwargs.setdefault(
"PtCone02Cut", 0.0)
1045 kwargs.setdefault(
"PtCone03Cut", ptcone03)
1046 kwargs.setdefault(
"AcceptAll",
False)
1049 kwargs.setdefault(
"RequireCombinedMuon",
False)
1050 kwargs.setdefault(
"DoAbsCut",
True)
1052 kwargs.setdefault(
"RequireCombinedMuon",
True)
1053 kwargs.setdefault(
"DoAbsCut",
False)
1056 if 'var' in isoCut :
1057 kwargs.setdefault(
"useVarIso",
True)
1059 kwargs.setdefault(
"useVarIso",
False)
1061 tool = CompFactory.TrigMuonEFTrackIsolationHypoTool(name, **kwargs)
1065 return CompFactory.TrigMuonEFTrackIsolationHypoAlg(name, **kwargs)
1068 cparts = [i
for i
in chainDict[
'chainParts']
if i[
'signature']==
'Muon']
1070 thresholds = cparts[-1][
'invMassInfo']
1071 if "os" in cparts[-1][
'addInfo']:
1079 tool.MonTool = TrigMuonEFInvMassHypoMonitoring(flags,
"TrigMuonEFInvMassHypoTool/"+chainDict[
'chainName'])
1081 if any(group
in muonHypoMonGroups
for group
in chainDict[
'monGroups']):
1082 tool.MonTool = TrigMuonEFInvMassHypoMonitoring(flags,
"TrigMuonEFInvMassHypoTool/"+chainDict[
'chainName'])
1088 massWindow = trigMuonEFInvMassThresholds[thresholds]
1090 kwargs.setdefault(
"InvMassLow", massWindow[0])
1091 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1092 kwargs.setdefault(
"AcceptAll",
False)
1094 tool = CompFactory.TrigMuonEFInvMassHypoTool(toolName, **kwargs)
1100 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1101 monTool = TrigMuonEFIdtpHypoMonitoring(flags,
"TrigMuonEFIdtpHypoTool/"+chainDict[
'chainName'])
1108 log = logging.getLogger(name)
1110 nt = len(thresholds)
1111 log.debug(
'Set %d thresholds', nt)
1112 ptBins = [ [ 0, 2.5 ] ] * nt
1113 ptThresholds = [ [ 5.49 * GeV ] ] * nt
1114 for th, thvalue
in enumerate(thresholds):
1115 thvaluename = thvalue +
'GeV'
1117 thvaluename = thvalue +
'GeV_v22a'
1118 log.debug(
'Number of threshold = %d, Value of threshold = %s', th, thvaluename)
1119 if (thvalue==
'passthrough'):
1120 ptBins[th] = [-10000.,10000.]
1121 ptThresholds[th] = [ -1. * GeV ]
1123 values = trigMuonEFSAThresholds[thvaluename]
1124 ptBins[th] = values[0]
1125 ptThresholds[th] = [ x * GeV
for x
in values[1] ]
1128 if (thvalue==
'passthrough'):
1129 kwargs.setdefault(
"AcceptAll",
True)
1131 kwargs.setdefault(
"AcceptAll",
False)
1133 kwargs.setdefault(
"PtBins", ptBins)
1134 kwargs.setdefault(
"PtThresholds", ptThresholds)
1137 return CompFactory.TrigMuonEFIdtpHypoTool( name, **kwargs )
1140 cname = chainDict[
'chainName']
1141 if 'idZmumu' in cname :
1142 thresholds =
'idZmumu'
1143 elif 'idJpsimumu' in cname :
1144 thresholds =
'idJpsimumu'
1146 log.warning(
"unknown chain name for IdtpInvmassHypo, chain name= %s, setting threshold of Z mass",cname)
1147 thresholds =
'idZmumu'
1151 if any(group
in idHypoMonGroups
for group
in chainDict[
'monGroups']):
1152 tool.MonTool = TrigMuonEFIdtpInvMassHypoMonitoring(flags,
"TrigMuonEFIdtpInvMassHypoTool/"+chainDict[
'chainName'])
1158 massWindow = trigMuonEFInvMassThresholds[thresholds]
1159 kwargs.setdefault(
"InvMassLow", massWindow[0])
1160 kwargs.setdefault(
"InvMassHigh", massWindow[1])
1161 kwargs.setdefault(
"AcceptAll",
False)
1163 return CompFactory.TrigMuonEFIdtpInvMassHypoTool(name, **kwargs)
1167 return CompFactory.TrigMuonEFIdtpHypoAlg(name, **kwargs)
1170 return CompFactory.TrigMuonLateMuRoIHypoAlg(name, **kwargs)
1178 tool = CompFactory.TrigMuonLateMuRoIHypoTool(name, AcceptAll=
False)
ConfigurationHypoTool(self, thresholdHLT, thresholds, tight, acceptAll, domuCombTag)
TrigMuonEFTrackIsolationHypoAlgCfg(flags, name="TrigMuonEFTrackIsolationHypoAlg", **kwargs)
TrigMuonEFInvMassHypoCfg(flags, toolName, thresholds, **kwargs)
TrigmuCombHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigMuonEFIdtpHypoAlgCfg(flags, name="TrigMuonEFIdtpHypoAlg", **kwargs)
TrigMuonEFIdtpInvMassHypoCfg(name, thresholds, **kwargs)
TrigMuonLateMuRoIHypoCfg(flags, name="TrigMuRoIHypoTool")
TrigmuCombHypoToolFromDict(flags, chainDict)
TrigMuonEFIdtpHypoToolFromDict(flags, chainDict)
TrigMuonEFInvMassHypoToolFromDict(flags, chainDict)
TrigMuonEFIdtpHypoCfg(name, thresholds, **kwargs)
TrigMuonEFIdtpInvMassHypoToolFromDict(flags, chainDict)
TrigMuonEFHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigmuCombHypoToolwORFromDict(flags, chainDict)
TrigMuonEFMSonlyHypoToolFromName(flags, chainDict)
TrigMuonLateMuRoIHypoToolFromDict(flags, chainDict)
TrigMuonLateMuRoIHypoAlgCfg(flags, name="TrigMuRoIHypoAlg", **kwargs)
getThresholdsFromDict(chainDict)
Trigl2IOHypoToolwORFromDict(flags, chainDict)
TrigMuonEFMSonlyHypoToolFromDict(flags, chainDict)
TrigMufastHypoToolFromDict(flags, chainDict)
Trigl2mtCBHypoToolwORFromDict(flags, chainDict)
TrigMuonEFFastRecoSAHypoToolFromDict(flags, chainDict)
TrigMuonEFHypoToolCfg(name, thresholds, doSA=False, **kwargs)
TrigMufastHypoAlgCfg(flags, name="UNSPECIFIED", **kwargs)
TrigMuonEFCombinerHypoToolFromDict(flags, chainDict)
TrigMuonEFTrackIsolationHypoCfg(flags, name, isoCut, **kwargs)
TrigMuonEFCombinerHypoToolFromName(flags, chainDict)
TrigMuonEFTrackIsolationHypoToolFromDict(flags, chainDict)