CMS 3D CMS Logo

cscTriggerPrimitiveDigis_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 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.bool(False),
12 
13  # Name of digi producer module(s)
14  CSCComparatorDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCComparatorDigi"),
15  CSCWireDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigi"),
16 
17  # If True, output collections will only be built for good chambers
18  checkBadChambers = cms.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.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.bool(False),
40  gangedME1a = cms.bool(True),
41 
42  # flags 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(False),
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(4),
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(False),
108 
109  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
110  alctPretrigDeadtime = cms.uint32(4),
111 
112  # SLHC only for ME11:
113  # whether to store the "corrected" ALCT stub time
114  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
115  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
116  alctUseCorrectedBx = cms.bool(False)
117  ),
118 
119  # Parameters for ALCT processors: SLHC studies
120  alctSLHC = cms.PSet(
121  alctFifoTbins = cms.uint32(16),
122  alctFifoPretrig = cms.uint32(10),
123  alctDriftDelay = cms.uint32(2),
124  alctNplanesHitPretrig = cms.uint32(3),
125  alctNplanesHitPattern = cms.uint32(4),
126  alctNplanesHitAccelPretrig = cms.uint32(3),
127  alctNplanesHitAccelPattern = cms.uint32(4),
128  alctTrigMode = cms.uint32(2),
129  alctAccelMode = cms.uint32(0),
130  alctL1aWindowWidth = cms.uint32(7),
131  verbosity = cms.int32(0),
132 
133  # Configure early_tbins instead of hardcoding it
134  alctEarlyTbins = cms.int32(4),
135 
136  # Use narrow pattern mask for ring 1 chambers
137  alctNarrowMaskForR1 = cms.bool(True),
138 
139  # configured, not hardcoded, hit persistency
140  alctHitPersist = cms.uint32(6),
141 
142  # configure, not hardcode, up to how many BXs in the past
143  # ghost cancellation in neighboring WGs may happen
144  alctGhostCancellationBxDepth = cms.int32(1),
145 
146  # whether to compare the quality of stubs in neighboring WGs in the past
147  # to the quality of a stub in current WG
148  # when doing ghost cancellation
149  alctGhostCancellationSideQuality = cms.bool(True),
150 
151  # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
152  alctPretrigDeadtime = cms.uint32(0),
153 
154  # SLHC only for ME11:
155  # whether to store the "corrected" ALCT stub time
156  # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
157  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
158  alctUseCorrectedBx = cms.bool(True)
159  ),
160 
161  # Parameters for CLCT processors: old MC studies
162  clctParamOldMC = cms.PSet(
163  clctFifoTbins = cms.uint32(12),
164  clctFifoPretrig = cms.uint32(7),
165  clctHitPersist = cms.uint32(6),
166  clctDriftDelay = cms.uint32(2),
167  clctNplanesHitPretrig = cms.uint32(2),
168  clctNplanesHitPattern = cms.uint32(4),
169  clctPidThreshPretrig = cms.uint32(2),
170  clctMinSeparation = cms.uint32(10),
171  # Debug
172  verbosity = cms.int32(0)
173  ),
174 
175  # Parameters for CLCT processors: MTCC-II
176  clctParamMTCC = cms.PSet(
177  clctFifoTbins = cms.uint32(12),
178  clctFifoPretrig = cms.uint32(7),
179  clctHitPersist = cms.uint32(6),
180  clctDriftDelay = cms.uint32(2),
181  clctNplanesHitPretrig = cms.uint32(4),
182  clctNplanesHitPattern = cms.uint32(1),
183  clctPidThreshPretrig = cms.uint32(2),
184  clctMinSeparation = cms.uint32(10),
185  # Debug
186  verbosity = cms.int32(0)
187  ),
188 
189  # Parameters for CLCT processors: 2007 and later
190  clctParam07 = cms.PSet(
191  clctFifoTbins = cms.uint32(12),
192  clctFifoPretrig = cms.uint32(7),
193  clctHitPersist = cms.uint32(4),
194  clctDriftDelay = cms.uint32(2),
195  clctNplanesHitPretrig = cms.uint32(3),
196  clctNplanesHitPattern = cms.uint32(4),
197  clctPidThreshPretrig = cms.uint32(2),
198  clctMinSeparation = cms.uint32(10),
199  # Debug
200  verbosity = cms.int32(0),
201 
202  # BX to start CLCT finding (poor man's dead-time shortening):
203  clctStartBxShift = cms.int32(0)
204  ),
205 
206  # Parameters for CLCT processors: SLHC studies
207  clctSLHC = cms.PSet(
208  clctFifoTbins = cms.uint32(12),
209  clctFifoPretrig = cms.uint32(7),
210  clctHitPersist = cms.uint32(4),
211  clctDriftDelay = cms.uint32(2),
212  clctNplanesHitPretrig = cms.uint32(3),
213  clctNplanesHitPattern = cms.uint32(4),
214  # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks
215  clctPidThreshPretrig = cms.uint32(4),
216  # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
217  clctMinSeparation = cms.uint32(5),
218  # Debug
219  verbosity = cms.int32(0),
220 
221  # BX to start CLCT finding (poor man's to shorten the dead-time):
222  clctStartBxShift = cms.int32(0),
223 
224  # Turns on algorithms of localized dead-time zones:
225  useDeadTimeZoning = cms.bool(True),
226 
227  # Width (in #HS) of a fixed dead zone around a key HS:
228  clctStateMachineZone = cms.uint32(8),
229 
230  # Enables the algo which instead of using the fixed dead zone width,
231  # varies it depending on the width of a triggered CLCT pattern
232  # (if True, the clctStateMachineZone is ignored):
233  useDynamicStateMachineZone = cms.bool(True),
234 
235  # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
236  # which defines how far from pretrigger HS the TMB may look for a trigger HS
237  # (it becomes important to do so with localized dead-time zoning):
238  clctPretriggerTriggerZone = cms.uint32(5),
239 
240  # whether to store the "corrected" CLCT stub time
241  # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
242  # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
243  clctUseCorrectedBx = cms.bool(True)
244  ),
245 
246  tmbParam = cms.PSet(
247  mpcBlockMe1a = cms.uint32(0),
248  alctTrigEnable = cms.uint32(0),
249  clctTrigEnable = cms.uint32(0),
250  matchTrigEnable = cms.uint32(1),
251  matchTrigWindowSize = cms.uint32(7),
252  tmbL1aWindowSize = cms.uint32(7),
253  # Debug
254  verbosity = cms.int32(0),
255 
256  # Configure early_tbins instead of hardcoding it
257  tmbEarlyTbins = cms.int32(4),
258 
259  # Flag for whether to readout only the earliest max two LCTs in a
260  # L1A readout window, as there is only room just for two in the TMB header.
261  # If false, all LCTs would be readout in L1A window.
262  tmbReadoutEarliest2 = cms.bool(True),
263 
264  # For CLCT-centric matching, whether to drop ALCTs that were matched
265  # to CLCTs in this BX, and not use them in the following BX
266  # (default non-upgrade TMB behavior).
267  tmbDropUsedAlcts = cms.bool(True)
268  ),
269 
270  # to be used by ME11 chambers with upgraded TMB and ALCT
271  tmbSLHC = cms.PSet(
272  mpcBlockMe1a = cms.uint32(0),
273  alctTrigEnable = cms.uint32(0),
274  clctTrigEnable = cms.uint32(0),
275  matchTrigEnable = cms.uint32(1),
276  # reduce ALCT-CLCT matching window size from 7 to 3
277  matchTrigWindowSize = cms.uint32(3),
278  tmbL1aWindowSize = cms.uint32(7),
279  # Debug
280  verbosity = cms.int32(0),
281 
282  # Configure early_tbins instead of hardcoding it
283  tmbEarlyTbins = cms.int32(4),
284 
285  # Flag for whether to readout only the earliest max two LCTs in a
286  # L1A readout window, as there is only room just for two in the TMB header.
287  # If false, all LCTs would be readout in L1A window.
288  tmbReadoutEarliest2 = cms.bool(False),
289 
290  # For CLCT-centric matching, whether to drop ALCTs that were matched
291  # to CLCTs in this BX, and not use them in the following BX
292  # (default non-upgrade TMB behavior).
293  tmbDropUsedAlcts = cms.bool(False),
294 
295  # Switch to enable
296  # True = CLCT-centric matching (default non-upgrade behavior,
297  # take CLCTs in BX look for matching ALCTs in window)
298  # False = ALCT-centric matching (recommended for SLHC,
299  # take ALCTs in BX look for matching CLCTs in window)
300  clctToAlct = cms.bool(False),
301 
302  # For ALCT-centric matching, whether to drop CLCTs that were matched
303  # to ALCTs in this BX, and not use them in the following BX
304  tmbDropUsedClcts = cms.bool(False),
305 
306  # For CLCT-centric matching in ME11, break after finding
307  # the first BX with matching ALCT
308  matchEarliestAlctME11Only = cms.bool(False),
309 
310  # For ALCT-centric matching in ME11, break after finding
311  # the first BX with matching CLCT
312  matchEarliestClctME11Only = cms.bool(False),
313 
314  # 0 = default "non-X-BX" sorting algorithm,
315  # where the first BX with match goes first
316  # 1 = simple X-BX sorting algorithm,
317  # where the central match BX goes first,
318  # then the closest early, the slocest late, etc.
319  tmbCrossBxAlgorithm = cms.uint32(1),
320 
321  # How many maximum LCTs per whole chamber per BX to keep
322  # (supposedly, 1b and 1a can have max 2 each)
323  maxME11LCTs = cms.uint32(2)
324  ),
325 
326  # MPC sorter config for Run2
327  mpcRun2 = cms.PSet(
328  sortStubs = cms.bool(False),
329  dropInvalidStubs = cms.bool(False),
330  dropLowQualityStubs = cms.bool(False),
331  ),
332 
333  # MPC sorter config for SLHC studies
334  mpcSLHC = cms.PSet(
335  mpcMaxStubs = cms.uint32(18),
336  sortStubs = cms.bool(False),
337  dropInvalidStubs = cms.bool(False),
338  dropLowQualityStubs = cms.bool(False),
339  )
340 )
341 
342 # Upgrade era customizations involving GEMs and RPCs
343 # ==================================================
344 
345 # to be used by ME11 chambers with GEM-CSC ILT
346 me11tmbSLHCGEM = cms.PSet(
347  mpcBlockMe1a = cms.uint32(0),
348  alctTrigEnable = cms.uint32(0),
349  clctTrigEnable = cms.uint32(0),
350  matchTrigEnable = cms.uint32(1),
351  matchTrigWindowSize = cms.uint32(3),
352  tmbL1aWindowSize = cms.uint32(7),
353  verbosity = cms.int32(0),
354  tmbEarlyTbins = cms.int32(4),
355  tmbReadoutEarliest2 = cms.bool(False),
356  tmbDropUsedAlcts = cms.bool(False),
357  clctToAlct = cms.bool(False),
358  tmbDropUsedClcts = cms.bool(False),
359  matchEarliestAlctME11Only = cms.bool(False),
360  matchEarliestClctME11Only = cms.bool(False),
361  tmbCrossBxAlgorithm = cms.uint32(2),
362  maxME11LCTs = cms.uint32(2),
363 
364  ## run in debug mode
365  debugLUTs = cms.bool(False),
366  debugMatching = cms.bool(False),
367  debugGEMDphi = cms.bool(False),
368 
369  ## use old dataformat
370  useOldLCTDataFormat = cms.bool(True),
371 
372  ## copad construction
373  maxDeltaBXInCoPad = cms.int32(1),
374  maxDeltaPadInCoPad = cms.int32(1),
375 
376  ## matching to pads in case LowQ CLCT
377  maxDeltaBXPadEven = cms.int32(1),
378  maxDeltaBXPadOdd = cms.int32(1),
379  maxDeltaPadPadEven = cms.int32(2),
380  maxDeltaPadPadOdd = cms.int32(3),
381 
382  ## matching to pads in case absent CLCT
383  maxDeltaBXCoPadEven = cms.int32(0),
384  maxDeltaBXCoPadOdd = cms.int32(0),
385  maxDeltaPadCoPadEven = cms.int32(2),
386  maxDeltaPadCoPadOdd = cms.int32(3),
387 
388  ## efficiency recovery switches
389  dropLowQualityCLCTsNoGEMs_ME1a = cms.bool(False),
390  dropLowQualityCLCTsNoGEMs_ME1b = cms.bool(True),
391  dropLowQualityALCTsNoGEMs_ME1a = cms.bool(False),
392  dropLowQualityALCTsNoGEMs_ME1b = cms.bool(False),
393  buildLCTfromALCTandGEM_ME1a = cms.bool(True),
394  buildLCTfromALCTandGEM_ME1b = cms.bool(True),
395  buildLCTfromCLCTandGEM_ME1a = cms.bool(False),
396  buildLCTfromCLCTandGEM_ME1b = cms.bool(False),
397  doLCTGhostBustingWithGEMs = cms.bool(False),
398  correctLCTtimingWithGEM = cms.bool(False),
399  promoteALCTGEMpattern = cms.bool(True),
400  promoteALCTGEMquality = cms.bool(True),
401  promoteCLCTGEMquality_ME1a = cms.bool(True),
402  promoteCLCTGEMquality_ME1b = cms.bool(True),
403 
404  ## cross BX algorithm
405  firstTwoLCTsInChamber = cms.bool(True),
406 )
407 
408 # to be used by ME21 chambers with GEM-CSC ILT
409 me21tmbSLHCGEM = cms.PSet(
410  mpcBlockMe1a = cms.uint32(0),
411  alctTrigEnable = cms.uint32(0),
412  clctTrigEnable = cms.uint32(0),
413  matchTrigEnable = cms.uint32(1),
414  matchTrigWindowSize = cms.uint32(3),
415  tmbL1aWindowSize = cms.uint32(7),
416  verbosity = cms.int32(0),
417  tmbEarlyTbins = cms.int32(4),
418  tmbReadoutEarliest2 = cms.bool(False),
419  tmbDropUsedAlcts = cms.bool(False),
420  clctToAlct = cms.bool(False),
421  tmbDropUsedClcts = cms.bool(False),
422  matchEarliestAlctME21Only = cms.bool(False),
423  matchEarliestClctME21Only = cms.bool(False),
424  tmbCrossBxAlgorithm = cms.uint32(2),
425  maxME21LCTs = cms.uint32(2),
426 
427  ## run in debug mode
428  debugLUTs = cms.bool(False),
429  debugMatching = cms.bool(False),
430  debugGEMDphi = cms.bool(False),
431 
432  ## use old dataformat
433  useOldLCTDataFormat = cms.bool(True),
434 
435  ## copad construction
436  maxDeltaBXInCoPad = cms.int32(1),
437  maxDeltaPadInCoPad = cms.int32(2),
438 
439  ## matching to pads in case LowQ CLCT
440  maxDeltaBXPad = cms.int32(1),
441  maxDeltaPadPadOdd = cms.int32(4),
442  maxDeltaPadPadEven = cms.int32(3),
443  maxDeltaWg = cms.int32(2),
444 
445  ## matching to pads in case absent CLCT
446  maxDeltaBXCoPad = cms.int32(1),
447  maxDeltaPadCoPad = cms.int32(2),
448 
449  ## efficiency recovery switches
450  dropLowQualityALCTsNoGEMs = cms.bool(False),
451  dropLowQualityCLCTsNoGEMs = cms.bool(True),
452  buildLCTfromALCTandGEM = cms.bool(True),
453  buildLCTfromCLCTandGEM = cms.bool(False),
454  doLCTGhostBustingWithGEMs = cms.bool(False),
455  correctLCTtimingWithGEM = cms.bool(False),
456  promoteALCTGEMpattern = cms.bool(True),
457  promoteALCTGEMquality = cms.bool(True),
458  promoteCLCTGEMquality = cms.bool(True),
459 
460  firstTwoLCTsInChamber = cms.bool(True),
461 )
462 
463 # to be used by ME31-ME41 chambers with RPC-CSC ILT
464 me3141tmbSLHCRPC = cms.PSet(
465  mpcBlockMe1a = cms.uint32(0),
466  alctTrigEnable = cms.uint32(0),
467  clctTrigEnable = cms.uint32(0),
468  matchTrigEnable = cms.uint32(1),
469  matchTrigWindowSize = cms.uint32(3),
470  tmbL1aWindowSize = cms.uint32(7),
471  verbosity = cms.int32(0),
472  tmbEarlyTbins = cms.int32(4),
473  tmbReadoutEarliest2 = cms.bool(False),
474  tmbDropUsedAlcts = cms.bool(False),
475  clctToAlct = cms.bool(False),
476  tmbDropUsedClcts = cms.bool(False),
477  matchEarliestClctME3141Only = cms.bool(False),
478  tmbCrossBxAlgorithm = cms.uint32(2),
479  maxME3141LCTs = cms.uint32(2),
480 
481  ## run in debug mode
482  debugLUTs = cms.bool(False),
483  debugMatching = cms.bool(False),
484 
485  ## use old dataformat
486  useOldLCTDataFormat = cms.bool(True),
487 
488  ## matching to digis in case LowQ CLCT
489  maxDeltaBXRPC = cms.int32(0),
490  maxDeltaStripRPCOdd = cms.int32(6),
491  maxDeltaStripRPCEven = cms.int32(4),
492  maxDeltaWg = cms.int32(2),
493 
494  ## efficiency recovery switches
495  dropLowQualityCLCTsNoRPCs = cms.bool(True),
496  buildLCTfromALCTandRPC = cms.bool(True),
497  buildLCTfromCLCTandRPC = cms.bool(False),
498  buildLCTfromLowQstubandRPC = cms.bool(True),
499  promoteCLCTRPCquality = cms.bool(True),
500  promoteALCTRPCpattern = cms.bool(True),
501  promoteALCTRPCquality = cms.bool(True),
502 )
503 
504 ## unganging in ME1/a
505 from Configuration.Eras.Modifier_run2_common_cff import run2_common
506 run2_common.toModify( cscTriggerPrimitiveDigis,
507  debugParameters = True,
508  checkBadChambers = False,
509  commonParam = dict(gangedME1a = False)
510  )
511 
512 ## GEM-CSC ILT in ME1/1
513 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
514 run3_GEM.toModify( cscTriggerPrimitiveDigis,
515  GEMPadDigiProducer = cms.InputTag("simMuonGEMPadDigis"),
516  commonParam = dict(
517  isSLHC = cms.bool(True),
518  smartME1aME1b = cms.bool(True),
519  runME11ILT = cms.bool(True)),
520  clctSLHC = dict(clctNplanesHitPattern = 3),
521  me11tmbSLHCGEM = me11tmbSLHCGEM
522 )
523 
524 ## GEM-CSC ILT in ME2/1, CSC-RPC ILT in ME3/1 and ME4/1
525 from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon
526 phase2_muon.toModify( cscTriggerPrimitiveDigis,
527  RPCDigiProducer = cms.InputTag("simMuonRPCDigis"),
528  commonParam = dict(runME21ILT = cms.bool(True),
529  runME3141ILT = cms.bool(False)),
530  alctSLHCME21 = cscTriggerPrimitiveDigis.alctSLHC.clone(alctNplanesHitPattern = 3),
531  clctSLHCME21 = cscTriggerPrimitiveDigis.clctSLHC.clone(clctNplanesHitPattern = 3),
532  alctSLHCME3141 = cscTriggerPrimitiveDigis.alctSLHC.clone(alctNplanesHitPattern = 3),
533  clctSLHCME3141 = cscTriggerPrimitiveDigis.clctSLHC.clone(clctNplanesHitPattern = 3),
534  me21tmbSLHCGEM = me21tmbSLHCGEM,
535  me3141tmbSLHCRPC = me3141tmbSLHCRPC
536 )