SignatureDicts.py 42.9 KB
Newer Older
1
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
from AthenaCommon.Logging import logging
3
4
5
log = logging.getLogger( __name__ )
log.info("Importing %s",__name__)

6
7
8
from copy import deepcopy

#==========================================================
9
# This is stored in chainDict['Signature']
10
11
12
#==========================================================
SliceIDDict = {
    'Electron': 'e',
13
    'Photon'  : 'g',
14
15
16
17
18
19
20
21
22
    'Jet'     : 'j',
    'Muon'    : 'mu',
    'Tau'     : 'tau',
    'MET'     : 'xe',
    'XS'      : 'xs',
    'TE'      : 'te',
    'MinBias' : 'mb',
    'HeavyIon' : 'hi',
    'Cosmic'  : 'cosmic',
23
    'Calib'   : 'calib',
24
    'Streaming'     : 'streamer',
25
    'Monitor'    : 'mon',
26
27
    'Beamspot'      : 'beamspot',
    'EnhancedBias'  : 'eb',
28
    'UnconventionalTracking'  : 'unconvtrk',
29
30
31
    'Test'          : 'TestChain',
}

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class ChainStore(dict):
    """Class to hold list of chains for each signature (dictionary with fixed set of keys)"""
    _allowedSignatures = ['Egamma', 'Muon', 'Jet', 'Bjet', 'Bphysics', 'MET', 'Tau',
                          'HeavyIon', 'Beamspot', 'Cosmic', 'EnhancedBias',
                          'Monitor', 'Calib', 'Streaming', 'Combined', 'MinBias',
                          'UnconventionalTracking', 'Test']

    def __init__(self):
        # Create dicionary with fixed set of keys in the orignal order
        super().__init__({s : [] for s in self._allowedSignatures})

    def __setitem__(self, key, value):
        if key not in self:
            raise RuntimeError(f"'{key}' is not in the list of allowed signatures: {self._allowedSignatures}")
        else:
            dict.__setitem__(self, key, value)

49

50
51
52
53
54
55
56
57
58
#==========================================================
# ---- Generic Template for all chains          ----
# ---- chainParts specific information given in ----
# ---- signature specific dictionaries below    ----
#==========================================================
ChainDictTemplate = {
    'chainName'    : '',
    'L1item'        : '',
    'topo'          : '',
Catrin Bernius's avatar
Catrin Bernius committed
59
    'signatures'    : [],
60
    'alignmentGroups' : [],
61
62
63
64
65
    'stream'        : '',
    'groups'        : [],
    'EBstep'        : '',
    'chainParts'   : [],
    'topoStartFrom' : False,
66
    'sigFolder'     : '',
67
68
    'subSigs'        : [],
    'extraComboHypos' : []
69
70
}

71
72
73
#==========================================================
# Test chains
#==========================================================
74
# ---- Test Dictionary of all allowed Values ----
75
TestChainParts = {
76
    'L1threshold'    : '',
77
    'signature'      : ['Test'],
78
    'alignmentGroup' : ['Test'],
79
    'chainPartName'  : '',
80
    'multiplicity'   : '',
Tomasz Bold's avatar
Tomasz Bold committed
81
    'extra'          : ['muv1', 'muv1step', 'muv2', 'ev1', 'ev2', 'ev3', 'gv1', 'muEmpty1', 'muEmpty2', 'ev1dr', 'muv1dr','merge'],
82
83
84
    'trigType'       : ['TestChain'],
    'threshold'      : '',
    'addInfo'        : [''],
85
    'sigFolder'     : 'Test',
86
87
    'subSigs'       : ['Test'],
    'chainPartIndex': list(range(0,10))
88
}
89

90
91
92
# ---- Test Dictionary of default Values ----
TestChainParts_Default = {
    'signature'      : ['Test'],
93
    'alignmentGroup' : ['Test'],
94
    'L1threshold'    : '',
95
    'multiplicity'   : '',
96
97
98
    'trigType'       : '',
    'threshold'      : '',
    'addInfo'        : [],
99
    'sigFolder'     : 'Test',
100
101
    'subSigs'       : ['Test'],
    'chainPartIndex': 0
102
}
103
104
105
106

