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