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