#==========================================================
# Jet
#==========================================================
107
AllowedTopos_jet = []
108
# ---- Jet Dictionary of all allowed Values ----
109
JetChainParts = {
110
    # Information common to all signatures
111
112
113
114
115
116
    'signature'     : ['Jet'],
    'alignmentGroup': ['Jet','JetMET'],
    'L1threshold'   : '',
    'chainPartName' : '',
    'threshold'     : '',
    'multiplicity'  : '',
117
    'trigType'     : ['j'],
118
    'topo'          : AllowedTopos_jet,
119
    'extra'        : [],
120
    'addInfo'      : ['perf'],
121
122
    'sigFolder'     : 'Jet',
    'subSigs'       : ['Jet'],
123
    'chainPartIndex': list(range(0,10)),
124
125
126
127
    # Information unique to the jet slice
    # Reco information
    'recoAlg'      : # Jet clustering algorithm
      ['a4', 'a10', 'a10r', 'a10t', 'a10sd'],
128
129
130
    'constitType'  : # Jet input type
      ['tc','pf'], # 'ufo' might be added at some point
    'clusterCalib' : # Topocluster calibration
131
      ['em', 'lcw'],
132
133
    'constitMod'   : # Constituent modifiers
      ['sk', 'cssk'],
134
    'jetCalib'     : # Jet calibration
135
      ['jes', 'subjes', 'subjesIS', 'subjesgscIS', 'subresjesgscIS', 'subjesgsc', 'subresjesgsc', 'nojcalib'],
136
137
    'scan'         : # No longer used?
      ['FS',],
138
139
    'ionopt'       : # Heavy ion configuration
      ['noion','ion'],
140
141
142
    'trkopt'       : # Tracking configuration
      ['notrk','ftf'],
    'trkpresel'    : # Tracking preselection
143
      ['nopresel',
144
145
146
147
148
149
150
151
152
153
       # Single jet
       'preselj20',
       'preselj50',
       'preselj80',
       'preselj120',
       'preselj140',
       'preselj180',
       'preselj200',
       'preselj225',
       # Multijets
154
155
       'presel2j140',
       'presel2j180',
156
       'presel2j200',
157
       'presel2j225',
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
       'presel3j45',
       'presel3j100',
       'presel3j125',
       'presel3j150',
       'presel4j20',
       'presel4j25',
       'presel4j50',
       'presel4j85',
       'presel5j25',
       'presel5j50',
       'presel6j40',
       'presel7j30',
       # Multiple threshold
       'preselj60XXj40',
       'preselj140XXj45',
       'preselj80XX2j45',
       'presel2j180XXj80',
175
176
177
178
179
180
181
       # Nonstandard eta regions
       'presel6c25',
       'preselj45XX2f40',
       'preselc60XXc45XXc25XXc20', # L1J45p0ETA21_3J15p0ETA25
       'preselc60XXj45XXf40',
       'preselj60XXj45XXf40',
       'presela60XXa40XX2a25'
182
     ],
183
184
185
186
    # Hypo information
    #   If hypoScenario is 'simple', then hypo configuration is handled based on the
    #   other dict contents. If it is not 'simple', then the configuration is 100%
    #   from the hypoScenario specification, and all other hypo entries are ignored.
187
    #   Complete scenario names for aliases can be found in Trigger/TrigHypothesis/TrigHLTJetHypo/python/hypoConfigBuilder.py
188
    'hypoScenario' : ['simple', # Independent selections on individual jets, multiplicity+threshold cuts
189
                      # 'fbdj' (forward-backward + dijet) scenario:
190
                      #   default eta selection for dijet mass cut is 0eta490
191
192
                      'FBDJSHARED',  # Forward backward jets + dijet, default parameters, fb and dj can share
                      'FBDJNOSHARED10etXX20etXX34massXX50fbet', # f/b jets + dijet, expl. parameters, fb and dj do not share
193
                      # 'dijet' scenario applies always a mass cut (deta and dphi cuts are optional)
194
195
196
197
198
199
200
201
202
                      #   0eta490 is the default eta selections for j1/j2
                      #   j12et sets the same et cuts for j1et and j2et
                      #   j12eta sets the same eta cuts for j1eta and j2eta
                      #   order:
                      #     et cuts    (mandatory)
                      #     eta cuts   (optional, if missing will use default)
                      #     djmass sel (mandatory)
                      #     djdphi sel (optional)
                      #     djdeta sel (optional)
203
204
                      #
                      # et threshold cuts
205
206
207
208
209
210
211
212
                      'DIJET80j12etXX0j12eta240XX700djmass', # Test dijet mass sel
                      'DIJET80j12etXX700djmassXXdjdphi260', # Test dijet mass sel including dphi cut
                      'DIJET70j12etXX1000djmassXXdjdphi200XX400djdeta', # dijet mass sel including dphi and deta cuts
                      'DIJET50j12etXX1000djmass',
                      'DIJET50j12etXX1000djmassXXdjdphi240',
                      'DIJET50j12etXX900djmass',
                      'DIJET35j12etXX1000djmass',
                      'DIJET20j12etXX110djmass',  # very loose cuts for testing
213
                      # pt threshold cuts
214
215
216
217
218
219
220
221
222
223
                      'DJMASS500j35', # alias
                      'DJMASS700j35', # alias
                      'DJMASS1000j35', # alias
                      'DJMASS700j40', # alias
                      'DJMASS700j50x0eta240', # alias
                      'DJMASS700j80x0eta240', # alias
                      'DJMASS900j50', # alias
                      'DJMASS1000j50', # alias
                      'DJMASS1000j50dphi240', # alias
                      'DJMASS1000j50dphi200x400deta', # alias
224
225
226
227
                      'DIJET80j12ptXX0j12eta240XX700djmass', # Test dijet mass sel
                      'DIJET80j12ptXX700djmassXXdjdphi260', # Test dijet mass sel including dphi cut
                      'DIJET70j12ptXX1000djmassXXdjdphi200XX400djdeta', # dijet mass sel including dphi and deta cuts
                      'DIJET20j12ptXX110djmass',  # very loose cuts for testing
Giulia Gonella's avatar
Giulia Gonella committed
228
229
230
231
                      'DIJETaliasExample',        # example of an alias for a dijet scenario with very loose cuts for testing
                      # no explicit pt cuts
                      'DIJET35j12ptXX700djmass',
                      'DIJET35j12ptXX500djmass',
232
                      # 'ht' category applies a cut on HT (HT>value) computed by aggregation over single jets (default filtering: 30et and 0eta320)
233
                      'HT0',
234
                      'HT1000',
235
                      'HT300',
236
237
238
239
240
241
242
243
244
245
                      'HT500',
                      'HT1000XX30et',
                      'HT500XX30et',
                      'HT50',
                      'HT50XX010jvt', # example of a HT chain using only jets passing JVT
                      'HT50XX30et',
                      'HT50XX30etXX010jvt', # example of a HT chain using only jets passing JVT
                      'HT100XX10et',
                      'HT50XX10etXX0eta320', # HT selection with explicit jet et/eta cuts
                      'HT50XX10ptXX0eta320' # HT selection with explicit jet et/eta cuts
246
                      ],
247

aakilgal's avatar
aakilgal committed
248
    'exotHypo' : ['ExoticPTF0p4dR1p2', 'ExoticPTF0p3dR1p2', 'ExoticPTF0p2dR1p2', 'ExoticPTF0p1dR1p2', 'ExoticPTF0p0dR1p2', 'TracklessdR1p2', 'ExoticPTF0p4dR0p4', 'ExoticPTF0p3dR0p4', 'ExoticPTF0p2dR0p4', 'ExoticPTF0p1dR0p4', 'ExoticPTF0p0dR0p4', 'TracklessdR0p4'],
249

250
251
    # Simple hypo configuration. Single property cuts defined as MINvarMAX
    'etaRange'      :
252
      ['0eta320', '320eta490', '0eta240', '0eta290', '0eta490', '0eta200'],
253
    'jvt'           : # Jet Vertex Tagger pileup discriminant
Jonathan Bossio's avatar
Jonathan Bossio committed
254
      ['010jvt', '011jvt', '015jvt', '020jvt', '050jvt', '059jvt'],
255
    'momCuts'       : # Generic moment cut on single jets
256
      ['050momemfrac100','momhecfrac010','050momemfrac100XXmomhecfrac010'],
257
    'prefilters'      : # Pre-hypo jet selectors (including cleaning)
258
    ['CLEANlb', 'CLEANllp', 'MASK300ceta210XX300nphi10',
259
260
     # ptrangeXrY (X, Y matches regex \d+)  triggers a prehypo selection of
     # jets by ordering by pt, and selecting those with indices in [X,Y]
261
262
     'PTRANGE0r1',
     'PTRANGE2r3'],
263
264
265
266
    'smc'           : # "Single mass condition" -- rename?
      ['30smcINF', '35smcINF', '40smcINF', '50smcINF', '60smcINF', 'nosmc'],
    # Setup for alternative data stream readout
    # B-tagging information
267
    'bTag'         : ['boffperf'  ,
268
                      'bmv2c2040' , 'bmv2c2050' , 'bmv2c2060' , 'bmv2c2070' , 'bmv2c2077' , 'bmv2c2085' ,
269
                      'bmv2c1040' , 'bmv2c1050' , 'bmv2c1060' , 'bmv2c1070' , 'bmv2c1077' , 'bmv2c1085' ,
270
                      'bhmv2c1040', 'bhmv2c1050', 'bhmv2c1060', 'bhmv2c1070', 'bhmv2c1077', 'bhmv2c1085',
271
                      'bdl1r60','bdl1r70','bdl1r77','bdl1r85'],
272
273
    'bTracking'    : [],
    'bConfig'      : ['split',],
274
275
    'bMatching'    : ['antimatchdr05mu'],
    'tboundary'    : ['SHARED'], # simple scenario tree boundary marker
276
277
}

