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