CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
cscTriggerPrimitiveDigis_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 
4 # This function makes all the changes to cscTriggerPrimitiveDigis required
5 # for it to work in Run 2. It is declared here to be obvious when this file
6 # is opened, but not applied until after cscTriggerPrimitiveDigis is
7 # declared (and then only if the "run2" era is active).
9  """
10  Modifies cscTriggerPrimitiveDigis for Run 2
11  """
12  object.debugParameters = True
13  object.checkBadChambers = False
14  object.commonParam.isSLHC = True
15  object.commonParam.smartME1aME1b = True
16  object.commonParam.gangedME1a = False
17  object.alctParam07.alctNarrowMaskForR1 = True
18  object.alctParam07.alctGhostCancellationBxDepth = cms.int32(1)
19  object.alctParam07.alctGhostCancellationSideQuality = cms.bool(True)
20  object.alctParam07.alctPretrigDeadtime = cms.uint32(4)
21  object.clctParam07.clctPidThreshPretrig = 4
22  object.clctParam07.clctMinSeparation = 5
23  object.tmbParam.matchTrigWindowSize = 3
24 
25 
27  """
28  Modifies cscTriggerPrimitiveDigis for Run 2 + GEMs
29  """
30  object.GEMPadDigiProducer = "simMuonGEMPadDigis"
31  object.commonParam.runME11ILT = cms.bool(False)
32  object.clctSLHC.clctNplanesHitPattern = 3
33  object.clctSLHC.clctPidThreshPretrig = 2
34 
35  # to be used by ME11 chambers with GEM-CSC ILT
36  me11tmbSLHCGEM = cms.PSet(
37  mpcBlockMe1a = cms.uint32(0),
38  alctTrigEnable = cms.uint32(0),
39  clctTrigEnable = cms.uint32(0),
40  matchTrigEnable = cms.uint32(1),
41  matchTrigWindowSize = cms.uint32(3),
42  tmbL1aWindowSize = cms.uint32(7),
43  verbosity = cms.int32(0),
44  tmbEarlyTbins = cms.int32(4),
45  tmbReadoutEarliest2 = cms.bool(False),
46  tmbDropUsedAlcts = cms.bool(False),
47  clctToAlct = cms.bool(False),
48  tmbDropUsedClcts = cms.bool(False),
49  matchEarliestAlctME11Only = cms.bool(False),
50  matchEarliestClctME11Only = cms.bool(False),
51  tmbCrossBxAlgorithm = cms.uint32(2),
52  maxME11LCTs = cms.uint32(2),
53 
54  ## run in debug mode
55  debugLUTs = cms.bool(False),
56  debugMatching = cms.bool(False),
57  debugGEMDphi = cms.bool(False),
58 
59  ## use old dataformat
60  useOldLCTDataFormat = cms.bool(True),
61 
62  ## copad construction
63  maxDeltaBXInCoPad = cms.int32(1),
64  maxDeltaPadInCoPad = cms.int32(1),
65 
66  ## matching to pads in case LowQ CLCT
67  maxDeltaBXPadEven = cms.int32(1),
68  maxDeltaBXPadOdd = cms.int32(1),
69  maxDeltaPadPadEven = cms.int32(2),
70  maxDeltaPadPadOdd = cms.int32(3),
71 
72  ## matching to pads in case absent CLCT
73  maxDeltaBXCoPadEven = cms.int32(0),
74  maxDeltaBXCoPadOdd = cms.int32(0),
75  maxDeltaPadCoPadEven = cms.int32(2),
76  maxDeltaPadCoPadOdd = cms.int32(3),
77 
78  ## efficiency recovery switches
79  dropLowQualityCLCTsNoGEMs_ME1a = cms.bool(False),
80  dropLowQualityCLCTsNoGEMs_ME1b = cms.bool(True),
81  dropLowQualityALCTsNoGEMs_ME1a = cms.bool(False),
82  dropLowQualityALCTsNoGEMs_ME1b = cms.bool(False),
83  buildLCTfromALCTandGEM_ME1a = cms.bool(True),
84  buildLCTfromALCTandGEM_ME1b = cms.bool(True),
85  buildLCTfromCLCTandGEM_ME1a = cms.bool(False),
86  buildLCTfromCLCTandGEM_ME1b = cms.bool(False),
87  doLCTGhostBustingWithGEMs = cms.bool(False),
88  correctLCTtimingWithGEM = cms.bool(False),
89  promoteALCTGEMpattern = cms.bool(True),
90  promoteALCTGEMquality = cms.bool(True),
91  promoteCLCTGEMquality_ME1a = cms.bool(True),
92  promoteCLCTGEMquality_ME1b = cms.bool(True),
93 
94  ## rate reduction
95  doGemMatching = cms.bool(True),
96  gemMatchDeltaEta = cms.double(0.08),
97  gemMatchDeltaBX = cms.int32(1),
98  gemMatchDeltaPhiOdd = cms.double(1),
99  gemMatchDeltaPhiEven = cms.double(1),
100  gemMatchMinEta = cms.double(1.55),
101  gemMatchMaxEta = cms.double(2.15),
102  gemClearNomatchLCTs = cms.bool(False),
103 
104  ## cross BX algorithm
105  firstTwoLCTsInChamber = cms.bool(True),
106  )
107 
108  object.me11tmbSLHCGEM = me11tmbSLHCGEM
109 
111  """
112  Modifies cscTriggerPrimitiveDigis for Run 4 + GEMs
113  """
114  object.commonParam.runME21ILT = cms.bool(False)
115  object.clctSLHCME21 = object.clctSLHC.clone()
116  object.alctSLHCME21 = object.alctSLHC.clone()
117  object.alctSLHCME21.alctNplanesHitPattern = 3
118  object.alctSLHCME21.clctNplanesHitPattern = 3
119  object.alctSLHCME21.clctPidThreshPretrig = 2
120 
121  # to be used by ME21 chambers with GEM-CSC ILT
122  me21tmbSLHCGEM = cms.PSet(
123  mpcBlockMe1a = cms.uint32(0),
124  alctTrigEnable = cms.uint32(0),
125  clctTrigEnable = cms.uint32(0),
126  matchTrigEnable = cms.uint32(1),
127  matchTrigWindowSize = cms.uint32(3),
128  tmbL1aWindowSize = cms.uint32(7),
129  verbosity = cms.int32(0),
130  tmbEarlyTbins = cms.int32(4),
131  tmbReadoutEarliest2 = cms.bool(False),
132  tmbDropUsedAlcts = cms.bool(False),
133  clctToAlct = cms.bool(False),
134  tmbDropUsedClcts = cms.bool(False),
135  matchEarliestAlctME21Only = cms.bool(False),
136  matchEarliestClctME21Only = cms.bool(False),
137  tmbCrossBxAlgorithm = cms.uint32(2),
138  maxME21LCTs = cms.uint32(2),
139 
140  ## run in debug mode
141  debugLUTs = cms.bool(False),
142  debugMatching = cms.bool(False),
143  debugGEMDphi = cms.bool(False),
144 
145  ## use old dataformat
146  useOldLCTDataFormat = cms.bool(True),
147 
148  ## copad construction
149  maxDeltaBXInCoPad = cms.int32(1),
150  maxDeltaPadInCoPad = cms.int32(2),
151 
152  ## matching to pads in case LowQ CLCT
153  maxDeltaBXPad = cms.int32(1),
154  maxDeltaPadPadOdd = cms.int32(4),
155  maxDeltaPadPadEven = cms.int32(3),
156  maxDeltaWg = cms.int32(2),
157 
158  ## matching to pads in case absent CLCT
159  maxDeltaBXCoPad = cms.int32(1),
160  maxDeltaPadCoPad = cms.int32(2),
161 
162  ## efficiency recovery switches
163  dropLowQualityALCTsNoGEMs = cms.bool(False),
164  dropLowQualityCLCTsNoGEMs = cms.bool(True),
165  buildLCTfromALCTandGEM = cms.bool(True),
166  buildLCTfromCLCTandGEM = cms.bool(False),
167  doLCTGhostBustingWithGEMs = cms.bool(False),
168  correctLCTtimingWithGEM = cms.bool(False),
169  promoteALCTGEMpattern = cms.bool(True),
170  promoteALCTGEMquality = cms.bool(True),
171  promoteCLCTGEMquality = cms.bool(True),
172 
173  ## rate reduction
174  doGemMatching = cms.bool(True),
175  gemMatchDeltaEta = cms.double(0.08),
176  gemMatchDeltaBX = cms.int32(1),
177  gemMatchDeltaPhiOdd = cms.double(1),
178  gemMatchDeltaPhiEven = cms.double(1),
179  gemMatchMinEta = cms.double(1.5),
180  gemMatchMaxEta = cms.double(2.45),
181  gemClearNomatchLCTs = cms.bool(False),
182 
183  firstTwoLCTsInChamber = cms.bool(True),
184  )
185 
186  object.me21tmbSLHCGEM = me21tmbSLHCGEM
187 
189  """
190  Modifies cscTriggerPrimitiveDigis for Run 4 + RPCs
191  """
192  object.RPCDigiProducer = "simMuonRPCDigis"
193  object.commonParam.runME3141ILT = cms.bool(False)
194  object.clctSLHCME3141 = object.clctSLHC.clone()
195  object.alctSLHCME3141 = object.alctSLHC.clone()
196  object.alctSLHCME3141.alctNplanesHitPattern = 3
197  object.alctSLHCME3141.clctNplanesHitPattern = 3
198  object.alctSLHCME3141.clctPidThreshPretrig = 2
199 
200  # to be used by ME31-ME41 chambers with RPC-CSC ILT
201  me3141tmbSLHCRPC = cms.PSet(
202  mpcBlockMe1a = cms.uint32(0),
203  alctTrigEnable = cms.uint32(0),
204  clctTrigEnable = cms.uint32(0),
205  matchTrigEnable = cms.uint32(1),
206  matchTrigWindowSize = cms.uint32(3),
207  tmbL1aWindowSize = cms.uint32(7),
208  verbosity = cms.int32(0),
209  tmbEarlyTbins = cms.int32(4),
210  tmbReadoutEarliest2 = cms.bool(False),
211  tmbDropUsedAlcts = cms.bool(False),
212  clctToAlct = cms.bool(False),
213  tmbDropUsedClcts = cms.bool(False),
214  matchEarliestClctME3141Only = cms.bool(False),
215  tmbCrossBxAlgorithm = cms.uint32(2),
216  maxME3141LCTs = cms.uint32(2),
217 
218  ## run in debug mode
219  debugLUTs = cms.bool(False),
220  debugMatching = cms.bool(False),
221 
222  ## use old dataformat
223  useOldLCTDataFormatC = cms.bool(True),
224 
225  ## matching to digis in case LowQ CLCT
226  maxDeltaBXRPC = cms.int32(0),
227  maxDeltaStripRPCOdd = cms.int32(6),
228  maxDeltaStripRPCEven = cms.int32(4),
229  maxDeltaWg = cms.int32(2),
230 
231  ## efficiency recovery switches
232  dropLowQualityCLCTsNoRPCs = cms.bool(True),
233  buildLCTfromALCTandRPC = cms.bool(True),
234  buildLCTfromCLCTandRPC = cms.bool(False),
235  buildLCTfromLowQstubandRPC = cms.bool(True),
236  promoteCLCTRPCquality = cms.bool(True),
237  promoteALCTRPCpattern = cms.bool(True),
238  promoteALCTRPCquality = cms.bool(True),
239 
240  ## rate reduction
241  doRpcMatching = cms.bool(True),
242  rpcMatchDeltaEta = cms.double(0.08),
243  rpcMatchDeltaBX = cms.int32(1),
244  rpcMatchDeltaPhiOdd = cms.double(1),
245  rpcMatchDeltaPhiEven = cms.double(1),
246  rpcMatchMinEta = cms.double(1.5),
247  rpcClearNomatchLCTs = cms.bool(False),
248  ),
249 
250  object.me3141tmbSLHCRPC = me3141tmbSLHCRPC
251 
253 # Default parameters for CSCTriggerPrimitives generator
254 # =====================================================
255 cscTriggerPrimitiveDigis = cms.EDProducer("CSCTriggerPrimitivesProducer",
256  CSCCommonTrigger,
257 
258  # if False, parameters will be read in from DB using EventSetup mechanism
259  # else will use parameters from this config
260  debugParameters = cms.bool(False),
261 
262  # Name of digi producer module(s)
263  CSCComparatorDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCComparatorDigi"),
264  CSCWireDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigi"),
265  GEMPadDigiProducer = cms.InputTag(""),
266  RPCDigiProducer = cms.InputTag(""),
267 
268  # for SLHC studies we don't want bad chambers checks so far
269  checkBadChambers = cms.bool(True),
270 
271  # Parameters common for all boards
272  commonParam = cms.PSet(
273  isTMB07 = cms.bool(True),
274  isMTCC = cms.bool(False),
275 
276  # Flag for SLHC studies (upgraded ME11, MPC)
277  # (if true, isTMB07 should be true as well)
278  isSLHC = cms.bool(False),
279 
280  # ME1a configuration:
281  # smartME1aME1b=f, gangedME1a=t
282  # default logic for current HW
283  # smartME1aME1b=t, gangedME1a=f
284  # realistic upgrade scenario:
285  # one ALCT finder and two CLCT finders per ME11
286  # with additional logic for A/CLCT matching with ME1a unganged
287  # smartME1aME1b=t, gangedME1a=t
288  # the previous case with ME1a still being ganged
289  # Note: gangedME1a has effect only if smartME1aME1b=t
290  smartME1aME1b = cms.bool(False),
291  gangedME1a = cms.bool(True),
292 
293  # flags to optionally disable finding stubs in ME42 or ME1a
294  disableME1a = cms.bool(False),
295  disableME42 = cms.bool(False),
296 
297  ## enable the GEM-CSC integrated triggers for ME11 or ME21
298  runME11ILT = cms.bool(False),
299  runME21ILT = cms.bool(False),
300  runME3141ILT = cms.bool(False),
301  ),
302 
303  # Parameters for ALCT processors: old MC studies
304  alctParamOldMC = cms.PSet(
305  alctFifoTbins = cms.uint32(16),
306  alctFifoPretrig = cms.uint32(10),
307  alctDriftDelay = cms.uint32(3),
308  alctNplanesHitPretrig = cms.uint32(2),
309  alctNplanesHitPattern = cms.uint32(4),
310  alctNplanesHitAccelPretrig = cms.uint32(2),
311  alctNplanesHitAccelPattern = cms.uint32(4),
312  alctTrigMode = cms.uint32(3),
313  alctAccelMode = cms.uint32(1),
314  alctL1aWindowWidth = cms.uint32(5),
315  verbosity = cms.int32(0)
316  ),
317 
318  # Parameters for ALCT processors: MTCC-II
319  alctParamMTCC = cms.PSet(
320  alctFifoTbins = cms.uint32(16),
321  alctFifoPretrig = cms.uint32(10),
322  alctDriftDelay = cms.uint32(3),
323  alctNplanesHitPretrig = cms.uint32(2),
324  alctNplanesHitPattern = cms.uint32(4),
325  alctNplanesHitAccelPretrig = cms.uint32(2),
326  alctNplanesHitAccelPattern = cms.uint32(4),
327  alctTrigMode = cms.uint32(2),
328  alctAccelMode = cms.uint32(0),
329  alctL1aWindowWidth = cms.uint32(3),
330  verbosity = cms.int32(0)
331  ),
332 
333  # Parameters for ALCT processors: 2007 and later
334  alctParam07 = cms.PSet(
335  alctFifoTbins = cms.uint32(16),
336  alctFifoPretrig = cms.uint32(10),
337  alctDriftDelay = cms.uint32(2),
338  alctNplanesHitPretrig = cms.uint32(3),
339  alctNplanesHitPattern = cms.uint32(4),
340  alctNplanesHitAccelPretrig = cms.uint32(3),
341  alctNplanesHitAccelPattern = cms.uint32(4),
342  alctTrigMode = cms.uint32(2),
343  alctAccelMode = cms.uint32(0),
344  alctL1aWindowWidth = cms.uint32(7),
345  verbosity = cms.int32(0),
346 
347  # Configure early_tbins instead of hardcoding it
348  alctEarlyTbins = cms.int32(4),
349 
350  # Use narrow pattern mask for ring 1 chambers
351  alctNarrowMaskForR1 = cms.bool(False),
352 
353  # configured, not hardcoded, hit persistency
354  alctHitPersist = cms.uint32(6),
355 
356  # configure, not hardcode, up to how many BXs in the past
357  # ghost cancellation in neighboring WGs may happen
358  alctGhostCancellationBxDepth = cms.int32(4),
359 
360  # whether to compare the quality of stubs in neighboring WGs in the past
361  # to the quality of a stub in current WG
362  # when doing ghost cancellation
363  alctGhostCancellationSideQuality = cms.bool(False),
364 
365  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
366  alctPretrigDeadtime = cms.uint32(4),
367 
368  # SLHC only for ME11:
369  # whether to store the "corrected" ALCT stub time
370  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
371  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
372  alctUseCorrectedBx = cms.bool(False)
373  ),
374 
375  # Parameters for ALCT processors: SLHC studies
376  alctSLHC = cms.PSet(
377  alctFifoTbins = cms.uint32(16),
378  alctFifoPretrig = cms.uint32(10),
379  alctDriftDelay = cms.uint32(2),
380  alctNplanesHitPretrig = cms.uint32(3),
381  alctNplanesHitPattern = cms.uint32(4),
382  alctNplanesHitAccelPretrig = cms.uint32(3),
383  alctNplanesHitAccelPattern = cms.uint32(4),
384  alctTrigMode = cms.uint32(2),
385  alctAccelMode = cms.uint32(0),
386  alctL1aWindowWidth = cms.uint32(7),
387  verbosity = cms.int32(0),
388 
389  # Configure early_tbins instead of hardcoding it
390  alctEarlyTbins = cms.int32(4),
391 
392  # Use narrow pattern mask for ring 1 chambers
393  alctNarrowMaskForR1 = cms.bool(True),
394 
395  # configured, not hardcoded, hit persistency
396  alctHitPersist = cms.uint32(6),
397 
398  # configure, not hardcode, up to how many BXs in the past
399  # ghost cancellation in neighboring WGs may happen
400  alctGhostCancellationBxDepth = cms.int32(1),
401 
402  # whether to compare the quality of stubs in neighboring WGs in the past
403  # to the quality of a stub in current WG
404  # when doing ghost cancellation
405  alctGhostCancellationSideQuality = cms.bool(True),
406 
407  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
408  alctPretrigDeadtime = cms.uint32(0),
409 
410  # SLHC only for ME11:
411  # whether to store the "corrected" ALCT stub time
412  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
413  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
414  alctUseCorrectedBx = cms.bool(True)
415  ),
416 
417  # Parameters for CLCT processors: old MC studies
418  clctParamOldMC = cms.PSet(
419  clctFifoTbins = cms.uint32(12),
420  clctFifoPretrig = cms.uint32(7),
421  clctHitPersist = cms.uint32(6),
422  clctDriftDelay = cms.uint32(2),
423  clctNplanesHitPretrig = cms.uint32(2),
424  clctNplanesHitPattern = cms.uint32(4),
425  clctPidThreshPretrig = cms.uint32(2),
426  clctMinSeparation = cms.uint32(10),
427  # Debug
428  verbosity = cms.int32(0)
429  ),
430 
431  # Parameters for CLCT processors: MTCC-II
432  clctParamMTCC = cms.PSet(
433  clctFifoTbins = cms.uint32(12),
434  clctFifoPretrig = cms.uint32(7),
435  clctHitPersist = cms.uint32(6),
436  clctDriftDelay = cms.uint32(2),
437  clctNplanesHitPretrig = cms.uint32(4),
438  clctNplanesHitPattern = cms.uint32(1),
439  clctPidThreshPretrig = cms.uint32(2),
440  clctMinSeparation = cms.uint32(10),
441  # Debug
442  verbosity = cms.int32(0)
443  ),
444 
445  # Parameters for CLCT processors: 2007 and later
446  clctParam07 = cms.PSet(
447  clctFifoTbins = cms.uint32(12),
448  clctFifoPretrig = cms.uint32(7),
449  clctHitPersist = cms.uint32(4),
450  clctDriftDelay = cms.uint32(2),
451  clctNplanesHitPretrig = cms.uint32(3),
452  clctNplanesHitPattern = cms.uint32(4),
453  clctPidThreshPretrig = cms.uint32(2),
454  clctMinSeparation = cms.uint32(10),
455  # Debug
456  verbosity = cms.int32(0),
457 
458  # BX to start CLCT finding (poor man's dead-time shortening):
459  clctStartBxShift = cms.int32(0)
460  ),
461 
462  # Parameters for CLCT processors: SLHC studies
463  clctSLHC = cms.PSet(
464  clctFifoTbins = cms.uint32(12),
465  clctFifoPretrig = cms.uint32(7),
466  clctHitPersist = cms.uint32(4),
467  clctDriftDelay = cms.uint32(2),
468  clctNplanesHitPretrig = cms.uint32(3),
469  clctNplanesHitPattern = cms.uint32(4),
470  # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks
471  clctPidThreshPretrig = cms.uint32(4),
472  # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
473  clctMinSeparation = cms.uint32(5),
474  # Debug
475  verbosity = cms.int32(0),
476 
477  # BX to start CLCT finding (poor man's to shorten the dead-time):
478  clctStartBxShift = cms.int32(0),
479 
480  # Turns on algorithms of localized dead-time zones:
481  useDeadTimeZoning = cms.bool(True),
482 
483  # Width (in #HS) of a fixed dead zone around a key HS:
484  clctStateMachineZone = cms.uint32(8),
485 
486  # Enables the algo which instead of using the fixed dead zone width,
487  # varies it depending on the width of a triggered CLCT pattern
488  # (if True, the clctStateMachineZone is ignored):
489  useDynamicStateMachineZone = cms.bool(True),
490 
491  # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
492  # which defines how far from pretrigger HS the TMB may look for a trigger HS
493  # (it becomes important to do so with localized dead-time zoning):
494  clctPretriggerTriggerZone = cms.uint32(5),
495 
496  # whether to store the "corrected" CLCT stub time
497  # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
498  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
499  clctUseCorrectedBx = cms.bool(True)
500  ),
501 
502  tmbParam = cms.PSet(
503  mpcBlockMe1a = cms.uint32(0),
504  alctTrigEnable = cms.uint32(0),
505  clctTrigEnable = cms.uint32(0),
506  matchTrigEnable = cms.uint32(1),
507  matchTrigWindowSize = cms.uint32(7),
508  tmbL1aWindowSize = cms.uint32(7),
509  # Debug
510  verbosity = cms.int32(0),
511 
512  # Configure early_tbins instead of hardcoding it
513  tmbEarlyTbins = cms.int32(4),
514 
515  # Flag for whether to readout only the earliest max two LCTs in a
516  # L1A readout window, as there is only room just for two in the TMB header.
517  # If false, all LCTs would be readout in L1A window.
518  tmbReadoutEarliest2 = cms.bool(True),
519 
520  # For CLCT-centric matching, whether to drop ALCTs that were matched
521  # to CLCTs in this BX, and not use them in the following BX
522  # (default non-upgrade TMB behavior).
523  tmbDropUsedAlcts = cms.bool(True)
524  ),
525 
526  # to be used by ME11 chambers with upgraded TMB and ALCT
527  tmbSLHC = cms.PSet(
528  mpcBlockMe1a = cms.uint32(0),
529  alctTrigEnable = cms.uint32(0),
530  clctTrigEnable = cms.uint32(0),
531  matchTrigEnable = cms.uint32(1),
532  # reduce ALCT-CLCT matching window size from 7 to 3
533  matchTrigWindowSize = cms.uint32(3),
534  tmbL1aWindowSize = cms.uint32(7),
535  # Debug
536  verbosity = cms.int32(0),
537 
538  # Configure early_tbins instead of hardcoding it
539  tmbEarlyTbins = cms.int32(4),
540 
541  # Flag for whether to readout only the earliest max two LCTs in a
542  # L1A readout window, as there is only room just for two in the TMB header.
543  # If false, all LCTs would be readout in L1A window.
544  tmbReadoutEarliest2 = cms.bool(False),
545 
546  # For CLCT-centric matching, whether to drop ALCTs that were matched
547  # to CLCTs in this BX, and not use them in the following BX
548  # (default non-upgrade TMB behavior).
549  tmbDropUsedAlcts = cms.bool(False),
550 
551  # Switch to enable
552  # True = CLCT-centric matching (default non-upgrade behavior,
553  # take CLCTs in BX look for matching ALCTs in window)
554  # False = ALCT-centric matching (recommended for SLHC,
555  # take ALCTs in BX look for matching CLCTs in window)
556  clctToAlct = cms.bool(False),
557 
558  # For ALCT-centric matching, whether to drop CLCTs that were matched
559  # to ALCTs in this BX, and not use them in the following BX
560  tmbDropUsedClcts = cms.bool(False),
561 
562  # For CLCT-centric matching in ME11, break after finding
563  # the first BX with matching ALCT
564  matchEarliestAlctME11Only = cms.bool(False),
565 
566  # For ALCT-centric matching in ME11, break after finding
567  # the first BX with matching CLCT
568  matchEarliestClctME11Only = cms.bool(False),
569 
570  # 0 = default "non-X-BX" sorting algorithm,
571  # where the first BX with match goes first
572  # 1 = simple X-BX sorting algorithm,
573  # where the central match BX goes first,
574  # then the closest early, the slocest late, etc.
575  tmbCrossBxAlgorithm = cms.uint32(1),
576 
577  # How many maximum LCTs per whole chamber per BX to keep
578  # (supposedly, 1b and 1a can have max 2 each)
579  maxME11LCTs = cms.uint32(2)
580  ),
581 
582  # MPC sorter config for SLHC studies
583  mpcSLHC = cms.PSet(
584  mpcMaxStubs = cms.uint32(3)
585  )
586 )
587 
588 #
589 # If the run2 era is active, make the required changes
590 #
591 from Configuration.StandardSequences.Eras import eras
592 eras.run2_common.toModify( cscTriggerPrimitiveDigis, _modifyCscTriggerPrimitiveDigisForRun2 )