278
# ---- Jet Dictionary of default Values ----
279
JetChainParts_Default = {
280
281
282
283
284
285
    'signature'     : ['Jet'],
    'alignmentGroup': ['Jet'],
    'L1threshold'   : '',
    'threshold'     : '',
    'multiplicity'  : '',
    'trigType'      :'j',
286
    'topo'          : [],
287
    'extra'         : '',
288
289
290
    'addInfo'       : [],
    'sigFolder'     : 'Jet',
    'subSigs'       : ['Jet'],
291
    'chainPartIndex': 0,
292
    #
293
    'recoAlg'       :'a4',
294
295
296
    'constitType'   :'tc',
    'clusterCalib'  :'em',
    'constitMod'    :'',
297
    'jetCalib'      :'default',
298
    'scan'          :'FS',
299
    'ionopt'        : 'noion',
300
301
302
303
304
305
    'trkopt'        : 'notrk',
    'trkpresel'     : 'nopresel',
    #
    'etaRange'      : '0eta320',
    'jvt'           : '',
    'momCuts'       : '',
306
    'prefilters'    : [],
307
    'hypoScenario'  : 'simple',
308
    'exotHypo'      : [],
309
310
    'smc'           : 'nosmc',
    #
311
312
313
314
    'bTag'          : '',
    'bTracking'     : '',
    'bConfig'       : [],
    'bMatching'     : [],
315
316
    #
    'tboundary'     : '',
317
}
318

