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  50:50
30  },
31  'jEM': {
32  20:14,
33  25:20,
34  35:30, # prospective Run 4 L1 item, ATR-30180
35  },
36  'eTAU': {
37  # in pp menu (doHeavyIonTobThresholds=False) ptMinToTopo value is assigined to eTAU1 and eTAU2
38  1:0.7,
39  2:2.7,
40  12:7.7,
41  20:10.1,
42  30:17.7,
43  35:23.2,
44  40:29,
45  50:35,
46  55:37.5,
47  60:40,
48  70:50,
49  80:60,
50  140:100,
51  },
52  'jTAU': {
53  # in pp menu (doHeavyIonTobThresholds=False) ptMinToTopo value is assigined to jTAU1
54  1:1.4,
55  20:10.1,
56  30:17.7,
57  },
58  'cTAU': {
59  12:7.7,
60  20:10.1,
61  30:17.7,
62  35:23.2,
63  50:35,
64  55:37.5,
65  },
66  'jJ': {
67  5:5,
68  10:10,
69  15:15,
70  20:21,
71  30:26,
72  40:27,
73  50:31,
74  55:41,
75  60:60,
76  80:65,
77  90:81,
78  125:121,
79  140:137,
80  160:158,
81  180:195,
82  # Must be 400 to ensure threshold can be passed
83  500:400,
84  },
85  'CjJ': { # 0ETA2[1,3,5]
86  20:15,
87  30:22,
88  40:25,
89  50:33,
90  55:39,
91  56:40, # prospective Run 4 L1 item, ATR-30180
92  60:56,
93  70:54,
94  80:64,
95  85:70,
96  90:84,
97  100:98,
98  },
99  'SCjJ': { # 0ETA2[1,3,5], mostly a copy of CjJ but decoupled to allow for independent configuration of L1Topo's SimpleCone algorithm
100  10:15,
101  20:21,
102  30:22,
103  40:25,
104  50:33,
105  55:39,
106  60:56,
107  70:54,
108  80:64,
109  85:70,
110  90:84,
111  100:98,
112  },
113  'FjJ': { # 30ETA49
114  5:5,
115  10:10,
116  15:15,
117  20:20,
118  40:26,
119  50:32,
120  60:49,
121  90:83,
122  125:134,
123  },
124  'gJ':
125  {
126  20:20,
127  30:30,
128  40:40,
129  50:50,
130  100:100,
131  160:160,
132  400:400,
133  },
134  'gLJ':
135  {
136  80:50,
137  90:60, # prospective Run 4 L1 item, ATR-30180
138  100:70,
139  140:110,
140  160:130,
141  },
142  'jXE':
143  {
144  60:30,
145  70:34,
146  80:38,
147  90:45,
148  100:48,
149  110:52,
150  120:60,
151  500:300,
152  },
153  'gXENC':
154  {
155  70:30,
156  80:40,
157  100:50,
158  },
159 # 'gXERHO':
160 # {
161 # 70:30,
162 # 80:40,
163 # 100:50,
164 # },
165  'gXEJWOJ':
166  {
167  60:30,
168  70:35, #ATR-28679: switched from 70:30, to 70:35 for adding 60:30
169  80:40,
170  100:50,
171  110:55,
172  120:60,
173  500:300,
174  },
175 }
176 
177 def get_threshold_cut(threshold_type,threshold_val):
178  # To support more generality in topo alg configs
179  if threshold_val == 0:
180  return 0
181  # For jJ thresholds, there are different maps for:
182  # - jJ: 0-3.2 in eta
183  # - CjJ: 0-2.X (X=1,3,5) in eta
184  # - FjJ: 3.0-4.9 in eta
185  # - AjJ: 0-4.9 in eta uses the default range (L1Topo triggers)
186  _threshold_type = threshold_type
187  if threshold_type == 'AjJ':
188  _threshold_type = 'jJ'
189  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:177