CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/L1Trigger/CSCTriggerPrimitives/python/cscTriggerPrimitiveDigis_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 cscTriggerPrimitiveDigis = 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(False),
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(True),
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(False),
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(False),
00040         gangedME1a = cms.untracked.bool(True),
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(False),
00096 
00097         # configured, not hardcoded, hit persistency
00098         alctHitPersist  = cms.untracked.uint32(6)
00099     ),
00100 
00101     # Parameters for ALCT processors: SLHC studies
00102     alctSLHC = cms.PSet(
00103         alctFifoTbins   = cms.uint32(16),
00104         alctFifoPretrig = cms.uint32(10),
00105         alctDriftDelay  = cms.uint32(2),
00106         alctNplanesHitPretrig = cms.uint32(3),
00107         alctNplanesHitPattern = cms.uint32(4),
00108         alctNplanesHitAccelPretrig = cms.uint32(3),
00109         alctNplanesHitAccelPattern = cms.uint32(4),
00110         alctTrigMode       = cms.uint32(2),
00111         alctAccelMode      = cms.uint32(0),
00112         alctL1aWindowWidth = cms.uint32(7),
00113         verbosity = cms.untracked.int32(0),
00114 
00115         # Configure early_tbins instead of hardcoding it
00116         alctEarlyTbins = cms.untracked.int32(4),
00117 
00118         # Use narrow pattern mask for ring 1 chambers
00119         alctNarrowMaskForR1 = cms.untracked.bool(True),
00120 
00121         # configured, not hardcoded, hit persistency
00122         alctHitPersist  = cms.untracked.uint32(6),
00123 
00124         # configure, not hardcode, up to how many BXs in the past
00125         # ghost cancellation in neighboring WGs may happen
00126         alctGhostCancellationBxDepth = cms.untracked.int32(1),
00127         
00128         # whether to compare the quality of stubs in neighboring WGs in the past
00129         # to the quality of a stub in current WG 
00130         # when doing ghost cancellation 
00131         alctGhostCancellationSideQuality = cms.untracked.bool(True),
00132         
00133         # how soon after pretrigger and alctDriftDelay can next pretrigger happen?
00134         alctPretrigDeadtime = cms.untracked.uint32(0),
00135         
00136         # SLHC only for ME11:
00137         # whether to store the "corrected" ALCT stub time 
00138         # (currently it is median time of particular hits in a pattern) into the ASCCLCTDigi bx,
00139         # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
00140         alctUseCorrectedBx = cms.untracked.bool(True)
00141     ),
00142 
00143     # Parameters for CLCT processors: old MC studies
00144     clctParamOldMC = cms.PSet(
00145         clctFifoTbins   = cms.uint32(12),
00146         clctFifoPretrig = cms.uint32(7),
00147         clctHitPersist  = cms.uint32(6),
00148         clctDriftDelay  = cms.uint32(2),
00149         clctNplanesHitPretrig = cms.uint32(2),
00150         clctNplanesHitPattern = cms.uint32(4),
00151         clctPidThreshPretrig  = cms.uint32(2),
00152         clctMinSeparation     = cms.uint32(10),
00153         # Debug
00154         verbosity = cms.untracked.int32(0)
00155     ),
00156 
00157     # Parameters for CLCT processors: MTCC-II
00158     clctParamMTCC = cms.PSet(
00159         clctFifoTbins   = cms.uint32(12),
00160         clctFifoPretrig = cms.uint32(7),
00161         clctHitPersist  = cms.uint32(6),
00162         clctDriftDelay  = cms.uint32(2),
00163         clctNplanesHitPretrig = cms.uint32(4),
00164         clctNplanesHitPattern = cms.uint32(1),
00165         clctPidThreshPretrig  = cms.uint32(2),
00166         clctMinSeparation     = cms.uint32(10),
00167         # Debug
00168         verbosity = cms.untracked.int32(0)
00169     ),
00170 
00171     # Parameters for CLCT processors: 2007 and later
00172     clctParam07 = cms.PSet(
00173         clctFifoTbins   = cms.uint32(12),
00174         clctFifoPretrig = cms.uint32(7),
00175         clctHitPersist  = cms.uint32(4),
00176         clctDriftDelay  = cms.uint32(2),
00177         clctNplanesHitPretrig = cms.uint32(3),
00178         clctNplanesHitPattern = cms.uint32(4),
00179         clctPidThreshPretrig  = cms.uint32(2),
00180         clctMinSeparation     = cms.uint32(10),
00181         # Debug
00182         verbosity = cms.untracked.int32(0),
00183 
00184         # BX to start CLCT finding (poor man's dead-time shortening):
00185         clctStartBxShift  = cms.untracked.int32(0)
00186     ),
00187 
00188     # Parameters for CLCT processors: SLHC studies
00189     clctSLHC = cms.PSet(
00190         clctFifoTbins   = cms.uint32(12),
00191         clctFifoPretrig = cms.uint32(7),
00192         clctHitPersist  = cms.uint32(4),
00193         clctDriftDelay  = cms.uint32(2),
00194         clctNplanesHitPretrig = cms.uint32(3),
00195         clctNplanesHitPattern = cms.uint32(4),
00196         # increase pattern ID threshold from 2 to 4 to trigger higher pt tracks  
00197         clctPidThreshPretrig  = cms.uint32(4),
00198         # decrease possible minimal #HS distance between two CLCTs in a BX from 10 to 5:
00199         clctMinSeparation     = cms.uint32(5),
00200         # Debug
00201         verbosity = cms.untracked.int32(0),
00202 
00203         # BX to start CLCT finding (poor man's to shorten the dead-time):
00204         clctStartBxShift  = cms.untracked.int32(0),
00205         
00206         # Turns on algorithms of localized dead-time zones:
00207         useDeadTimeZoning = cms.untracked.bool(True),
00208         
00209         # Width (in #HS) of a fixed dead zone around a key HS:
00210         clctStateMachineZone = cms.untracked.uint32(8),
00211         
00212         # Enables the algo which instead of using the fixed dead zone width, 
00213         # varies it depending on the width of a triggered CLCT pattern
00214         # (if True, the clctStateMachineZone is ignored):
00215         useDynamicStateMachineZone = cms.untracked.bool(True),
00216         
00217         # Pretrigger HS +- clctPretriggerTriggerZone sets the trigger matching zone
00218         # which defines how far from pretrigger HS the TMB may look for a trigger HS
00219         # (it becomes important to do so with localized dead-time zoning): 
00220         clctPretriggerTriggerZone = cms.untracked.uint32(5),
00221         
00222         # whether to store the "corrected" CLCT stub time 
00223         # (currently it is median time of all hits in a pattern) into the CSCCLCTDigi bx,
00224         # and temporary store the regular "key layer hit" time into the CSCCLCTDigi fullBX:
00225         clctUseCorrectedBx = cms.untracked.bool(True)
00226     ),
00227 
00228     tmbParam = cms.PSet(
00229         mpcBlockMe1a    = cms.uint32(0),
00230         alctTrigEnable  = cms.uint32(0),
00231         clctTrigEnable  = cms.uint32(0),
00232         matchTrigEnable = cms.uint32(1),
00233         matchTrigWindowSize = cms.uint32(7),
00234         tmbL1aWindowSize = cms.uint32(7),
00235         # Debug
00236         verbosity = cms.untracked.int32(0),
00237 
00238         # Configure early_tbins instead of hardcoding it
00239         tmbEarlyTbins = cms.untracked.int32(4),
00240         
00241         # Flag for whether to readout only the earliest max two LCTs in a 
00242         # L1A readout window, as there is only room just for two in the TMB header.
00243         # If false, all LCTs would be readout in L1A window.
00244         tmbReadoutEarliest2 = cms.untracked.bool(True),
00245 
00246         # For CLCT-centric matching, whether to drop ALCTs that were matched
00247         # to CLCTs in this BX, and not use them in the following BX 
00248         # (default non-upgrade TMB behavior).
00249         tmbDropUsedAlcts = cms.untracked.bool(True)
00250     ),
00251 
00252     # to be used by ME11 chambers with upgraded TMB and ALCT
00253     tmbSLHC = cms.PSet(
00254         mpcBlockMe1a    = cms.uint32(0),
00255         alctTrigEnable  = cms.uint32(0),
00256         clctTrigEnable  = cms.uint32(0),
00257         matchTrigEnable = cms.uint32(1),
00258         # reduce ALCT-CLCT matching window size from 7 to 3
00259         matchTrigWindowSize = cms.uint32(3),
00260         tmbL1aWindowSize = cms.uint32(7),
00261         # Debug
00262         verbosity = cms.untracked.int32(0),
00263 
00264         # Configure early_tbins instead of hardcoding it
00265         tmbEarlyTbins = cms.untracked.int32(4),
00266         
00267         # Flag for whether to readout only the earliest max two LCTs in a 
00268         # L1A readout window, as there is only room just for two in the TMB header.
00269         # If false, all LCTs would be readout in L1A window.
00270         tmbReadoutEarliest2 = cms.untracked.bool(False),
00271 
00272         # For CLCT-centric matching, whether to drop ALCTs that were matched
00273         # to CLCTs in this BX, and not use them in the following BX 
00274         # (default non-upgrade TMB behavior).
00275         tmbDropUsedAlcts = cms.untracked.bool(False),
00276 
00277         # Switch to enable
00278         #  True = CLCT-centric matching (default non-upgrade behavior, 
00279         #         take CLCTs in BX look for matching ALCTs in window)
00280         #  False = ALCT-centric matching (recommended for SLHC, 
00281         #         take ALCTs in BX look for matching CLCTs in window)
00282         clctToAlct = cms.untracked.bool(False),
00283 
00284         # For ALCT-centric matching, whether to drop CLCTs that were matched
00285         # to ALCTs in this BX, and not use them in the following BX 
00286         tmbDropUsedClcts = cms.untracked.bool(False),
00287         
00288         # For CLCT-centric matching in ME11, break after finding 
00289         # the first BX with matching ALCT 
00290         matchEarliestAlctME11Only = cms.untracked.bool(False),
00291         
00292         # For ALCT-centric matching in ME11, break after finding 
00293         # the first BX with matching CLCT 
00294         matchEarliestClctME11Only = cms.untracked.bool(False),
00295         
00296         # 0 = default "non-X-BX" sorting algorithm, 
00297         #     where the first BX with match goes first
00298         # 1 = simple X-BX sorting algorithm, 
00299         #     where the central match BX goes first, 
00300         #     then the closest early, the slocest late, etc.
00301         tmbCrossBxAlgorithm = cms.untracked.uint32(1),
00302         
00303         # How many maximum LCTs per whole chamber per BX to keep
00304         # (supposedly, 1b and 1a can have max 2 each)
00305         maxME11LCTs = cms.untracked.uint32(2)
00306     ),
00307 
00308     # MPC sorter config for SLHC studies
00309     mpcSLHC = cms.PSet(
00310         mpcMaxStubs = cms.untracked.uint32(3)
00311     )
00312 )