319
320
# ---- bJet Dictionary of default Values that are different to the ones for normal jet chains ----
bJetChainParts_Default = {
321
    'etaRange' : '0eta290',
322
323
}

324
#==========================================================
325
# Muon
326
#==========================================================
327
328
AllowedTopos_mu = []

329
# ---- Muon Dictionary of all allowed Values ----
330
331
MuonChainParts = {
    'signature'      : ['Muon'],
332
    'alignmentGroup' : ['Muon','MuonnoL1'],
333
    'L1threshold'    : '',
334
    'chainPartName'  : [],
335
    'multiplicity'   : '',
336
    'trigType'       : ['mu'],
337
    'etaRange'       : ['0eta2550','0eta105'],
338
    'threshold'      : '',
339
    'extra'          : ['noL1', 'lateMu', "muoncalib" ,'noL2Comb','probe'],
340
    'IDinfo'         : [],
341
    'isoInfo'        : ['ivarloose', 'ivarmedium', 'ivarperf','iloosems'],
342
    'l2AlgInfo'      : ['l2io','l2mt'],
343
    'lrtInfo'        : ['d0loose','d0medium','d0tight'],
Daniele Zanzi's avatar
Daniele Zanzi committed
344
    'invMassInfo'    : ['invmJPsi'],
345
    'msonlyInfo'     : ['msonly'],
Savanna Shaw's avatar
Savanna Shaw committed
346
    'addInfo'        : ['1step','idperf','LRT','3layersEC','cosmic',"muonqual","nscan","os"],
347
    'topo'           : AllowedTopos_mu,
348
    'flavour'        : [],
349
    'sigFolder'     : 'Muon',
350
351
    'subSigs'       : ['Muon'],
    'chainPartIndex': list(range(0,10))
352
}
353
# ---- MuonDictionary of default Values ----
354
355
MuonChainParts_Default = {
    'signature'      : ['Muon'],
356
    'alignmentGroup' : ['Muon'],
357
    'L1threshold'    : '',
358
    'multiplicity'   : '',
359
    'trigType'       : ['mu'],
360
    'etaRange'       : '0eta250',
361
    'threshold'      : '',
362
363
364
    'extra'          : '',
    'IDinfo'         : '',
    'isoInfo'        : '',
365
    'l2AlgInfo'      : [],
366
    'lrtInfo'        : [],
367
    'addInfo'        : [],
368
    'invMassInfo'    : '',
369
    'msonlyInfo'     : [],
370
371
    'topo'           : [],
    'flavour'        : '',
372
    'sigFolder'     : 'Muon',
373
374
    'subSigs'       : ['Muon'],
    'chainPartIndex': 0
375
}
376
377
378
379

#==========================================================
# Bphysics
#==========================================================
380
AllowedTopos_Bphysics = [
381
382
    'bJpsimumu','bJpsi','bJpsimutrk','bUpsimumu','bUpsi','bBmumu','bDimu','bDimu2700','bDimu6000','bPhi','bTau','b3mu',
    'Lxy0','noos','nocut',
383
384
    'bBmumux','BpmumuKp','BcmumuPi','BsmumuPhi','BdmumuKst','LbPqKm', 'BcmumuDsloose', 'BcmumuDploose',
    'b0dRAB12vtx20'
385
]
386

387
# ---- Bphysics Dictionary of all allowed Values ----
388
389
BphysicsChainParts = deepcopy(MuonChainParts)
BphysicsChainParts['signature'] = ['Bphysics']
390
391
BphysicsChainParts['subFolder'] = 'Bphysics'
BphysicsChainParts['subSigs'] = ['Bphysics']
392
BphysicsChainParts['topo'] = AllowedTopos_Bphysics
393

394
# ---- Bphysics Dictionary of default Values ----
395
396
BphysicsChainParts_Default = deepcopy(MuonChainParts_Default)
BphysicsChainParts_Default['signature'] = ['Bphysics']
397
398
BphysicsChainParts_Default['subFolder'] = 'Bphysics'
BphysicsChainParts_Default['subSigs'] = ['Bphysics']
399
400
BphysicsChainParts_Default['topo'] = []

401

402
403
404
#==========================================================
# Taus
#==========================================================
405
406
AllowedTopos_tau = []

