CMS 3D CMS Logo

tmbParams.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 tmbPhase1 = cms.PSet(
4  # block the ME1/a LCTs
5  mpcBlockMe1a = cms.uint32(0),
6  # allow ALCT-only LCTs
7  alctTrigEnable = cms.uint32(0),
8  # allow CLCT-only LCTs
9  clctTrigEnable = cms.uint32(0),
10  # allow ALCT-CLCT correlated LCTs (default)
11  matchTrigEnable = cms.uint32(1),
12  # matching window for the trigger
13  matchTrigWindowSize = cms.uint32(7),
14  # array with the preferred delta BX values for the candidate CLCTs
15  # perfectly in-time CLCTs are preferred, followed by
16  # first-early, first-late, second-early, second late, etc.
17  preferredBxMatch = cms.vint32(0, -1, 1, -2, 2, -3, 3),
18  # readout window for the DAQ
19  # LCTs found in the window [5, 6, 7, 8, 9, 10, 11] are good
20  tmbL1aWindowSize = cms.uint32(7),
21  # Debug
22  verbosity = cms.int32(0),
23  # Configure early_tbins instead of hardcoding it
24  tmbEarlyTbins = cms.int32(4),
25  # Flag for whether to readout only the earliest max two LCTs in a
26  # L1A readout window, as there is only room just for two in the TMB header.
27  # If false, all LCTs would be readout in L1A window.
28  # originally, this planned to change this for Phase-2, but no longer
29  # as of June 2021
30  tmbReadoutEarliest2 = cms.bool(True),
31  # For ALCT-centric matching in ME11, break after finding
32  # the first BX with matching CLCT. Should always be set to True
33  # when using the preferred BX windows
34  matchEarliestClctOnly = cms.bool(True),
35  # For ALCT-centric matching, whether to drop CLCTs that were matched
36  # to ALCTs in this BX, and not use them in the following BX
37  tmbDropUsedClcts = cms.bool(True),
38  # True: allow construction of unphysical LCTs
39  # in ME11 for which WG and HS do not intersect.
40  # False: do not build such unphysical LCTs
41  # It is recommended to keep this False, so that
42  # the EMTF receives all information, physical or not
43  ignoreAlctCrossClct = cms.bool(True),
44  # bits for high-multiplicity triggers
45  useHighMultiplicityBits = cms.bool(False),
46 )
47 
48 # to be used by ME11 chambers with upgraded TMB and ALCT
49 tmbPhase2 = tmbPhase1.clone(
50  # reduce ALCT-CLCT matching window size from 7 to 5
51  matchTrigWindowSize = 5,
52  # LCTs found in the window [6, 7, 8, 9, 10] are good
53  tmbL1aWindowSize = 5,
54  tmbDropUsedClcts = False,
55 )
56 
57 tmbPhase2GEM = tmbPhase2.clone(
58  # matching to GEM clusters in time
59  maxDeltaBXALCTGEM = cms.uint32(1),
60  maxDeltaBXCLCTGEM = cms.uint32(2),
61  # True: use the half-strip coordinate to match
62  # GEM with CSC TPs
63  # False: use the eighth-strip coordinate + CCLUT slope
64  # to match GEM with CSC TPs
65  matchWithHS = cms.bool(True),
66  # efficiency recovery switches
67  dropLowQualityALCTsNoGEMs = cms.bool(False),
68  dropLowQualityCLCTsNoGEMs = cms.bool(True),
69  buildLCTfromALCTandGEM = cms.bool(True),
70  buildLCTfromCLCTandGEM = cms.bool(True),
71  # assign GEM-CSC bending angle. Works only for
72  # Run-3 GEM-CSC TPs.
73  assignGEMCSCBending = cms.bool(False),
74  # whether to drop GEMs that were matched to ALCTs or CLCTs
75  # in this BX, and not use them in the following BX
76  tmbDropUsedGems = cms.bool(False),
77  # For ALCT-centric matching to GEMs, break after finding
78  # the first BX with matching GEM coincidence clusters
79  matchEarliestGemsOnly = cms.bool(True),
80  # When running the GEM-CSC matching, whether to mitigate
81  # the slope of CLCTs with high, meaning inconsistent,
82  # values of cosi (consistency of slope indicator)
83  # to optimize GEM-CSC slope correction
84  mitigateSlopeByCosi = cms.bool(True),
85 )
86 
87 # to be used by ME11 chambers with GEM-CSC ILT
88 tmbPhase2GE11 = tmbPhase2GEM.clone(
89  # matching to GEM clusters with half-strips
90  maxDeltaHsEven = cms.uint32(7),
91  maxDeltaHsOdd = cms.uint32(16),
92  maxDeltaHsEvenME1a = cms.uint32(5),
93  maxDeltaHsOddME1a = cms.uint32(12),
94  # efficiency recovery switches
95  dropLowQualityCLCTsNoGEMs_ME1a = cms.bool(True),
96  buildLCTfromALCTandGEM_ME1a = cms.bool(True),
97  buildLCTfromCLCTandGEM_ME1a = cms.bool(True),
98 )
99 
100 # to be used by ME21 chambers with GEM-CSC ILT
101 tmbPhase2GE21 = tmbPhase2GEM.clone(
102  # matching to GEM clusters with half-strips
103  maxDeltaHsEven = cms.uint32(3),
104  maxDeltaHsOdd = cms.uint32(5),
105  dropLowQualityALCTsNoGEMs = True,
106 )
107 
108 # LUTs to map wiregroup onto min and max half-strip number that it crosses in ME1/1
109 wgCrossHsME11Params = cms.PSet(
110  wgCrossHsME1aFiles = cms.vstring(
111  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_min_hs_ME1a.txt",
112  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_max_hs_ME1a.txt",
113  ),
114  wgCrossHsME1aGangedFiles = cms.vstring(
115  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_min_hs_ME1a_ganged.txt",
116  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_max_hs_ME1a_ganged.txt",
117  ),
118  wgCrossHsME1bFiles = cms.vstring(
119  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_min_hs_ME1b.txt",
120  "L1Trigger/CSCTriggerPrimitives/data/ME11/CSCLUT_wg_max_hs_ME1b.txt",
121  )
122 )
123 
124 # LUTs with correspondence between ALCT-CLCT combination
125 # code and the resulting best/second lct1
126 lctCodeParams = cms.PSet(
127  lctCodeFiles = cms.vstring(
128  "L1Trigger/CSCTriggerPrimitives/data/LCTCode/CSCLUT_code_to_bestLCT.txt",
129  "L1Trigger/CSCTriggerPrimitives/data/LCTCode/CSCLUT_code_to_secondLCT.txt",
130  )
131 )
132 
133 tmbPSets = cms.PSet(
134  tmbPhase1 = tmbPhase1.clone(),
135  tmbPhase2 = tmbPhase2.clone(),
136  tmbPhase2GE11 = tmbPhase2GE11.clone(),
137  tmbPhase2GE21 = tmbPhase2GE21.clone(),
138  wgCrossHsME11Params = wgCrossHsME11Params.clone(),
139  lctCodeParams = lctCodeParams.clone()
140 )