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