407
408
# ---- Tau Dictionary of all allowed Values ----
TauChainParts = {
409
410
411
412
413
    'signature'     : ['Tau'],
    'alignmentGroup': ['Tau'],
    'L1threshold'   : '',
    'chainPartName' : '',
    'threshold'     : '',
414
    'preselection'  : ['tracktwo', 'tracktwoMVA', 'tracktwoMVAClus','tracktwoMVATest', 'tracktwoMVABDT', 'tracktwoLLP', 'ptonly', ],
415
    'selection'     : ['medium1', 'looseRNN', 'mediumRNN', 'tightRNN', 'perf', 'idperf',
416
                       'kaonpi1', 'kaonpi2', 'dipion1', 'dipion2', 'dipion3', 'dipion4', 'dikaonmass', 'singlepion'],
417
418
419
    'multiplicity'  : '',
    'trigType'      : ['tau'],
    'trkInfo'       : '',
420
    'extra'         : ['probe'],
421
422
423
424
    'recoAlg'       : '',
    'calib'         : '',
    'addInfo'       : ['IdTest'],
    'topo'          : AllowedTopos_tau,
425
    'sigFolder'     : 'Tau',
426
427
    'subSigs'       : ['Tau'],
    'chainPartIndex': list(range(0,10))
428
429
}
TauChainParts_Default = {
430
431
432
433
434
    'signature'     : ['Tau'],
    'alignmentGroup': ['Tau'],
    'L1threshold'   : '',
    'chainPartName' : '',
    'threshold'     : '20',
435
436
    'preselection'  : 'tracktwoMVA',
    'selection'     : 'mediumRNN',
437
438
439
440
441
442
443
444
    'multiplicity'  :  '',
    'trigType'      : ['tau'],
    'trkInfo'       : [],
    'extra'         : '',
    'recoAlg'       : '',
    'calib'         : '',
    'addInfo'       :  '',
    'topo'          : [],
445
    'sigFolder'     : 'Tau',
446
447
    'subSigs'       : ['Tau'],
    'chainPartIndex': 0
448
449
450
451
452
}

#==========================================================
# MET
#==========================================================
453
AllowedTopos_xe = []
454
# ---- Met Dictionary of all allowed Values ----
455
METChainParts = {
456
457
458
459
460
461
462
463
464
465
466
467
468
    'signature'      : ['MET'],
    'alignmentGroup' : ['MET','JetMET'],
    'L1threshold'    : '',
    'chainPartName'  : '',
    'threshold'      : '',
    'multiplicity'   : '',
    'topo'           : AllowedTopos_xe,
    'trigType'       : ['xe'],
    'extra'          : ['noL1'],
    'calib'          : ['lcw','em'],
    'jetCalib'       : JetChainParts['jetCalib'],
    'L2recoAlg'      : [],
    'EFrecoAlg'      : ['cell', 'tc', 'tcpufit', 'mht', 'trkmht', 'pfsum', 'cvfpufit', 'pfopufit', 'mhtpufit'],
469
    'constitType'    : JetChainParts['constitType'],
470
471
472
    'L2muonCorr'     : [],
    'EFmuonCorr'     : [],
    'addInfo'        : ['FStracks'],
473
474
    'sigFolder'      : 'MET',
    'subSigs'        : ['MET'],
475
476
    'constitmod'     : ['cssk', 'vssk'],
    'chainPartIndex': list(range(0,10))
477
}
478
# ---- MetDictionary of default Values ----
479
480
METChainParts_Default = {
    'signature'      : ['MET'],
481
    'alignmentGroup' : ['MET'],
482
    'L1threshold'    : '',
483
484
485
486
    'trigType'       : ['xe'],
    'threshold'      : '',
    'extra'          : '',
    'calib'          : 'lcw',
487
    'jetCalib'       : JetChainParts_Default['jetCalib'],
488
    'L2recoAlg'      : '',
489
    'EFrecoAlg'      : '',
490
491
492
    'L2muonCorr'     : '',
    'EFmuonCorr'     : '',
    'addInfo'        : '',
493
    'constitType'    : 'tc',
494
    'constitmod'     : '',
495
    'sigFolder'     : 'MET',
496
497
    'subSigs'       : ['MET'],
    'chainPartIndex': 0
498
}
499
500
501
502

#==========================================================
# XS
#==========================================================
503
# ---- xs Dictionary of all allowed Values ----
504
XSChainParts = METChainParts
505
XSChainParts['signature'] = ['XS']
506
XSChainParts['trigType']  = ['xs']
507

508
# ---- xs Dictionary of default Values ----
509
510
511
512
513
514
515
XSChainParts_Default = METChainParts_Default
XSChainParts_Default['signature'] = ['XS']
XSChainParts_Default['trigType']  = ['xs']

#==========================================================
# TE
#==========================================================
516
# ---- te Dictionary of all allowed Values ----
517
TEChainParts = METChainParts
518
TEChainParts['signature'] = ['TE']
519
TEChainParts['trigType']  = ['te']
520

521
# ---- te Dictionary of default Values ----
522
523
524
525
526
527
528
TEChainParts_Default = METChainParts_Default
TEChainParts_Default['signature'] = ['TE']
TEChainParts_Default['trigType']  = ['te']

