CMS 3D CMS Logo

simEmtfDigis_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # EMTF emulator configuration
4 
5 # Check that proper switches are implemented in L1Trigger/Configuration/python/customiseReEmul.py - AWB 02.06.17
6 
7 
11 
12 simEmtfDigisMC = cms.EDProducer("L1TMuonEndCapTrackProducer",
13  # Verbosity level
14  verbosity = cms.untracked.int32(0),
15 
16  # Configure by firmware version, which may be different than the default parameters in this file
17  FWConfig = cms.bool(True),
18 
19  # Era (options: 'Run2_2016', 'Run2_2017', 'Run2_2018')
20  Era = cms.string('Run2_2018'),
21 
22  # Input collections
23  # Three options for CSCInput
24  # * 'simCscTriggerPrimitiveDigis','MPCSORTED' : simulated trigger primitives (LCTs) from re-emulating CSC digis
25  # * 'csctfDigis' : real trigger primitives as received by CSCTF (legacy trigger), available only in 2016 data
26  # * 'emtfStage2Digis' : real trigger primitives as received by EMTF, unpacked in EventFilter/L1TRawToDigi/
27  DTPhiInput = cms.InputTag('simTwinMuxDigis'),
28  DTThetaInput = cms.InputTag('simDtTriggerPrimitiveDigis'),
29  CSCInput = cms.InputTag('simCscTriggerPrimitiveDigis','MPCSORTED'),
30  CSCComparatorInput = cms.InputTag('simMuonCSCDigis','MuonCSCComparatorDigi'),
31  RPCInput = cms.InputTag('simMuonRPCDigis'),
32  CPPFInput = cms.InputTag('simCPPFDigis'),
33  GEMInput = cms.InputTag('simMuonGEMPadDigiClusters'),
34  ME0Input = cms.InputTag('me0TriggerConvertedPseudoDigis'),
35 
36  # Run with CSC, RPC, GEM
37  DTEnable = cms.bool(False),
38  CSCEnable = cms.bool(True), # Use CSC LCTs from the MPCs in track-building
39  RPCEnable = cms.bool(True), # Use clustered RPC hits from CPPF in track-building
40  IRPCEnable = cms.bool(False),
41  CPPFEnable = cms.bool(False), # Use CPPF-emulated clustered RPC hits from CPPF as the RPC hits
42  GEMEnable = cms.bool(False), # Use hits from GEMs in track-building
43  ME0Enable = cms.bool(False),
44 
45  # BX
46  MinBX = cms.int32(-3), # Minimum BX considered
47  MaxBX = cms.int32(+3), # Maximum BX considered
48  BXWindow = cms.int32(2), # Number of BX whose primitives can be included in the same track
49 
50  # CSC LCT BX offset correction
51  CSCInputBXShift = cms.int32(-8), # Shift applied to input CSC LCT primitives, to center at BX = 0
52  RPCInputBXShift = cms.int32(0),
53  GEMInputBXShift = cms.int32(0),
54  ME0InputBXShift = cms.int32(-8),
55 
56  # Sector processor primitive-conversion parameters
57  spPCParams16 = cms.PSet(
58  ZoneBoundaries = cms.vint32(0,41,49,87,127), # Vertical boundaries of track-building zones, in integer theta (5 for 4 zones)
59  # ZoneBoundaries = cms.vint32(0,36,54,96,127), # New proposed zone boundaries
60  ZoneOverlap = cms.int32(2), # Overlap between zones
61  IncludeNeighbor = cms.bool(True), # Include primitives from neighbor chambers in track-building
62  DuplicateTheta = cms.bool(True), # Use up to 4 theta/phi positions for two LCTs in the same chamber
63  FixZonePhi = cms.bool(True), # Pattern phi slightly offset from true LCT phi; also ME3/4 pattern width off
64  UseNewZones = cms.bool(False), # Improve high-quality pattern finding near ring 1-2 gap in ME3/4
65  FixME11Edges = cms.bool(True), # Improved small fraction of buggy LCT coordinate transformations
66  ),
67 
68  # Sector processor pattern-recognition parameters
69  spPRParams16 = cms.PSet(
70  PatternDefinitions = cms.vstring(
71  # straightness, hits in ME1, hits in ME2, hits in ME3, hits in ME4
72  # ME1 vaues centered at 15, range from 0 - 30
73  # ME2,3,4 values centered at 7, range from 0 - 14
74  "4,15:15,7:7,7:7,7:7",
75  "3,16:16,7:7,7:6,7:6",
76  "3,14:14,7:7,8:7,8:7",
77  "2,18:17,7:7,7:5,7:5", # should be 7:4 in ME3,4 (FW bug)
78  "2,13:12,7:7,10:7,10:7",
79  "1,22:19,7:7,7:0,7:0",
80  "1,11:8,7:7,14:7,14:7",
81  "0,30:23,7:7,7:0,7:0",
82  "0,7:0,7:7,14:7,14:7",
83  ),
84  SymPatternDefinitions = cms.vstring(
85  # straightness, hits in ME1, hits in ME2, hits in ME3, hits in ME4
86  "4,15:15:15:15,7:7:7:7,7:7:7:7,7:7:7:7",
87  "3,16:16:14:14,7:7:7:7,8:7:7:6,8:7:7:6",
88  "2,18:17:13:12,7:7:7:7,10:7:7:4,10:7:7:4",
89  "1,22:19:11:8,7:7:7:7,14:7:7:0,14:7:7:0",
90  "0,30:23:7:0,7:7:7:7,14:7:7:0,14:7:7:0",
91  ),
92  UseSymmetricalPatterns = cms.bool(True), # 5 symmetric patterns instead of 9 asymmetric for track building
93  ),
94 
95  # Sector processor track-building parameters
96  spTBParams16 = cms.PSet(
97  ThetaWindow = cms.int32(8), # Maximum dTheta between primitives in the same track
98  ThetaWindowZone0 = cms.int32(4), # Maximum dTheta between primitives in the same track in Zone 0 (ring 1)
99  UseSingleHits = cms.bool(False), # Build "tracks" from single LCTs in ME1/1
100  BugSt2PhDiff = cms.bool(False), # Reduced LCT matching window in station 2, resulting in demoted tracks and inefficiency
101  BugME11Dupes = cms.bool(False), # LCTs matched to track may take theta value from other LCT in the same chamber
102  BugAmbigThetaWin = cms.bool(False), # Can allow dThetas outside window when there are 2 LCTs in the same chamber
103  TwoStationSameBX = cms.bool(True), # Requires the hits in two-station tracks to have the same BX
104  ),
105 
106  # Sector processor ghost-cancellation parameters
107  spGCParams16 = cms.PSet(
108  MaxRoadsPerZone = cms.int32(3), # Number of patterns that can be built per theta zone
109  MaxTracks = cms.int32(3), # Number of tracks that can be sent from each sector
110  UseSecondEarliest = cms.bool(True), # Second-earliest LCT used to assign BX, tracks cancel over 3 BX, improved LCT recovery
111  BugSameSectorPt0 = cms.bool(False), # Only highest-quality track in a sector assigned pT; others assigned pT = 0
112  ),
113 
114  # Sector processor pt-assignment parameters
115  spPAParams16 = cms.PSet(
116  ReadPtLUTFile = cms.bool(False),
117  FixMode15HighPt = cms.bool(True), # High-pT fix puts outlier LCTs in mode 15 tracks back in a straight line
118  Bug9BitDPhi = cms.bool(False), # dPhi wrap-around in modes 3, 5, 6, 9, 10, 12
119  BugMode7CLCT = cms.bool(False), # pT LUT written with incorrect values for mode 7 CLCT, mode 10 random offset
120  BugNegPt = cms.bool(False), # In all modes negative (1/pT) set to 3 instead of 511
121  BugGMTPhi = cms.bool(False), # Some drift in uGMT phi conversion, off by up to a few degrees
122  PromoteMode7 = cms.bool(False), # Assign station 2-3-4 tracks with |eta| > 1.6 SingleMu quality
123  ModeQualVer = cms.int32(2), # Version 2 contains modified mode-quality mapping for 2018
124 
125  ProtobufFileName = cms.string('model_graph.displ.5.pb'), # Protobuf file name to be used by NN based pT assignment
126  ),
127 
128 )
129 
130 simEmtfDigisData = simEmtfDigisMC.clone(
131  DTPhiInput = cms.InputTag('bmtfDigis'),
132  DTThetaInput = cms.InputTag('bmtfDigis'),
133  CSCInput = cms.InputTag('emtfStage2Digis'),
134  CSCComparatorInput = cms.InputTag('muonCSCDigis','MuonCSCComparatorDigi'),
135  RPCInput = cms.InputTag('muonRPCDigis'),
136  CPPFInput = cms.InputTag('emtfStage2Digis'),
137 
138  CPPFEnable = cms.bool(True), # Use CPPF-emulated clustered RPC hits from CPPF as the RPC hits
139 
140 )
141 
142 simEmtfDigis = simEmtfDigisMC.clone()
143 
144 
145 
148 
149 
150 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
151 stage2L1Trigger.toModify(simEmtfDigis, RPCEnable = cms.bool(False), Era = cms.string('Run2_2016'))
152 
153 
154 from Configuration.Eras.Modifier_stage2L1Trigger_2017_cff import stage2L1Trigger_2017
155 stage2L1Trigger_2017.toModify(simEmtfDigis, RPCEnable = cms.bool(True), Era = cms.string('Run2_2017'))
156 
157 
158 from Configuration.Eras.Modifier_stage2L1Trigger_2018_cff import stage2L1Trigger_2018
159 stage2L1Trigger_2018.toModify(simEmtfDigis, RPCEnable = cms.bool(True), Era = cms.string('Run2_2018'))