CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
cscTriggerPrimitiveDigisPostLS1_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
4 # Default parameters for CSCTriggerPrimitives generator
5 # =====================================================
6 cscTriggerPrimitiveDigisPostLS1 = cms.EDProducer("CSCTriggerPrimitivesProducer",
7  CSCCommonTrigger,
8 
9  # if False, parameters will be read in from DB using EventSetup mechanism
10  # else will use parameters from this config
11  debugParameters = cms.bool(True),
12 
13  # Name of digi producer module(s)
14  CSCComparatorDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCComparatorDigi"),
15  CSCWireDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigi"),
16 
17  # for SLHC studies we don't want bad chambers checks so far
18  checkBadChambers = cms.bool(False),
19 
20  # Parameters common for all boards
21  commonParam = cms.PSet(
22  isTMB07 = cms.bool(True),
23  isMTCC = cms.bool(False),
24 
25  # Flag for SLHC studies (upgraded ME11, MPC)
26  # (if true, isTMB07 should be true as well)
27  isSLHC = cms.bool(True),
28 
29  # ME1a configuration:
30  # smartME1aME1b=f, gangedME1a=t
31  # default logic for current HW
32  # smartME1aME1b=t, gangedME1a=f
33  # realistic upgrade scenario:
34  # one ALCT finder and two CLCT finders per ME11
35  # with additional logic for A/CLCT matching with ME1a unganged
36  # smartME1aME1b=t, gangedME1a=t
37  # the previous case with ME1a still being ganged
38  # Note: gangedME1a has effect only if smartME1aME1b=t
39  smartME1aME1b = cms.bool(True),
40  gangedME1a = cms.bool(False),
41 
42  # flagis to optionally disable finding stubs in ME42 or ME1a
43  disableME1a = cms.bool(False),
44  disableME42 = cms.bool(False)
45  ),
46 
47  # Parameters for ALCT processors: old MC studies
48  alctParamOldMC = cms.PSet(
49  alctFifoTbins = cms.uint32(16),
50  alctFifoPretrig = cms.uint32(10),
51  alctDriftDelay = cms.uint32(3),
52  alctNplanesHitPretrig = cms.uint32(2),
53  alctNplanesHitPattern = cms.uint32(4),
54  alctNplanesHitAccelPretrig = cms.uint32(2),
55  alctNplanesHitAccelPattern = cms.uint32(4),
56  alctTrigMode = cms.uint32(3),
57  alctAccelMode = cms.uint32(1),
58  alctL1aWindowWidth = cms.uint32(5),
59  verbosity = cms.int32(0)
60  ),
61 
62  # Parameters for ALCT processors: MTCC-II
63  alctParamMTCC = cms.PSet(
64  alctFifoTbins = cms.uint32(16),
65  alctFifoPretrig = cms.uint32(10),
66  alctDriftDelay = cms.uint32(3),
67  alctNplanesHitPretrig = cms.uint32(2),
68  alctNplanesHitPattern = cms.uint32(4),
69  alctNplanesHitAccelPretrig = cms.uint32(2),
70  alctNplanesHitAccelPattern = cms.uint32(4),
71  alctTrigMode = cms.uint32(2),
72  alctAccelMode = cms.uint32(0),
73  alctL1aWindowWidth = cms.uint32(3),
74  verbosity = cms.int32(0)
75  ),
76 
77  # Parameters for ALCT processors: 2007 and later
78  alctParam07 = cms.PSet(
79  alctFifoTbins = cms.uint32(16),
80  alctFifoPretrig = cms.uint32(10),
81  alctDriftDelay = cms.uint32(2),
82  alctNplanesHitPretrig = cms.uint32(3),
83  alctNplanesHitPattern = cms.uint32(4),
84  alctNplanesHitAccelPretrig = cms.uint32(3),
85  alctNplanesHitAccelPattern = cms.uint32(4),
86  alctTrigMode = cms.uint32(2),
87  alctAccelMode = cms.uint32(0),
88  alctL1aWindowWidth = cms.uint32(7),
89  verbosity = cms.int32(0),
90 
91  # Configure early_tbins instead of hardcoding it
92  alctEarlyTbins = cms.int32(4),
93 
94  # Use narrow pattern mask for ring 1 chambers
95  alctNarrowMaskForR1 = cms.bool(True),
96 
97  # configured, not hardcoded, hit persistency
98  alctHitPersist = cms.uint32(6),
99 
100  # configure, not hardcode, up to how many BXs in the past
101  # ghost cancellation in neighboring WGs may happen
102  alctGhostCancellationBxDepth = cms.int32(1),
103 
104  # whether to compare the quality of stubs in neighboring WGs in the past
105  # to the quality of a stub in current WG
106  # when doing ghost cancellation
107  alctGhostCancellationSideQuality = cms.bool(True),
108 
109  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
110  alctPretrigDeadtime = cms.uint32(4)
111  ),
112 
113  # Parameters for ALCT processors: SLHC studies
114  alctSLHC = cms.PSet(
115  alctFifoTbins = cms.uint32(16),
116  alctFifoPretrig = cms.uint32(10),
117  alctDriftDelay = cms.uint32(2),
118  alctNplanesHitPretrig = cms.uint32(3),
119  alctNplanesHitPattern = cms.uint32(4),
120  alctNplanesHitAccelPretrig = cms.uint32(3),
121  alctNplanesHitAccelPattern = cms.uint32(4),
122  alctTrigMode = cms.uint32(2),
123  alctAccelMode = cms.uint32(0),
124  alctL1aWindowWidth = cms.uint32(7),
125  verbosity = cms.int32(0),
126 
127  # Configure early_tbins instead of hardcoding it
128  alctEarlyTbins = cms.int32(4),
129 
130  # Use narrow pattern mask for ring 1 chambers
131  alctNarrowMaskForR1 = cms.bool(True),
132 
133  # configured, not hardcoded, hit persistency
134  alctHitPersist = cms.uint32(6),
135 
136  # configure, not hardcode, up to how many BXs in the past
137  # ghost cancellation in neighboring WGs may happen
138  alctGhostCancellationBxDepth = cms.int32(1),
139 
140  # whether to compare the quality of stubs in neighboring WGs in the past
141  # to the quality of a stub in current WG
142  # when doing ghost cancellation
143  alctGhostCancellationSideQuality = cms.bool(True),
144 
145  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
146  alctPretrigDeadtime = cms.uint32(0),
147 
148  # SLHC only for ME11:
149  # whether to store the "corrected" ALCT stub time
150  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
151  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
152  alctUseCorrectedBx = cms.bool(True)
153  ),
154 
155  # Parameters for CLCT processors: old MC studies
156  clctParamOldMC = cms.PSet(
157  clctFifoTbins = cms.uint32(12),
158  clctFifoPretrig = cms.uint32(7),
159  clctHitPersist = cms.uint32(6),
160  clctDriftDelay = cms.uint32(2),
161  clctNplanesHitPretrig = cms.uint32(2),
162  clctNplanesHitPattern = cms.uint32(4),
163  clctPidThreshPretrig = cms.uint32(2),
164  clctMinSeparation = cms.uint32(10),
165  # Debug
166  verbosity = cms.int32(0)
167  ),
168 
169  # Parameters for CLCT processors: MTCC-II
170  clctParamMTCC = cms.PSet(
171  clctFifoTbins = cms.uint32(12),
172  clctFifoPretrig = cms.uint32(7),
173  clctHitPersist = cms.uint32(6),
174  clctDriftDelay = cms.uint32(2),
175  clctNplanesHitPretrig = cms.uint32(4),
176  clctNplanesHitPattern = cms.uint32(1),
177  clctPidThreshPretrig = cms.uint32(2),
178  clctMinSeparation = cms.uint32(10),
179  # Debug
180  verbosity = cms.int32(0)
181  ),
182 
183  # Parameters for CLCT processors: 2007 and later
184  clctParam07 = cms.PSet(
185  clctFifoTbins = cms.uint32(12),
186  clctFifoPretrig = cms.uint32(7),
187  clctHitPersist = cms.uint32(4),
188  clctDriftDelay = cms.uint32(2),
189  clctNplanesHitPretrig = cms.uint32(3),
190  clctNplanesHitPattern = cms.uint32(4),
191  # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks
192  clctPidThreshPretrig = cms.uint32(4),
193  # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
194  clctMinSeparation = cms.uint32(5),
195  # Debug
196  verbosity = cms.int32(0),
197 
198  # BX to start CLCT finding (poor man's dead-time shortening):
199  clctStartBxShift = cms.int32(0)
200  ),
201 
202  # Parameters for CLCT processors: SLHC studies
203  clctSLHC = cms.PSet(
204  clctFifoTbins = cms.uint32(12),
205  clctFifoPretrig = cms.uint32(7),
206  clctHitPersist = cms.uint32(4),
207  clctDriftDelay = cms.uint32(2),
208  clctNplanesHitPretrig = cms.uint32(3),
209  clctNplanesHitPattern = cms.uint32(4),
210  # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks
211  clctPidThreshPretrig = cms.uint32(4),
212  # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
213  clctMinSeparation = cms.uint32(5),
214  # Debug
215  verbosity = cms.int32(0),
216 
217  # BX to start CLCT finding (poor man's to shorten the dead-time):
218  clctStartBxShift = cms.int32(0),
219 
220  # Turns on algorithms of localized dead-time zones:
221  useDeadTimeZoning = cms.bool(True),
222 
223  # Width (in #HS) of a fixed dead zone around a key HS:
224  clctStateMachineZone = cms.uint32(8),
225 
226  # Enables the algo which instead of using the fixed dead zone width,
227  # varies it depending on the width of a triggered CLCT pattern
228  # (if True, the clctStateMachineZone is ignored):
229  useDynamicStateMachineZone = cms.bool(True),
230 
231  # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
232  # which defines how far from pretrigger HS the TMB may look for a trigger HS
233  # (it becomes important to do so with localized dead-time zoning):
234  clctPretriggerTriggerZone = cms.uint32(5),
235 
236  # whether to store the "corrected" CLCT stub time
237  # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
238  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
239  clctUseCorrectedBx = cms.bool(True)
240  ),
241 
242  tmbParam = cms.PSet(
243  mpcBlockMe1a = cms.uint32(0),
244  alctTrigEnable = cms.uint32(0),
245  clctTrigEnable = cms.uint32(0),
246  matchTrigEnable = cms.uint32(1),
247  # reduce ALCT-CLCT matching window size from 7 to 3
248  matchTrigWindowSize = cms.uint32(3),
249  tmbL1aWindowSize = cms.uint32(7),
250  # Debug
251  verbosity = cms.int32(0),
252 
253  # Configure early_tbins instead of hardcoding it
254  tmbEarlyTbins = cms.int32(4),
255 
256  # Flag for whether to readout only the earliest max two LCTs in a
257  # L1A readout window, as there is only room just for two in the TMB header.
258  # If false, all LCTs would be readout in L1A window.
259  tmbReadoutEarliest2 = cms.bool(True),
260 
261  # For CLCT-centric matching, whether to drop ALCTs that were matched
262  # to CLCTs in this BX, and not use them in the following BX
263  # (default non-upgrade TMB behavior).
264  tmbDropUsedAlcts = cms.bool(True)
265  ),
266 
267  # to be used by ME11 chambers with upgraded TMB and ALCT
268  tmbSLHC = cms.PSet(
269  mpcBlockMe1a = cms.uint32(0),
270  alctTrigEnable = cms.uint32(0),
271  clctTrigEnable = cms.uint32(0),
272  matchTrigEnable = cms.uint32(1),
273  # reduce ALCT-CLCT matching window size from 7 to 3
274  matchTrigWindowSize = cms.uint32(3),
275  tmbL1aWindowSize = cms.uint32(7),
276  # Debug
277  verbosity = cms.int32(0),
278 
279  # Configure early_tbins instead of hardcoding it
280  tmbEarlyTbins = cms.int32(4),
281 
282  # Flag for whether to readout only the earliest max two LCTs in a
283  # L1A readout window, as there is only room just for two in the TMB header.
284  # If false, all LCTs would be readout in L1A window.
285  tmbReadoutEarliest2 = cms.bool(False),
286 
287  # For CLCT-centric matching, whether to drop ALCTs that were matched
288  # to CLCTs in this BX, and not use them in the following BX
289  # (default non-upgrade TMB behavior).
290  tmbDropUsedAlcts = cms.bool(False),
291 
292  # Switch to enable
293  # True = CLCT-centric matching (default non-upgrade behavior,
294  # take CLCTs in BX look for matching ALCTs in window)
295  # False = ALCT-centric matching (recommended for SLHC,
296  # take ALCTs in BX look for matching CLCTs in window)
297  clctToAlct = cms.bool(False),
298 
299  # For ALCT-centric matching, whether to drop CLCTs that were matched
300  # to ALCTs in this BX, and not use them in the following BX
301  tmbDropUsedClcts = cms.bool(False),
302 
303  # For CLCT-centric matching in ME11, break after finding
304  # the first BX with matching ALCT
305  matchEarliestAlctME11Only = cms.bool(False),
306 
307  # For ALCT-centric matching in ME11, break after finding
308  # the first BX with matching CLCT
309  matchEarliestClctME11Only = cms.bool(False),
310 
311  # 0 = default "non-X-BX" sorting algorithm,
312  # where the first BX with match goes first
313  # 1 = simple X-BX sorting algorithm,
314  # where the central match BX goes first,
315  # then the closest early, the slocest late, etc.
316  tmbCrossBxAlgorithm = cms.uint32(1),
317 
318  # How many maximum LCTs per whole chamber per BX to keep
319  # (supposedly, 1b and 1a can have max 2 each)
320  maxME11LCTs = cms.uint32(2)
321  ),
322 
323  # MPC sorter config for SLHC studies
324  mpcSLHC = cms.PSet(
325  mpcMaxStubs = cms.uint32(3)
326  )
327 )