CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/L1Trigger/CSCTriggerPrimitives/python/cscTriggerPrimitiveDigisPostLS1_cfi.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 from L1Trigger.CSCCommonTrigger.CSCCommonTrigger_cfi import *
00004 # Default parameters for CSCTriggerPrimitives generator
00005 # =====================================================
00006 cscTriggerPrimitiveDigisPostLS1 = cms.EDProducer("CSCTriggerPrimitivesProducer",
00007     CSCCommonTrigger,
00008 
00009     # if False, parameters will be read in from DB using EventSetup mechanism
00010     # else will use parameters from this config
00011     debugParameters = cms.untracked.bool(True),
00012     
00013     # Name of digi producer module(s)
00014     CSCComparatorDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCComparatorDigi"),
00015     CSCWireDigiProducer = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigi"),
00016 
00017     # for SLHC studies we don't want bad chambers checks so far
00018     checkBadChambers_ = cms.untracked.bool(False),
00019 
00020     # Parameters common for all boards
00021     commonParam = cms.PSet(
00022         isTMB07 = cms.bool(True),
00023         isMTCC = cms.bool(False),
00024         
00025         # Flag for SLHC studies (upgraded ME11, MPC)
00026         # (if true, isTMB07 should be true as well)
00027         isSLHC = cms.untracked.bool(True),
00028 
00029         # ME1a configuration:
00030         # smartME1aME1b=f, gangedME1a=t
00031         #   default logic for current HW
00032         # smartME1aME1b=t, gangedME1a=f
00033         #   realistic upgrade scenario: 
00034         #   one ALCT finder and two CLCT finders per ME11
00035         #   with additional logic for A/CLCT matching with ME1a unganged
00036         # smartME1aME1b=t, gangedME1a=t
00037         #   the previous case with ME1a still being ganged
00038         # Note: gangedME1a has effect only if smartME1aME1b=t
00039         smartME1aME1b = cms.untracked.bool(True),
00040         gangedME1a = cms.untracked.bool(False),
00041         
00042         # flagis to optionally disable finding stubs in ME42 or ME1a
00043         disableME1a = cms.untracked.bool(False),
00044         disableME42 = cms.untracked.bool(False)
00045     ),
00046 
00047     # Parameters for ALCT processors: old MC studies
00048     alctParamOldMC = cms.PSet(
00049         alctFifoTbins   = cms.uint32(16),
00050         alctFifoPretrig = cms.uint32(10),
00051         alctDriftDelay  = cms.uint32(3),
00052         alctNplanesHitPretrig = cms.uint32(2),
00053         alctNplanesHitPattern = cms.uint32(4),
00054         alctNplanesHitAccelPretrig = cms.uint32(2),
00055         alctNplanesHitAccelPattern = cms.uint32(4),
00056         alctTrigMode       = cms.uint32(3),
00057         alctAccelMode      = cms.uint32(1),
00058         alctL1aWindowWidth = cms.uint32(5),
00059         verbosity = cms.untracked.int32(0)
00060     ),
00061 
00062     # Parameters for ALCT processors: MTCC-II
00063     alctParamMTCC = cms.PSet(
00064         alctFifoTbins   = cms.uint32(16),
00065         alctFifoPretrig = cms.uint32(10),
00066         alctDriftDelay  = cms.uint32(3),
00067         alctNplanesHitPretrig = cms.uint32(2),
00068         alctNplanesHitPattern = cms.uint32(4),
00069         alctNplanesHitAccelPretrig = cms.uint32(2),
00070         alctNplanesHitAccelPattern = cms.uint32(4),
00071         alctTrigMode       = cms.uint32(2),
00072         alctAccelMode      = cms.uint32(0),
00073         alctL1aWindowWidth = cms.uint32(3),
00074         verbosity = cms.untracked.int32(0)
00075     ),
00076 
00077     # Parameters for ALCT processors: 2007 and later
00078     alctParam07 = cms.PSet(
00079         alctFifoTbins   = cms.uint32(16),
00080         alctFifoPretrig = cms.uint32(10),
00081         alctDriftDelay  = cms.uint32(2),
00082         alctNplanesHitPretrig = cms.uint32(3),
00083         alctNplanesHitPattern = cms.uint32(4),
00084         alctNplanesHitAccelPretrig = cms.uint32(3),
00085         alctNplanesHitAccelPattern = cms.uint32(4),
00086         alctTrigMode       = cms.uint32(2),
00087         alctAccelMode      = cms.uint32(0),
00088         alctL1aWindowWidth = cms.uint32(7),
00089         verbosity = cms.untracked.int32(0),
00090 
00091         # Configure early_tbins instead of hardcoding it
00092         alctEarlyTbins = cms.untracked.int32(4),
00093 
00094         # Use narrow pattern mask for ring 1 chambers
00095         alctNarrowMaskForR1 = cms.untracked.bool(True),
00096 
00097         # configured, not hardcoded, hit persistency
00098         alctHitPersist  = cms.untracked.uint32(6),
00099         
00100         # configure, not hardcode, up to how many BXs in the past
00101         # ghost cancellation in neighboring WGs may happen
00102         alctGhostCancellationBxDepth = cms.untracked.int32(1),
00103         
00104         # whether to compare the quality of stubs in neighboring WGs in the past
00105         # to the quality of a stub in current WG 
00106         # when doing ghost cancellation 
00107         alctGhostCancellationSideQuality = cms.untracked.bool(True),
00108         
00109         # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
00110         alctPretrigDeadtime = cms.untracked.uint32(4)
00111     ),
00112 
00113     # Parameters for ALCT processors: SLHC studies
00114     alctSLHC = cms.PSet(
00115         alctFifoTbins   = cms.uint32(16),
00116         alctFifoPretrig = cms.uint32(10),
00117         alctDriftDelay  = cms.uint32(2),
00118         alctNplanesHitPretrig = cms.uint32(3),
00119         alctNplanesHitPattern = cms.uint32(4),
00120         alctNplanesHitAccelPretrig = cms.uint32(3),
00121         alctNplanesHitAccelPattern = cms.uint32(4),
00122         alctTrigMode       = cms.uint32(2),
00123         alctAccelMode      = cms.uint32(0),
00124         alctL1aWindowWidth = cms.uint32(7),
00125         verbosity = cms.untracked.int32(0),
00126 
00127         # Configure early_tbins instead of hardcoding it
00128         alctEarlyTbins = cms.untracked.int32(4),
00129 
00130         # Use narrow pattern mask for ring 1 chambers
00131         alctNarrowMaskForR1 = cms.untracked.bool(True),
00132 
00133         # configured, not hardcoded, hit persistency
00134         alctHitPersist  = cms.untracked.uint32(6),
00135 
00136                 # configure, not hardcode, up to how many BXs in the past
00137         # ghost cancellation in neighboring WGs may happen
00138         alctGhostCancellationBxDepth = cms.untracked.int32(1),
00139         
00140         # whether to compare the quality of stubs in neighboring WGs in the past
00141         # to the quality of a stub in current WG 
00142         # when doing ghost cancellation 
00143         alctGhostCancellationSideQuality = cms.untracked.bool(True),
00144         
00145         # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
00146         alctPretrigDeadtime = cms.untracked.uint32(0),
00147         
00148         # SLHC only for ME11:
00149         # whether to store the "corrected" ALCT stub time 
00150         # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
00151         # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
00152         alctUseCorrectedBx = cms.untracked.bool(True)
00153     ),
00154 
00155     # Parameters for CLCT processors: old MC studies
00156     clctParamOldMC = cms.PSet(
00157         clctFifoTbins   = cms.uint32(12),
00158         clctFifoPretrig = cms.uint32(7),
00159         clctHitPersist  = cms.uint32(6),
00160         clctDriftDelay  = cms.uint32(2),
00161         clctNplanesHitPretrig = cms.uint32(2),
00162         clctNplanesHitPattern = cms.uint32(4),
00163         clctPidThreshPretrig  = cms.uint32(2),
00164         clctMinSeparation     = cms.uint32(10),
00165         # Debug
00166         verbosity = cms.untracked.int32(0)
00167     ),
00168 
00169     # Parameters for CLCT processors: MTCC-II
00170     clctParamMTCC = cms.PSet(
00171         clctFifoTbins   = cms.uint32(12),
00172         clctFifoPretrig = cms.uint32(7),
00173         clctHitPersist  = cms.uint32(6),
00174         clctDriftDelay  = cms.uint32(2),
00175         clctNplanesHitPretrig = cms.uint32(4),
00176         clctNplanesHitPattern = cms.uint32(1),
00177         clctPidThreshPretrig  = cms.uint32(2),
00178         clctMinSeparation     = cms.uint32(10),
00179         # Debug
00180         verbosity = cms.untracked.int32(0)
00181     ),
00182 
00183     # Parameters for CLCT processors: 2007 and later
00184     clctParam07 = cms.PSet(
00185         clctFifoTbins   = cms.uint32(12),
00186         clctFifoPretrig = cms.uint32(7),
00187         clctHitPersist  = cms.uint32(4),
00188         clctDriftDelay  = cms.uint32(2),
00189         clctNplanesHitPretrig = cms.uint32(3),
00190         clctNplanesHitPattern = cms.uint32(4),
00191         # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks  
00192         clctPidThreshPretrig  = cms.uint32(4),
00193         # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
00194         clctMinSeparation     = cms.uint32(5),
00195         # Debug
00196         verbosity = cms.untracked.int32(0),
00197 
00198         # BX to start CLCT finding (poor man's dead-time shortening):
00199         clctStartBxShift  = cms.untracked.int32(0)
00200     ),
00201 
00202     # Parameters for CLCT processors: SLHC studies
00203     clctSLHC = cms.PSet(
00204         clctFifoTbins   = cms.uint32(12),
00205         clctFifoPretrig = cms.uint32(7),
00206         clctHitPersist  = cms.uint32(4),
00207         clctDriftDelay  = cms.uint32(2),
00208         clctNplanesHitPretrig = cms.uint32(3),
00209         clctNplanesHitPattern = cms.uint32(4),
00210         # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks  
00211         clctPidThreshPretrig  = cms.uint32(4),
00212         # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
00213         clctMinSeparation     = cms.uint32(5),
00214         # Debug
00215         verbosity = cms.untracked.int32(0),
00216 
00217         # BX to start CLCT finding (poor man's to shorten the dead-time):
00218         clctStartBxShift  = cms.untracked.int32(0),
00219         
00220         # Turns on algorithms of localized dead-time zones:
00221         useDeadTimeZoning = cms.untracked.bool(True),
00222         
00223         # Width (in #HS) of a fixed dead zone around a key HS:
00224         clctStateMachineZone = cms.untracked.uint32(8),
00225         
00226         # Enables the algo which instead of using the fixed dead zone width, 
00227         # varies it depending on the width of a triggered CLCT pattern
00228         # (if True, the clctStateMachineZone is ignored):
00229         useDynamicStateMachineZone = cms.untracked.bool(True),
00230         
00231         # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
00232         # which defines how far from pretrigger HS the TMB may look for a trigger HS
00233         # (it becomes important to do so with localized dead-time zoning): 
00234         clctPretriggerTriggerZone = cms.untracked.uint32(5),
00235         
00236         # whether to store the "corrected" CLCT stub time 
00237         # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
00238         # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
00239         clctUseCorrectedBx = cms.untracked.bool(True)
00240     ),
00241 
00242     tmbParam = cms.PSet(
00243         mpcBlockMe1a    = cms.uint32(0),
00244         alctTrigEnable  = cms.uint32(0),
00245         clctTrigEnable  = cms.uint32(0),
00246         matchTrigEnable = cms.uint32(1),
00247         # reduce ALCT-CLCT matching window size from 7 to 3
00248         matchTrigWindowSize = cms.uint32(3),
00249         tmbL1aWindowSize = cms.uint32(7),
00250         # Debug
00251         verbosity = cms.untracked.int32(0),
00252 
00253         # Configure early_tbins instead of hardcoding it
00254         tmbEarlyTbins = cms.untracked.int32(4),
00255         
00256         # Flag for whether to readout only the earliest max two LCTs in a 
00257         # L1A readout window, as there is only room just for two in the TMB header.
00258         # If false, all LCTs would be readout in L1A window.
00259         tmbReadoutEarliest2 = cms.untracked.bool(True),
00260 
00261         # For CLCT-centric matching, whether to drop ALCTs that were matched
00262         # to CLCTs in this BX, and not use them in the following BX 
00263         # (default non-upgrade TMB behavior).
00264         tmbDropUsedAlcts = cms.untracked.bool(True)
00265     ),
00266 
00267     # to be used by ME11 chambers with upgraded TMB and ALCT
00268     tmbSLHC = cms.PSet(
00269         mpcBlockMe1a    = cms.uint32(0),
00270         alctTrigEnable  = cms.uint32(0),
00271         clctTrigEnable  = cms.uint32(0),
00272         matchTrigEnable = cms.uint32(1),
00273         # reduce ALCT-CLCT matching window size from 7 to 3
00274         matchTrigWindowSize = cms.uint32(3),
00275         tmbL1aWindowSize = cms.uint32(7),
00276         # Debug
00277         verbosity = cms.untracked.int32(0),
00278 
00279         # Configure early_tbins instead of hardcoding it
00280         tmbEarlyTbins = cms.untracked.int32(4),
00281         
00282         # Flag for whether to readout only the earliest max two LCTs in a 
00283         # L1A readout window, as there is only room just for two in the TMB header.
00284         # If false, all LCTs would be readout in L1A window.
00285         tmbReadoutEarliest2 = cms.untracked.bool(False),
00286 
00287         # For CLCT-centric matching, whether to drop ALCTs that were matched
00288         # to CLCTs in this BX, and not use them in the following BX 
00289         # (default non-upgrade TMB behavior).
00290         tmbDropUsedAlcts = cms.untracked.bool(False),
00291 
00292         # Switch to enable
00293         #  True = CLCT-centric matching (default non-upgrade behavior, 
00294         #         take CLCTs in BX look for matching ALCTs in window)
00295         #  False = ALCT-centric matching (recommended for SLHC, 
00296         #         take ALCTs in BX look for matching CLCTs in window)
00297         clctToAlct = cms.untracked.bool(False),
00298 
00299         # For ALCT-centric matching, whether to drop CLCTs that were matched
00300         # to ALCTs in this BX, and not use them in the following BX 
00301         tmbDropUsedClcts = cms.untracked.bool(False),
00302         
00303         # For CLCT-centric matching in ME11, break after finding 
00304         # the first BX with matching ALCT 
00305         matchEarliestAlctME11Only = cms.untracked.bool(False),
00306         
00307         # For ALCT-centric matching in ME11, break after finding 
00308         # the first BX with matching CLCT 
00309         matchEarliestClctME11Only = cms.untracked.bool(False),
00310         
00311         # 0 = default "non-X-BX" sorting algorithm, 
00312         #     where the first BX with match goes first
00313         # 1 = simple X-BX sorting algorithm, 
00314         #     where the central match BX goes first, 
00315         #     then the closest early, the slocest late, etc.
00316         tmbCrossBxAlgorithm = cms.untracked.uint32(1),
00317         
00318         # How many maximum LCTs per whole chamber per BX to keep
00319         # (supposedly, 1b and 1a can have max 2 each)
00320         maxME11LCTs = cms.untracked.uint32(2)
00321     ),
00322 
00323     # MPC sorter config for SLHC studies
00324     mpcSLHC = cms.PSet(
00325         mpcMaxStubs = cms.untracked.uint32(3)
00326     )
00327 )