#==========================================================
# Electron Chains
#==========================================================
529
AllowedTopos_e = ['Jpsiee','Zeg','Zee','Heg','bBeeM6000']
530
# ---- Electron Dictionary of all allowed Values ----
531
532
ElectronChainParts = {
    'signature'      : ['Electron'],
533
    'alignmentGroup' : ['Electron','Egamma'],
534
    'chainPartName'  : '',
535
    'L1threshold'    : '',
536
    'extra'          : ['probe','ion'],
537
    'multiplicity'   : '',
538
539
    'trigType'       : ['e'],
    'threshold'      : '',
540
    'etaRange'       : [],
541
    'IDinfo'         : ['dnnloose','dnnmedium','dnntight','lhvloose','lhloose','lhmedium','lhtight','vloose','loose','medium','tight', 'mergedtight'],
542
    'isoInfo'        : ['ivarloose','ivarmedium','ivartight'],
Debottam Bakshi Gupta's avatar
Debottam Bakshi Gupta committed
543
544
    'idperfInfo'     : ['idperf'],
    'gsfInfo'        : ['gsf'],
545
    'lrtInfo'        : ['lrtloose','lrtmedium','lrttight'],
546
    'caloInfo'       : [],
547
    'lhInfo'         : ['nod0', 'nopix'],
Fernando Monticelli's avatar
Fernando Monticelli committed
548
    'L2IDAlg'        : ['noringer'],
549
    'addInfo'        : [ 'etcut', 'etcut1step',"fwd"],
550
    'sigFolder'     : 'Egamma',
551
    'subSigs'       : ['Electron','Photon'],
552
553
    'topo'          : AllowedTopos_e,
    'chainPartIndex': list(range(0,10))
554
}
555

556
# ---- Egamma Dictionary of default Values ----
557
558
ElectronChainParts_Default = {
    'signature'      : ['Electron'],
559
    'alignmentGroup' : ['Electron'],
560
    'multiplicity'   : '',
561
    'L1threshold'         : '',
562
563
564
565
566
567
568
569
    'trigType'       : '',
    'threshold'      : '',
    'etaRange'       : '0eta250',
    'extra'          : '',
    'IDinfoType'     : '',
    'IDinfo'         : '',
    'isoInfo'        : '',
    'reccalibInfo'   : '',
Debottam Bakshi Gupta's avatar
Debottam Bakshi Gupta committed
570
571
    'idperfInfo'     : '',
    'gsfInfo'        : '',
572
    'lrtInfo'        : '', 
573
    'caloInfo'       : '',
574
575
576
577
578
579
    'lhInfo'         : '',
    'L2IDAlg'        : '',
    'hypoInfo'       : '',
    'recoAlg'        : '',
    'FSinfo'         : '',
    'addInfo'        : [],
580
    'sigFolder'     : 'Egamma',
581
    'subSigs'       : ['Electron','Photon'],
582
    'topo'          : [],
583
    'chainPartIndex': 0
584
}
585
586
587
588

#==========================================================
# Photon chains
#==========================================================
589
# ---- Photon Dictionary of all allowed Values ----
590
AllowedTopos_g = ['dPhi25', 'm80']
591
PhotonChainParts = {
592
    'L1threshold'    : '',
593
    'signature'      : ['Photon'],
594
    'alignmentGroup' : ['Photon','Egamma'],
595
    'chainPartName'  : '',
596
    'multiplicity'   : '',
597
598
    'trigType'       : ['g'],
    'threshold'      : '',
599
    'extra'          : ['hiptrt'],
Fernando Monticelli's avatar
Fernando Monticelli committed
600
    'IDinfo'         : ['etcut','loose','medium','tight'],
601
    'isoInfo'        : ['icaloloose','icalomedium','icalotight'],
602
603
604
    'reccalibInfo'   : [],
    'trkInfo'        : [],
    'caloInfo'       : [],
605
606
    'hypoInfo'       : '',
    'recoAlg'        : [],
607
608
    'FSinfo'         : [],
    'addInfo'        : ['etcut',],
609
    'sigFolder'     : 'Egamma',
610
    'subSigs'       : ['Electron','Photon'],
611
    'topo'          : AllowedTopos_g,
Marco Montella's avatar
Marco Montella committed
612
    'chainPartIndex': list(range(0,10)),
613
614
    }

615
# ---- Photon Dictionary of default Values ----
616
617
PhotonChainParts_Default = {
    'signature'      : ['Photon'],
618
    'alignmentGroup' : ['Photon'],
619
    'L1threshold'    : '',
620
    'multiplicity'   : '',
621
622
623
624
625
626
627
    'trigType'       : '',
    'threshold'      : '',
    'extra'          : '',
    'IDinfo'         : '',
    'isoInfo'        : '',
    'reccalibInfo'   : '',
    'trkInfo'        : '',
628
    'caloInfo'       : '',
629
630
631
632
    'hypoInfo'       : '',
    'recoAlg'        : '',
    'FSinfo'         : '',
    'addInfo'        : [],
633
    'sigFolder'     : 'Egamma',
634
    'subSigs'       : ['Electron','Photon'],
635
636
    'topo'          : [],
    'chainPartIndex': 0
637
638
639
640
641
642
643
644
    }

