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.
2 
4 # Default parameters for CSCTriggerPrimitives generator
5 # =====================================================
6 cscTriggerPrimitiveDigis = 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.untracked.bool(False),
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.untracked.bool(True),
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.untracked.bool(False),
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.untracked.bool(False),
40  gangedME1a = cms.untracked.bool(True),
41 
42  # flagis to optionally disable finding stubs in ME42 or ME1a
43  disableME1a = cms.untracked.bool(False),
44  disableME42 = cms.untracked.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.untracked.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.untracked.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.untracked.int32(0),
90 
91  # Configure early_tbins instead of hardcoding it
92  alctEarlyTbins = cms.untracked.int32(4),
93 
94  # Use narrow pattern mask for ring 1 chambers
95  alctNarrowMaskForR1 = cms.untracked.bool(False),
96 
97  # configured, not hardcoded, hit persistency
98  alctHitPersist = cms.untracked.uint32(6)
99  ),
100 
101  # Parameters for ALCT processors: SLHC studies
102  alctSLHC = cms.PSet(
103  alctFifoTbins = cms.uint32(16),
104  alctFifoPretrig = cms.uint32(10),
105  alctDriftDelay = cms.uint32(2),
106  alctNplanesHitPretrig = cms.uint32(3),
107  alctNplanesHitPattern = cms.uint32(4),
108  alctNplanesHitAccelPretrig = cms.uint32(3),
109  alctNplanesHitAccelPattern = cms.uint32(4),
110  alctTrigMode = cms.uint32(2),
111  alctAccelMode = cms.uint32(0),
112  alctL1aWindowWidth = cms.uint32(7),
113  verbosity = cms.untracked.int32(0),
114 
115  # Configure early_tbins instead of hardcoding it
116  alctEarlyTbins = cms.untracked.int32(4),
117 
118  # Use narrow pattern mask for ring 1 chambers
119  alctNarrowMaskForR1 = cms.untracked.bool(True),
120 
121  # configured, not hardcoded, hit persistency
122  alctHitPersist = cms.untracked.uint32(6),
123 
124  # configure, not hardcode, up to how many BXs in the past
125  # ghost cancellation in neighboring WGs may happen
126  alctGhostCancellationBxDepth = cms.untracked.int32(1),
127 
128  # whether to compare the quality of stubs in neighboring WGs in the past
129  # to the quality of a stub in current WG
130  # when doing ghost cancellation
131  alctGhostCancellationSideQuality = cms.untracked.bool(True),
132 
133  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
134  alctPretrigDeadtime = cms.untracked.uint32(0),
135 
136  # SLHC only for ME11:
137  # whether to store the "corrected" ALCT stub time
138  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
139  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
140  alctUseCorrectedBx = cms.untracked.bool(True)
141  ),
142 
143  # Parameters for CLCT processors: old MC studies
144  clctParamOldMC = cms.PSet(
145  clctFifoTbins = cms.uint32(12),
146  clctFifoPretrig = cms.uint32(7),
147  clctHitPersist = cms.uint32(6),
148  clctDriftDelay = cms.uint32(2),
149  clctNplanesHitPretrig = cms.uint32(2),
150  clctNplanesHitPattern = cms.uint32(4),
151  clctPidThreshPretrig = cms.uint32(2),
152  clctMinSeparation = cms.uint32(10),
153  # Debug
154  verbosity = cms.untracked.int32(0)
155  ),
156 
157  # Parameters for CLCT processors: MTCC-II
158  clctParamMTCC = cms.PSet(
159  clctFifoTbins = cms.uint32(12),
160  clctFifoPretrig = cms.uint32(7),
161  clctHitPersist = cms.uint32(6),
162  clctDriftDelay = cms.uint32(2),
163  clctNplanesHitPretrig = cms.uint32(4),
164  clctNplanesHitPattern = cms.uint32(1),
165  clctPidThreshPretrig = cms.uint32(2),
166  clctMinSeparation = cms.uint32(10),
167  # Debug
168  verbosity = cms.untracked.int32(0)
169  ),
170 
171  # Parameters for CLCT processors: 2007 and later
172  clctParam07 = cms.PSet(
173  clctFifoTbins = cms.uint32(12),
174  clctFifoPretrig = cms.uint32(7),
175  clctHitPersist = cms.uint32(4),
176  clctDriftDelay = cms.uint32(2),
177  clctNplanesHitPretrig = cms.uint32(3),
178  clctNplanesHitPattern = cms.uint32(4),
179  clctPidThreshPretrig = cms.uint32(2),
180  clctMinSeparation = cms.uint32(10),
181  # Debug
182  verbosity = cms.untracked.int32(0),
183 
184  # BX to start CLCT finding (poor man's dead-time shortening):
185  clctStartBxShift = cms.untracked.int32(0)
186  ),
187 
188  # Parameters for CLCT processors: SLHC studies
189  clctSLHC = cms.PSet(
190  clctFifoTbins = cms.uint32(12),
191  clctFifoPretrig = cms.uint32(7),
192  clctHitPersist = cms.uint32(4),
193  clctDriftDelay = cms.uint32(2),
194  clctNplanesHitPretrig = cms.uint32(3),
195  clctNplanesHitPattern = cms.uint32(4),
196  # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks
197  clctPidThreshPretrig = cms.uint32(4),
198  # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
199  clctMinSeparation = cms.uint32(5),
200  # Debug
201  verbosity = cms.untracked.int32(0),
202 
203  # BX to start CLCT finding (poor man's to shorten the dead-time):
204  clctStartBxShift = cms.untracked.int32(0),
205 
206  # Turns on algorithms of localized dead-time zones:
207  useDeadTimeZoning = cms.untracked.bool(True),
208 
209  # Width (in #HS) of a fixed dead zone around a key HS:
210  clctStateMachineZone = cms.untracked.uint32(8),
211 
212  # Enables the algo which instead of using the fixed dead zone width,
213  # varies it depending on the width of a triggered CLCT pattern
214  # (if True, the clctStateMachineZone is ignored):
215  useDynamicStateMachineZone = cms.untracked.bool(True),
216 
217  # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
218  # which defines how far from pretrigger HS the TMB may look for a trigger HS
219  # (it becomes important to do so with localized dead-time zoning):
220  clctPretriggerTriggerZone = cms.untracked.uint32(5),
221 
222  # whether to store the "corrected" CLCT stub time
223  # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
224  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
225  clctUseCorrectedBx = cms.untracked.bool(True)
226  ),
227 
228  tmbParam = cms.PSet(
229  mpcBlockMe1a = cms.uint32(0),
230  alctTrigEnable = cms.uint32(0),
231  clctTrigEnable = cms.uint32(0),
232  matchTrigEnable = cms.uint32(1),
233  matchTrigWindowSize = cms.uint32(7),
234  tmbL1aWindowSize = cms.uint32(7),
235  # Debug
236  verbosity = cms.untracked.int32(0),
237 
238  # Configure early_tbins instead of hardcoding it
239  tmbEarlyTbins = cms.untracked.int32(4),
240 
241  # Flag for whether to readout only the earliest max two LCTs in a
242  # L1A readout window, as there is only room just for two in the TMB header.
243  # If false, all LCTs would be readout in L1A window.
244  tmbReadoutEarliest2 = cms.untracked.bool(True),
245 
246  # For CLCT-centric matching, whether to drop ALCTs that were matched
247  # to CLCTs in this BX, and not use them in the following BX
248  # (default non-upgrade TMB behavior).
249  tmbDropUsedAlcts = cms.untracked.bool(True)
250  ),
251 
252  # to be used by ME11 chambers with upgraded TMB and ALCT
253  tmbSLHC = cms.PSet(
254  mpcBlockMe1a = cms.uint32(0),
255  alctTrigEnable = cms.uint32(0),
256  clctTrigEnable = cms.uint32(0),
257  matchTrigEnable = cms.uint32(1),
258  # reduce ALCT-CLCT matching window size from 7 to 3
259  matchTrigWindowSize = cms.uint32(3),
260  tmbL1aWindowSize = cms.uint32(7),
261  # Debug
262  verbosity = cms.untracked.int32(0),
263 
264  # Configure early_tbins instead of hardcoding it
265  tmbEarlyTbins = cms.untracked.int32(4),
266 
267  # Flag for whether to readout only the earliest max two LCTs in a
268  # L1A readout window, as there is only room just for two in the TMB header.
269  # If false, all LCTs would be readout in L1A window.
270  tmbReadoutEarliest2 = cms.untracked.bool(False),
271 
272  # For CLCT-centric matching, whether to drop ALCTs that were matched
273  # to CLCTs in this BX, and not use them in the following BX
274  # (default non-upgrade TMB behavior).
275  tmbDropUsedAlcts = cms.untracked.bool(False),
276 
277  # Switch to enable
278  # True = CLCT-centric matching (default non-upgrade behavior,
279  # take CLCTs in BX look for matching ALCTs in window)
280  # False = ALCT-centric matching (recommended for SLHC,
281  # take ALCTs in BX look for matching CLCTs in window)
282  clctToAlct = cms.untracked.bool(False),
283 
284  # For ALCT-centric matching, whether to drop CLCTs that were matched
285  # to ALCTs in this BX, and not use them in the following BX
286  tmbDropUsedClcts = cms.untracked.bool(False),
287 
288  # For CLCT-centric matching in ME11, break after finding
289  # the first BX with matching ALCT
290  matchEarliestAlctME11Only = cms.untracked.bool(False),
291 
292  # For ALCT-centric matching in ME11, break after finding
293  # the first BX with matching CLCT
294  matchEarliestClctME11Only = cms.untracked.bool(False),
295 
296  # 0 = default "non-X-BX" sorting algorithm,
297  # where the first BX with match goes first
298  # 1 = simple X-BX sorting algorithm,
299  # where the central match BX goes first,
300  # then the closest early, the slocest late, etc.
301  tmbCrossBxAlgorithm = cms.untracked.uint32(1),
302 
303  # How many maximum LCTs per whole chamber per BX to keep
304  # (supposedly, 1b and 1a can have max 2 each)
305  maxME11LCTs = cms.untracked.uint32(2)
306  ),
307 
308  # MPC sorter config for SLHC studies
309  mpcSLHC = cms.PSet(
310  mpcMaxStubs = cms.untracked.uint32(3)
311  )
312 )