ATLAS Offline Software
L1CaloThresholdMapping.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2 #
3 # This module defines mapping rules from nominal Phase-I L1Calo thresholds
4 # (target 50% efficiency point) to the actual cut that will be applied
5 # to the TOB ET. This allows tuning of the thresholds transparently via
6 # changes to the L1 menu, without adjusting the names of chains.
7 #
8 # The threshold mapping should be used for both multiplicity threshold
9 # definitions and for the threshold cuts on TOBs in topo algorithms.
10 
11 threshold_mapping = {
12  'eEM': { # TODO: Update when eFEX EM calibrations are applied
13  # in pp menu (doHeavyIonTobThresholds=False) ptMinToTopo value is assigined to eEM1 and eEM2
14  1:1.4,
15  2:2.7,
16  5:3.5,
17  7:5.5,
18  9:7,
19  10:8,
20  12:10,
21  15:13,
22  18:16,
23  20:18,
24  22:20,
25  24:22,
26  26:25,
27  28:27,
28  40:39,
29  },
30  'jEM': {
31  20:14,
32  25:20,
33  35:30, # prospective Run 4 L1 item, ATR-30180
34  },
35  'eTAU': {
36  # in pp menu (doHeavyIonTobThresholds=False) ptMinToTopo value is assigined to eTAU1 and eTAU2
37  1:0.5,
38  2:2.7,
39  12:7.7,
40  20:10.1,
41  30:17.7,
42  35:23.2,
43  40:29,
44  50:35,
45  55:37.5,
46  60:40,
47  70:50,
48  80:60,
49  140:100,
50  },
51  'jTAU': {
52  # in pp menu (doHeavyIonTobThresholds=False) ptMinToTopo value is assigined to jTAU1
53  1:1.4,
54  20:10.1,
55  30:17.7,
56  },
57  'cTAU': {
58  12:7.7,
59  20:10.1,
60  30:17.7,
61  35:23.2,
62  50:35,
63  55:37.5,
64  },
65  'jJ': {
66  5:5,
67  10:10,
68  15:15,
69  20:21,
70  30:26,
71  40:27,
72  50:31,
73  55:41,
74  60:60,
75  80:65,
76  90:81,
77  125:121,
78  140:137,
79  160:158,
80  180:195,
81  # Must be 400 to ensure threshold can be passed
82  500:400,
83  },
84  'CjJ': { # 0ETA2[1,3,5]
85  20:15,
86  30:22,
87  40:25,
88  50:33,
89  55:39,
90  56:40, # prospective Run 4 L1 item, ATR-30180
91  60:56,
92  70:54,
93  80:64,
94  85:70,
95  90:84,
96  100:98,
97  },
98  'SCjJ': { # 0ETA2[1,3,5], mostly a copy of CjJ but decoupled to allow for independent configuration of L1Topo's SimpleCone algorithm
99  10:15,
100  20:21,
101  30:22,
102  40:25,
103  50:33,
104  55:39,
105  60:56,
106  70:54,
107  80:64,
108  85:70,
109  90:84,
110  100:98,
111  },
112  'FjJ': { # 30ETA49
113  5:5,
114  10:10,
115  15:15,
116  20:20,
117  40:26,
118  50:32,
119  60:49,
120  90:83,
121  125:134,
122  },
123  'gJ':
124  {
125  20:20,
126  30:30,
127  40:40,
128  50:50,
129  100:100,
130  160:160,
131  400:400,
132  },
133  'gLJ':
134  {
135  80:50,
136  90:60, # prospective Run 4 L1 item, ATR-30180
137  100:70,
138  140:110,
139  160:130,
140  },
141  'jXE':
142  {
143  60:30,
144  70:34,
145  80:38,
146  90:45,
147  100:48,
148  110:52,
149  120:60,
150  500:300,
151  },
152  'gXENC':
153  {
154  70:30,
155  80:40,
156  100:50,
157  },
158 # 'gXERHO':
159 # {
160 # 70:30,
161 # 80:40,
162 # 100:50,
163 # },
164  'gXEJWOJ':
165  {
166  60:30,
167  70:35, #ATR-28679: switched from 70:30, to 70:35 for adding 60:30
168  80:40,
169  100:50,
170  110:55,
171  120:60,
172  500:300,
173  },
174 }
175 
176 def get_threshold_cut(threshold_type,threshold_val):
177  # To support more generality in topo alg configs
178  if threshold_val == 0:
179  return 0
180  # For jJ thresholds, there are different maps for:
181  # - jJ: 0-3.2 in eta
182  # - CjJ: 0-2.X (X=1,3,5) in eta
183  # - FjJ: 3.0-4.9 in eta
184  # - AjJ: 0-4.9 in eta uses the default range (L1Topo triggers)
185  _threshold_type = threshold_type
186  if threshold_type == 'AjJ':
187  _threshold_type = 'jJ'
188  return threshold_mapping[_threshold_type][threshold_val]
python.L1.Config.L1CaloThresholdMapping.get_threshold_cut
def get_threshold_cut(threshold_type, threshold_val)
Definition: L1CaloThresholdMapping.py:176