#==========================================================
# MinBias chains
#==========================================================
# ---- MinBias Dictionary of all allowed Values ----
MinBiasChainParts = {
    'signature'      : ['MinBias'],
645
    'alignmentGroup' : ['MinBias'],
646
    'L1threshold'    : '',
647
    'chainPartName'  : '',
648
    'multiplicity'   : '',
649
650
    'trigType'       : ['mb'],
    'threshold'      : '',
Luisa Carvalho's avatar
Luisa Carvalho committed
651
    'extra'          : ['noisesup', 'vetombts2in', 'vetombts1side2in',  'vetospmbts2in', "vetosp" ,'ion', 'ncb', 'blayer', 'exclusiveloose', 'exclusivetight','dijet'], #ncb = non collision background, blayer = only sum innermost pix layer
652
653
654
655
    'IDinfo'         : [],
    'ZDCinfo'        : ['lg', 'hg'],
    'trkInfo'        : ['hlttr', 'ftk', 'costr'],
    'hypoL2Info'     : ['sp2', 'sp3', 'sp5', 'sp10', 'sp15', 'sp100', 'sp300', 'sp400', 'sp500', 'sp600', 'sp700', 'sp800', 'sp900',
656
                        'sp1000', 'sp1100', 'sp1200', 'sp1300', 'sp1400', 'sp1500', 'sp1600', 'sp1700', 'sp1800',
657
658
                        'sp2000', 'sp2100', 'sp2200', 'sp2300', 'sp2400', 'sp2500', 'sp2700', 'sp2800', 'sp2900', 'sp3000',
                        'sp3100', 'sp3500', 'sp4100', 'sp4500', 'sp4800', 'sp5000', 'sp5200',],
659
    'pileupInfo'     : ['pusup0','pusup200','pusup300','pusup350', 'pusup400', 'pusup450', 'pusup500', 'pusup550', 'pusup600', 'pusup700', 'pusup750', 'pusup800', 'pusup900',
660
661
                        'pusup1000', 'pusup1100', 'pusup1200', 'pusup1300', 'pusup1400', 'pusup1500',],
    'hypoEFInfo'     : ['trk3','trk5','trk10','trk15',  'trk20',  'trk30',  'trk40', 'trk45', 'trk50', 'trk55', 'trk60', 'trk65', 'trk70', 'trk75', 'trk80', 'trk90',
662
                        'trk100', 'trk110', 'trk120', 'trk130', 'trk140', 'trk150', 'trk160', 'trk180', 'trk200', 'trk220', 'trk240', 'trk260', 'trk280',
663
664
                        'pt2', 'pt4', 'pt6', 'pt8', ],
    'hypoEFsumEtInfo': ['sumet40', 'sumet50', 'sumet60', 'sumet70', 'sumet80', 'sumet90', 'sumet110', 'sumet150',],
665
    'recoAlg'        : ['mbts', 'sptrk', 'sp', 'noalg', 'perf', 'hmt', 'hmtperf', 'idperf', 'zdcperf', 'alfaperf','afprec'],
666
    'addInfo'        : ['peb'],
667
    'sigFolder'     : 'MinBias',
668
669
    'subSigs'       : ['MinBias'],
    'chainPartIndex': list(range(0,10))
670
    }
671
# ---- MinBiasDictionary of default Values ----
672
673
MinBiasChainParts_Default = {
    'signature'      : ['MinBias'],
674
    'alignmentGroup' : ['MinBias'],
675
    'L1threshold'    : '',
676
    'chainPartName'  : '',
677
    'multiplicity'   : '',
678
679
    'trigType'       : ['mb'],
    'threshold'      : '',
680
    'extra'          : '',
681
    'IDinfo'         : '',
682
683
    'ZDCinfo'        : '',
    'trkInfo'        : '',
684
685
686
    'hypoL2Info'     : '',
    'pileupInfo'     : '',
    'hypoEFInfo'     : '',
687
    'hypoEFsumEtInfo': '',
688
689
    'recoAlg'        : [],
    'addInfo'        : [],
690
    'sigFolder'     : 'MinBias',
691
692
    'subSigs'       : ['MinBias'],
    'chainPartIndex': 0
693
694
695
696
697
698
699
700
    }

#==========================================================
# HeavyIon chains
#==========================================================
# ---- HeavyIon Dictionary of all allowed Values ----
HeavyIonChainParts = {
    'signature'      : ['HeavyIon'],
701
    'alignmentGroup' : ['HeavyIon'],
702
    'L1threshold'    : '',
703
704
705
706
    'chainPartName'  : '',
    'multiplicity'   : '',
    'trigType'       : ['hi'],
    'threshold'      : '',
707
    'extra'          : [],
708
709
    'IDinfo'         : [],
    'trkInfo'        : [],
710
    'eventShape'     : [],
711
712
713
    'eventShapeVeto' : [],
    'hypoL2Info'     : [],
    'pileupInfo'     : [],
714
    'hypoEFInfo'     : [],
715
716
717
718
    'hypoEFsumEtInfo': [],
    'recoAlg'        : [],
    'addInfo'        : [],
    'gap'            : [],
719
    'sigFolder'     : 'HeavyIon',
720
721
    'subSigs'       : ['HeavyIon'],
    'chainPartIndex': list(range(0,10))
722
723
    }

