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