ATLAS Offline Software
Loading...
Searching...
No Matches
ThresholdDef.py
Go to the documentation of this file.
1# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2
3from ..Base.Thresholds import MuonThreshold, eEMThreshold, eEMVarThreshold, jEMThreshold, eTauThreshold, jTauThreshold, cTauThreshold, jJetThreshold, gJetThreshold, gLJetThreshold, XEThreshold, TEThreshold, LArSaturationThreshold, MBTSThreshold, MBTSSIThreshold, NimThreshold, NSWMonThreshold, ZeroBiasThresholdTopo
4from .L1CaloThresholdMapping import get_threshold_cut
5
6# Max thresholds for SPARE triggers, corresponding to maximum value in L1Topo
7# The pass requirement is et >= cut, so these ensure no events can pass
8thrVal_SPARE = 819.1 # == 2^13-1 * 100 MeV
9thrVal_SPAREXE = 104857.5 # == 2^20-1 * 100 MeV
10
12
13 alreadyExecuted = False
14
15 eEMVar = {
16 1 : {
17 "eta_bin_boundaries": [0, 0.7, 0.8, 1.1, 1.3, 1.4, 1.5, 1.8, 2.5], # 8 bins => 9 boundaries
18 "shift": [ 1, 1, -1, -2, -2, -3, -1, 0]
19 }
20 }
21
22 jJVar = {
23 0 : {
24 # boundaries fixed in L1Topo FW, do not change!
25 "eta_bin_boundaries": [0, 0.8, 1.6, 4.9], # 3 bins => 4 boundaries
26 "shift": [ 0, 0, 0]
27 },
28 1 : {
29 # boundaries fixed in L1Topo FW, do not change!
30 "eta_bin_boundaries": [0, 0.8, 1.6, 4.9], # 3 bins => 4 boundaries
31 "shift": [ 1, -1, 0]
32 }
33 }
34
35 @staticmethod
36 def addVaryingThrValues(thr, pt, shift_set):
37 eta_bin_boundaries = ThresholdDef.eEMVar[shift_set]["eta_bin_boundaries"]
38 shift = ThresholdDef.eEMVar[shift_set]["shift"]
39 thr.addThrValue(pt+shift[0], priority=1)
40 for idx,sh in reversed(list(enumerate(shift))):
41 eta_min = int(10 * eta_bin_boundaries[idx])
42 eta_max = int(10 * eta_bin_boundaries[idx+1])
43 thr.addThrValue( pt + sh, -eta_max, -eta_min, priority=2)
44 for idx,sh in enumerate(shift):
45 eta_min = int(10 * eta_bin_boundaries[idx])
46 eta_max = int(10 * eta_bin_boundaries[idx+1])
47 thr.addThrValue( pt + sh, eta_min, eta_max, priority=2)
48 return thr
49
50 def addJetVaryingThrValues(thr, pt, shift_set, rangemin, rangemax):
51 eta_bin_boundaries = ThresholdDef.jJVar[shift_set]["eta_bin_boundaries"]
52 shift = ThresholdDef.jJVar[shift_set]["shift"]
53 for idx,sh in reversed(list(enumerate(shift))):
54 eta_min = int(10 * eta_bin_boundaries[idx])
55 eta_max = int(10 * eta_bin_boundaries[idx+1])
56 if -eta_min < -rangemax or -eta_max > -rangemin:
57 continue
58 if -eta_min > - rangemin:
59 eta_min = rangemin
60 if -eta_max < - rangemax:
61 eta_max = rangemax
62 thr.addThrValue( pt + sh, -eta_max, -eta_min, priority=1)
63 for idx,sh in enumerate(shift):
64 eta_min = int(10 * eta_bin_boundaries[idx])
65 eta_max = int(10 * eta_bin_boundaries[idx+1])
66 if eta_min > rangemax or eta_max < rangemin:
67 continue
68 if eta_max > rangemax:
69 eta_max = rangemax
70 if eta_min < rangemin:
71 eta_min = rangemin
72 thr.addThrValue( pt + sh, eta_min, eta_max, priority=1)
73 return thr
74
75
76 @staticmethod
77 def registerThresholds(tc, menuName):
78
79 if ThresholdDef.alreadyExecuted:
80 raise RuntimeError("Calling ThresholdDef.registerThresholds twice")
81 ThresholdDef.alreadyExecuted = True
82
83 # MU (ATR-23227)
84 # Primary and emergency:
85 MuonThreshold( "MU3V" ).setThrValue( thr=3, ba=4 ) # similar to Run-2 MU4 efficiency
86 MuonThreshold( "MU3VF" ).setThrValue( thr=3, ba=4 ).setTGCFlags("F") # similar to Run-2 MU4 rate
87 MuonThreshold( "MU3VC" ).setThrValue( thr=3, ba=4 ).setTGCFlags("C") # to be checked
88 MuonThreshold( "MU5VF" ).setThrValue( thr=5, ba=6 ).setTGCFlags("F") # similar to Run-2 MU6
89 MuonThreshold( "MU8F" ).setThrValue( thr=8 ).setTGCFlags("F") # similar to Run-2 MU10
90 MuonThreshold( "MU8FC" ).setThrValue( thr=8 ).setTGCFlags("F & C") # backup for MU8F
91 MuonThreshold( "MU9VF" ).setThrValue( thr=9,ba=8 ).setTGCFlags("F") # backup for MU8F
92 MuonThreshold( "MU9VFC" ).setThrValue( thr=9,ba=8 ).setTGCFlags("F & C") # backup for MU8F
93 MuonThreshold( "MU8VF" ).setThrValue( thr=8, ba=10 ).setTGCFlags("F") # similar to Run-2 MU11
94 MuonThreshold( "MU8VFC" ).setThrValue( thr=8, ba=10 ).setTGCFlags("F & C") # backup for MU8VF
95 MuonThreshold( "MU14FCH" ).setThrValue( thr=14 ).setTGCFlags("F & C & H") # similar to Run-2 MU20
96 MuonThreshold( "MU14FCHR" ).setThrValue( thr=14 ).setTGCFlags("F & C & H").setExclusionList("rpcFeet") # similar to Run-2 MU21
97 MuonThreshold( "MU15VFCH" ).setThrValue( thr=15, ba=14 ).setTGCFlags("F & C & H") # similar to Run-2 MU20, bit lower rate than MU14
98 MuonThreshold( "MU15VFCHR").setThrValue( thr=15, ba=14 ).setTGCFlags("F & C & H").setExclusionList("rpcFeet") # emergency
99 MuonThreshold( "MU18VFCH" ).setThrValue( thr=18, ba=14 ).setTGCFlags("F & C & H") # emergency
100 # Close-by barrel muon:
101 MuonThreshold( "MU10BOM" ).setThrValue( thr=10 ).setRPCFlags("M").setRegion("BA") # multiple close-by muons, barrel-only
102 MuonThreshold( "MU12BOM" ).setThrValue( thr=12 ).setRPCFlags("M").setRegion("BA") # multiple close-by muons, barel-only, emergency
103 # Late muon:
104 MuonThreshold( "MU8FH" ).setThrValue( thr=8 ).setTGCFlags("F & H") # for late muon
105 # Alignment:
106 MuonThreshold( "MU20VFC" ).setThrValue( thr=20, ba=14 ).setTGCFlags("F & C") # alignment with toroid off
107 # Commissioning:
108 MuonThreshold( "MU12FCH" ).setThrValue( thr=12 ).setTGCFlags("F & C & H") # commissioning
109 MuonThreshold( "MU4BOM" ).setThrValue( thr=4 ).setRPCFlags("M").setRegion("BA") # multiple close-by muons, barrel-only, commissioning
110 MuonThreshold( "MU4BO" ).setThrValue( thr=4 ).setRegion("BA") # barrel-only, commissioning
111 MuonThreshold( "MU10BO" ).setThrValue( thr=10 ).setRegion("BA") # barrel-only, commissioning
112 MuonThreshold( "MU14EOF" ).setThrValue( thr=14 ).setTGCFlags("F").setRegion("EC,FW") # forward muon, commissioning
113 MuonThreshold( "MU8EOF" ).setThrValue( thr=8 ).setTGCFlags("F").setRegion("EC,FW") # forward muon, commissioning
114 MuonThreshold( "MU3EOF" ).setThrValue( thr=3, ba=4 ).setTGCFlags("F").setRegion("EC,FW") # forward muon, commissioning
115
116 NSWMonThreshold('NSWMon')
117
118 # eEM
119 eEM_cuts = [1, 2, 5, 7, 9, 12, 15, 18, 26]
120 # get ptMinToTopo value (different for pp and HI), then adjust threshold for lowest pT items based on this value
121 ttconfig = tc.l1menu.thresholds.typeWideThresholdConfig('eEM')
122 ptMin = ttconfig["ptMinToTopo"]
123 for thrV in eEM_cuts:
124 eEMThreshold('eEM%i' %thrV, 'eEM').addThrValue(max(get_threshold_cut('eEM', thrV), ptMin))
125
126 # eEM beam splashes
127 eEMThreshold('eEM22A', 'eEM').addThrValue(get_threshold_cut('eEM',22),16,20)
128 eEMThreshold('eEM22C', 'eEM').addThrValue(get_threshold_cut('eEM',22),-20,-16)
129
130 # eEM SPARES
131 for thrV in range(1,3):
132 eEMThreshold('eEMSPARE%i' % thrV, 'eEM').addThrValue(thrVal_SPARE)
133
134 # L section (used to be VH in Run2)
135 eEM_cuts = [9, 10, 12, 18, 24, 26, 40]
136 for thrV in eEM_cuts:
137 eEMThreshold('eEM%iL' % thrV, 'eEM').addThrValue(get_threshold_cut('eEM',thrV)).setIsolation( reta = "Loose", wstot = "Loose", rhad = "Loose" )
138
139 # M section (used to be VHI in Run2)
140 eEM_cuts = [10, 18, 20, 22, 24, 26, 28]
141 for thrV in eEM_cuts:
142 eEMThreshold('eEM%iM' % thrV, 'eEM').addThrValue(get_threshold_cut('eEM',thrV)).setIsolation( reta = "Medium", wstot = "Medium", rhad = "Medium" )
143
144 # T section (used to be VHIM in Run2)
145 eEM_cuts = [26]
146 for thrV in eEM_cuts:
147 eEMThreshold('eEM%iT' % thrV, 'eEM').addThrValue(get_threshold_cut('eEM',thrV)).setIsolation( reta = "Tight", wstot = "Tight", rhad = "Tight" )
148
149 # eEM with eta-dependent Et cuts
150 eEM_cuts = [24]
151 for thrV in eEM_cuts:
152 ThresholdDef.addVaryingThrValues( pt= get_threshold_cut('eEM',thrV), shift_set = 1,
153 thr=eEMVarThreshold( 'eEM%iVM' % thrV, 'eEM').setIsolation( reta = "Medium", wstot = "Medium", rhad = "Medium" ) )
154
155 # jEM
156 jEM_cuts = [25, 35]
157 for thrV in jEM_cuts:
158 jEMThreshold('jEM%i' % thrV, 'jEM').addThrValue(get_threshold_cut('jEM',thrV))
159
160 jEM_cuts = [20] # TODO: name->cut dictionary (needed as long as jEM are not calibrated)
161 for thrV in jEM_cuts:
162 jEMThreshold('jEM%iM' % thrV, 'jEM').addThrValue(get_threshold_cut('jEM',thrV)).setIsolation( iso = "Medium", frac = "Medium", frac2 = "Medium" )
163
164 # jEM SPARES
165 for thrV in range(1,2):
166 jEMThreshold('jEMSPARE%i' % thrV, 'jEM').addThrValue(thrVal_SPARE)
167
168 # eTAU
169 eTAU_cuts = [1, 2, 12, 20, 28, 30, 35, 60, 70, 80, 120, 140]
170 # get ptMinToTopo value (different for pp and HI), then adjust threshold for lowest pT items based on this value
171 ttconfig = tc.l1menu.thresholds.typeWideThresholdConfig('eTAU')
172 ptMin = ttconfig["ptMinToTopo"]
173 for thrV in eTAU_cuts:
174 eTauThreshold('eTAU%i' % thrV, 'eTAU').setEt(max(get_threshold_cut('eTAU', thrV), ptMin))
175
176 eTAU_cuts = [20]
177 for thrV in eTAU_cuts:
178 eTauThreshold('eTAU%iL' % thrV, 'eTAU').setEt(get_threshold_cut('eTAU', thrV)).setIsolation( rCore = "Loose" )
179 eTAU_cuts = [20, 28, 30, 35]
180 for thrV in eTAU_cuts:
181 eTauThreshold('eTAU%iM' % thrV, 'eTAU').setEt(get_threshold_cut('eTAU', thrV)).setIsolation( rCore = "Medium" )
182
183 eTAU_cuts = [40]
184 for thrV in eTAU_cuts:
185 eTauThreshold('eTAU%iHT' % thrV, 'eTAU').setEt(get_threshold_cut('eTAU', thrV)).setIsolation( rHad = "Tight" )
186 eTAU_cuts = [40,60]
187 for thrV in eTAU_cuts:
188 eTauThreshold('eTAU%iHM' % thrV, 'eTAU').setEt(get_threshold_cut('eTAU', thrV)).setIsolation( rHad = "Medium" )
189 eTAU_cuts = [60,80]
190 for thrV in eTAU_cuts:
191 eTauThreshold('eTAU%iHL' % thrV, 'eTAU').setEt(get_threshold_cut('eTAU', thrV)).setIsolation( rHad = "Loose" )
192 # eTAU SPARES
193 for thrV in range(1,10):
194 eTauThreshold('eTAUSPARE%i' % thrV, 'eTAU').setEt(thrVal_SPARE)
195
196 # cTAU
197 cTAU_cuts = [12, 20, 30, 35, 50]
198 for thrV in cTAU_cuts:
199 cTauThreshold('cTAU%iM' % thrV, 'cTAU').setEt(get_threshold_cut('cTAU', thrV)).setIsolation( isolation = f'Medium{thrV}' )
200
201 # cTAU SPARES
202 for thrV in range(1, 2+1):
203 cTauThreshold('cTAUSPARE%i' % thrV, 'cTAU').setEt(thrVal_SPARE)
204
205 # jTAU
206 jTAU_cuts = [1, 20, 30]
207 # get ptMinToTopo1 value (different for pp and HI), then adjust threshold for lowest pT items based on this value
208 ttconfig = tc.l1menu.thresholds.typeWideThresholdConfig('jTAU')
209 ptMin = ttconfig["ptMinToTopo1"]
210 for thrV in jTAU_cuts:
211 jTauThreshold('jTAU%i' % thrV, 'jTAU').setEt(max(get_threshold_cut('jTAU', thrV), ptMin))
212 jTAU_cuts = [30]
213 for thrV in jTAU_cuts:
214 jTauThreshold('jTAU%iM' % thrV, 'jTAU').setEt(get_threshold_cut('jTAU', thrV)).setIsolation( isolation = "Medium" )
215
216 # jTAU SPARES
217
218 # jJET (default eta range)
219 # For correspondence to Run 2, see https://twiki.cern.ch/twiki/bin/viewauth/Atlas/TriggerNamingRun3#New_naming_for_Calo_items
220 ttconfig = tc.l1menu.thresholds.typeWideThresholdConfig('jJ')
221 ptMin = ttconfig["ptMinToTopo1"]
222 jJ_cuts = [5, 10, 20, 30, 40, 50, 55, 60, 70, 80, 90, 125, 140, 160, 180, 500]
223 for thrV in jJ_cuts:
224 ThresholdDef.addJetVaryingThrValues( jJetThreshold('jJ%i' % thrV, 'jJ'), pt=max(get_threshold_cut('jJ', thrV),ptMin), shift_set=0, rangemin=0, rangemax=32 )
225
226 # jJET central
227 jJ_cuts = [(30,25), (40,25), (50,25), (56,49), (55,23), (70,23), (80,25), (85,21)]
228 for thrV, etamax in jJ_cuts:
229 ThresholdDef.addJetVaryingThrValues( jJetThreshold( 'jJ%ip0ETA%i' % (thrV, etamax), 'jJ'), pt=get_threshold_cut('CjJ', thrV), shift_set=0, rangemin=0, rangemax=etamax )
230
231 # jJET central, variable eta (EXAMPLE)
232 # ThresholdDef.addJetVaryingThrValues( jJetThreshold('jJ12p0ETA25V', 'jJ'), pt=12, shift_set=1, rangemin=0, rangemax=25 )
233
234 # jJET forward jet
235 jJ_cuts = [5, 10, 15, 20, 40, 50, 60, 90, 125]
236 for thrV in jJ_cuts:
237 ThresholdDef.addJetVaryingThrValues( jJetThreshold('jJ%ip30ETA49' % thrV, 'jJ'), pt=max(get_threshold_cut('FjJ', thrV),ptMin), shift_set=0, rangemin=30, rangemax=49 )
238
239 # jJET SPARES
240 for thrV in range(1,2):
241 jJetThreshold('jJSPARE%i' % thrV, 'jJ').addThrValue(thrVal_SPARE)
242
243
244 # gJET (default range)
245 for thrV in [20, 50, 100, 400]:
246 ThresholdDef.addJetVaryingThrValues( gJetThreshold('gJ%ip0ETA25' % thrV, 'gJ'), pt=get_threshold_cut('gJ', thrV), shift_set=0, rangemin=0, rangemax=25)
247
248 # gJET (forward)
249 for thrV in [20]:
250 ThresholdDef.addJetVaryingThrValues( gJetThreshold('gJ%ip25ETA49' % thrV, 'gJ'), pt=get_threshold_cut('gJ', thrV), shift_set=0, rangemin=25, rangemax=49)
251
252 # gJET SPARES
253 for thrV in range(1,2):
254 gJetThreshold('gJSPARE%i' % thrV, 'gJ').addThrValue(thrVal_SPARE)
255
256
257 # gLJET (default range)
258 for thrV in [80, 90, 100, 140, 160]:
259 ThresholdDef.addJetVaryingThrValues( gLJetThreshold('gLJ%ip0ETA25' % thrV, 'gLJ'), pt=get_threshold_cut('gLJ', thrV), shift_set=0, rangemin=0, rangemax=25)
260
261 # gLJET SPARES
262 for thrV in range(1,5):
263 gLJetThreshold('gLJSPARE%i' % thrV, 'gLJ').addThrValue(thrVal_SPARE)
264
265 # gXE
266 gXE_cuts = [70, 100]
267 for thrV in gXE_cuts:
268 XEThreshold('gXENC%i' % thrV, 'gXE').setXE(get_threshold_cut('gXENC', thrV))
269
270 #gXE_cuts = [70, 100]
271 #for thrV in gXE_cuts:
272 # XEThreshold('gXERHO%i' % thrV, 'gXE').setXE(get_threshold_cut('gXERHO', thrV))
273
274 gXE_cuts = [60, 70, 80, 100, 110, 120, 500]
275 for thrV in gXE_cuts:
276 XEThreshold('gXEJWOJ%i' % thrV, 'gXE').setXE(get_threshold_cut('gXEJWOJ', thrV))
277
278 # gMHT
279 for thrV in [500]:
280 XEThreshold('gMHT%i' % thrV, 'gXE').setXE(thrV)
281
282 # gTE
283 for thrV in [5, 10, 200, 280]:
284 TEThreshold('gTE%i' % thrV, 'gTE').setTE(thrV)
285
286 #gTE from BC+2 (for HI anti-shadowing)
287 for thrV in [280]:
288 TEThreshold('gESPRESSO%i' % thrV, 'gTE').setTE(thrV)
289
290 # jXE
291 jXE_cuts = [60, 70, 80, 90, 100, 110, 120, 500]
292 for thrV in jXE_cuts:
293 XEThreshold('jXE%i' % thrV, 'jXE').setXE(get_threshold_cut('jXE', thrV))
294
295 # cXE (linear combination of jFEX+gFEX MET)
296 cXE_cuts = []
297 for thrV in cXE_cuts:
298 XEThreshold('cXE%i' % thrV, 'jXE').setXE(get_threshold_cut('jXE', thrV))
299
300 # ENERGY SPARES
301 # decrement jXE spares for addtional heavy ion jTE/gTE thresholds
302 for thrV in range(1, 6):
303 XEThreshold('jXESPARE%i' % thrV, 'jXE').setXE(thrVal_SPAREXE)
304
305 jXE_cuts = [100]
306 for thrV in jXE_cuts:
307 XEThreshold('jXEC%i' % thrV, 'jXE').setXE(get_threshold_cut('jXE', thrV))
308
309 # ATR-24037
310 jXE_cuts = [100]
311 for thrV in jXE_cuts:
312 XEThreshold('jXEPerf%i' % thrV, 'jXE').setXE(get_threshold_cut('jXE', thrV))
313
314 # jTE
315 # additional heavy ion jTE threhsolds
316 for thrV in [3, 4, 5, 10, 20, 50, 100, 200, 600, 1500, 4000, 6500]:
317 TEThreshold('jTE%i' % thrV, 'jTE').setTE(thrV)
318
319 for thrV in [200,]:
320 TEThreshold('jTEC%i' % thrV, 'jTE').setTE(thrV)
321
322 for thrV in [100, 2600, 5600, 6300, 6600]:
323 TEThreshold('jTEFWD%i' % thrV, 'jTE').setTE(thrV)
324
325 for thrV in [100,5,1]:
326 TEThreshold('jTEFWDA%i' % thrV, 'jTE').setTE(thrV)
327
328 for thrV in [100,5,1]:
329 TEThreshold('jTEFWDC%i' % thrV, 'jTE').setTE(thrV)
330
331 # ATR-22344
332 LArSaturationThreshold('LArSaturation')
333
334 ZeroBiasThresholdTopo('ZeroBiasA').setSeedThreshold(seed=[805306368, 0, 0, 0, 0, 0], bcdelay=3564) # eEM18
335 ZeroBiasThresholdTopo('ZeroBiasB').setSeedThreshold(seed=[0, 49152, 0, 0, 0, 0], bcdelay=3564) # jJ125
336
337 # CALREQ
338
339 for i in range(3):
340 NimThreshold('CAL%i' % i, 'CALREQ', mapping=i)
341
342
343
344 # MBTS naming scheme defined in
345 # https://docs.google.com/spreadsheets/d/1R0s8Lw-0nPSjqe9YTuZBCeAdedn_Ve4Ax6bbMe_4bSk/edit#gid=1818891632
346
347 # run 1
348 thresholdA=[ 32.04, 26.98, 35.00, 33.54, 32.08, 36.46, 30.63, 32.08, 33.54, 30.63, 29.17, 33.54, 32.08, 32.08, 30.63, 26.25]
349 thresholdC=[ 55.42, 31.98, 32.81, 49.48, 98.44, 32.11, 32.62, 29.90, 24.06, 25.81, 25.52, 35.00, 27.71, 36.46, 26.25, 30.63]
350
351 # run 2 above MBTS_A08 only the even numbers are used
352 thresholdA=[ 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
353 thresholdC=[ 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
354
355 for i, (vA, vC) in enumerate(zip(thresholdA, thresholdC)):
356 MBTSSIThreshold('MBTS_A%i' % i).setVoltage(vA)
357 MBTSSIThreshold('MBTS_C%i' % i).setVoltage(vC)
358
359 thr_mbtsA = MBTSThreshold('MBTS_A', mapping=0)
360 thr_mbtsC = MBTSThreshold('MBTS_C', mapping=1)
361 for x in range(16):
362 if tc.thresholdExists('MBTS_A%i' % x):
363 thr_mbtsA.addSector( tc.getDefinedThreshold('MBTS_A%i' % x) )
364 if tc.thresholdExists('MBTS_C%i' % x):
365 thr_mbtsC.addSector( tc.getDefinedThreshold('MBTS_C%i' % x) )
366
367
368
369
370
371 NimThreshold('ZDC_0', 'ZDC')
372 NimThreshold('ZDC_1', 'ZDC')
373 NimThreshold('ZDC_2', 'ZDC')
374 #ATR-29719
375 NimThreshold('ZDC_ALT_0', 'ZDC')
376 NimThreshold('ZDC_ALT_1', 'ZDC')
377 NimThreshold('ZDC_ALT_2', 'ZDC')
378
379
380
381
382
383 NimThreshold('BCM_AtoC', 'BCM')
384 NimThreshold('BCM_CtoA', 'BCM')
385 NimThreshold('BCM_Wide', 'BCM')
386 NimThreshold('BCM_Comb', 'BCMCMB')
387 NimThreshold('BCM_MCA', 'BCM')
388 NimThreshold('BCM_MCC', 'BCM')
389 NimThreshold('BCM6', 'BCM')
390 NimThreshold('BCM7', 'BCM')
391 NimThreshold('BCM8', 'BCM')
392
393
396 NimThreshold('BMA0', 'NIM')
397 NimThreshold('BMA1', 'NIM')
398 NimThreshold('BMA2', 'NIM')
399 NimThreshold('BMA3', 'NIM')
400
401
402
403 NimThreshold('LUCID_A', 'LUCID')
404 NimThreshold('LUCID_C', 'LUCID')
405 NimThreshold('LUCID_Coinc_AC', 'LUCID')
406 NimThreshold('LUCID_COMM', 'LUCID')
407 NimThreshold('LUCID_05', 'LUCID')
408 NimThreshold('LUCID_06', 'LUCID')
409
410
411 NimThreshold('AFP_NSA', 'NIM', mapping=2)
412 NimThreshold('AFP_FSA', 'NIM', mapping=3)
413 NimThreshold('AFP_FSA_TOF_T0', 'NIM', mapping=4)
414 NimThreshold('AFP_FSA_TOF_T1', 'NIM', mapping=5)
415 NimThreshold('AFP_FSA_TOF_T2', 'NIM', mapping=6)
416 NimThreshold('AFP_FSA_TOF_T3', 'NIM', mapping=7)
417 NimThreshold('AFP_NSC', 'NIM', mapping=15)
418 NimThreshold('AFP_FSC', 'NIM', mapping=16)
419 NimThreshold('AFP_FSC_TOF_T0', 'NIM', mapping=17)
420 NimThreshold('AFP_FSC_TOF_T1', 'NIM', mapping=18)
421 NimThreshold('AFP_FSC_TOF_T2', 'NIM', mapping=19)
422 NimThreshold('AFP_FSC_TOF_T3', 'NIM', mapping=20)
423
424
425
426 NimThreshold('BPTX0', 'BPTX')
427 NimThreshold('BPTX1', 'BPTX')
428
429
430
431 NimThreshold('NIML1A', 'NIM', mapping=0)
432 NimThreshold('NIMLHCF', 'NIM', mapping=1)
433 NimThreshold('NIMTGC', 'NIM', mapping=12)
434 NimThreshold('NIMRPC', 'NIM', mapping=13)
435 NimThreshold('NIMTRT', 'NIM', mapping=14)
#define max(a, b)
Definition cfImp.cxx:41
addJetVaryingThrValues(thr, pt, shift_set, rangemin, rangemax)