724
# ---- HeavyIonDictionary of default Values ----
725
HeavyIonChainParts_Default = {
726
    'signature'      : ['HeavyIon'],
727
    'alignmentGroup' : ['HeavyIon'],
728
    'L1threshold'    : '',
729
730
731
732
733
734
735
736
737
    'chainPartName'  : '',
    'multiplicity'   : '',
    'trigType'       : ['hi'],
    'threshold'      : '',
    'extra'          : '',
    'IDinfo'         : '',
    'trkInfo'        : '',
    'eventShape'     : '',
    'eventShapeVeto' : '',
738
739
740
    'hypoL2Info'     : '',
    'pileupInfo'     : '',
    'hypoEFInfo'     : '',
741
    'hypoEFsumEtInfo': '',
742
743
    'recoAlg'        : [],
    'addInfo'        : [],
744
745
    'gap'            : '',
    'sigFolder'     : 'HeavyIon',
746
747
    'subSigs'       : ['HeavyIon'],
    'chainPartIndex': 0
748
749
750
751
752
    }

#==========================================================
# ---- CosmicDef chains -----
#==========================================================
753
754
AllowedCosmicChainIdentifiers = ['larps','larhec',
                                 'sct',  'id',]
755

756
# ---- Cosmic Chain Dictionary of all allowed Values ----
757
758
CosmicChainParts = {
    'signature'      : ['Cosmic'],
759
    'alignmentGroup' : ['Cosmic'],
760
    'chainPartName'  : '',
761
    'L1threshold'    : '',
762
    'purpose'        : AllowedCosmicChainIdentifiers,
763
    'addInfo'        : ['cosmicid','noise', 'beam', 'laser', 'AllTE', 'central', 'ds','CIS'], #'trtd0cut'
764
765
766
767
    'trackingAlg'    : ['idscan', 'sitrack', 'trtxk'],
    'hits'           : ['4hits'],
    'threshold'      : '',
    'multiplicity'   : '',
768
    'trigType'       : 'cosmic',
769
    'extra'          : '',
770
    'sigFolder'     : 'CalibCosmicMon',
771
772
    'subSigs'       : ['Cosmic'],
    'chainPartIndex': list(range(0,10))
773
774
    }

775
# ---- Cosmic Chain Default Dictionary of all allowed Values ----
776
777
CosmicChainParts_Default = {
    'signature'      : ['Cosmic'],
778
    'alignmentGroup' : ['Cosmic'],
779
    'chainPartName'  : '',
780
    'L1threshold'    : '',
781
782
783
784
785
786
    'purpose'        : [],
    'addInfo'        : [],
    'trackingAlg'    : [],
    'hits'           : [],
    'threshold'      : '',
    'multiplicity'   : '',
787
    'trigType'       : '',
788
    'extra'          : '',
789
    'sigFolder'     : 'CalibCosmicMon',
790
791
    'subSigs'       : ['Cosmic'],
    'chainPartIndex': 0
792
793
794
795
796
797
798
    }

#==========================================================
# ---- StreamingDef chains -----
#==========================================================
AllowedStreamingChainIdentifiers = ['noalg']

799
# ---- Streaming Chain Dictionary of all allowed Values ----
800
801
StreamingChainParts = {
    'signature'      : ['Streaming'],
802
    'alignmentGroup' : ['Streaming'],
803
    'chainPartName'  : '',
804
    'L1threshold'    : '',
805
806
    'threshold'      : '',
    'multiplicity'   : '',
807
808
809
810
    # No effect on configuration, used in special cases for
    # disambiguation or to allow events from the same L1 seed
    # to be written to different streams
    # New cases should be discussed with Menu Coordinators
811
    'streamingInfo'  : ['laser', 'CIS','idmon','mb','l1calo'],
812
    'trigType'       : 'streamer',
813
    'extra'          : '',
814
    'streamType'     : AllowedStreamingChainIdentifiers,
815
816
    'algo' : ['NoAlg'],
    'sigFolder'     : 'CalibCosmicMon',
817
818
    'subSigs'       : ['Streaming'],
    'chainPartIndex': list(range(0,10))
819
820
    }

821
# ---- Cosmic Chain Default Dictionary of all allowed Values ----
822
823
StreamingChainParts_Default = {
    'signature'      : ['Streaming'],
824
    'alignmentGroup' : ['Streaming'],
825
    'chainPartName'  : '',
826
    'L1threshold'    : '',
827
828
    'threshold'      : '',
    'multiplicity'   : '',
829
    'streamingInfo'  : '',
830
    'trigType'       : '',
831
832
833
    'extra'          : '',
    'streamType'     : '',
    'algo' : [],
834
    'sigFolder'     : 'CalibCosmicMon',
835
836
    'subSigs'       : ['Streaming'],
    'chainPartIndex': 0
837
    }
838

839
840
841
#==========================================================
# ---- CalibDef chains -----
#==========================================================
842
843
AllowedCalibChainIdentifiers = ['csccalib',     'larcalib',
                                'idcalib',      'l1calocalib',
844
                                'tilelarcalib',
845
                                'larnoiseburst','ibllumi',
846
                                'l1satmon',     'zdcpeb',
Debottam Bakshi Gupta's avatar
Debottam Bakshi Gupta committed
847
                                'calibAFP', 'larpsallem', 'larpsall', 
848
849
                                ]

850
# ---- Calib Chain Dictionary of all allowed Values ----
851
852
853
##stramingInfo not use in ChainConfiguration, only to distinguish streaming

CalibChainParts = {
854
    'signature'      : ['Calib'],