CMS 3D CMS Logo

TMTrackProducer_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 #---------------------------------------------------------------------------------------------------------
4 # This describes the full TMTT track reconstruction chain with 3 GeV threshold, where:
5 # the GP divides the tracker into 16 eta sectors;
6 # the HT uses a 32x16 array followed by 2x2 Mini-HT array, with transverese HT readout & multiplexing,
7 # followed by the track fit (KF); and duplicate track removal (Algo1) is run.
8 #
9 # This usually corresponds to the current firmware.
10 #---------------------------------------------------------------------------------------------------------
11 
12 
13 #=== TMTT tracking needs to get FE stub window sizes from this.
14 
16 
17 #=== Random number generator for Stub Killer (dead module emulation)
18 
19 RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService",
20  TMTrackProducer = cms.PSet(initialSeed = cms.untracked.uint32(12345))
21 )
22 
23 #=== Import default values for all parameters & define EDProducer.
24 
25 from L1Trigger.TrackFindingTMTT.TMTrackProducer_Defaults_cfi import TMTrackProducer_params
26 
27 TMTrackProducer = cms.EDProducer('tmtt::TMTrackProducer',
28  # Load cfg parameters from TMTrackProducer_Defaults_cfi.py
29  TMTrackProducer_params
30 )
31 
32 #===================================================================================================
33 # Uncomment the following 2 lines to enable use of MC truth info & output histograms.
34 # (This costs CPU, and is unnecessary if you only care about producing TTTrack collection).
35 #===================================================================================================
36 
37 #TMTrackProducer.EnableMCtruth = cms.bool(True)
38 #TMTrackProducer.EnableHistos = cms.bool(True)
39 
40 #===================================================================================================
41 #=== All the following parameters already have identical values in TMTrackProducer_Defaults_cfi .
42 #=== They are listed here just to remind you of the most interesting parameters to play with.
43 #===================================================================================================
44 
45 #--- Configure track fitting
46 
47 # Use only 4 parameter helix fit Kalman Filter (which automatically runs on tracks produced with no r-z track filter)
48 #TMTrackProducer.TrackFitSettings.TrackFitters = cms.vstring("KF4ParamsComb")
49 
50 # Allow KF to assign stubs in up to this many layers to fitted tracks.
51 #TMTrackProducer.TrackFitSettings.KalmanMaxNumStubs = cms.uint32(6)
52 # Enable more sophisticated fit mathematics in KF.
53 #TMTrackProducer.TrackFitSettings.KalmanHOtilted = cms.bool(True)
54 #TMTrackProducer.TrackFitSettings.KalmanHOhelixExp = cms.bool(True)
55 #TMTrackProducer.TrackFitSettings.KalmanHOalpha = cms.uint32(2)
56 #TMTrackProducer.TrackFitSettings.KalmanHOprojZcorr = cms.uint32(2)
57 #TMTrackProducer.TrackFitSettings.KalmanHOfw = cms.bool(False)
58 
59 #--- Switch off parts of the track reconstruction chain.
60 
61 #TMTrackProducer.DupTrkRemoval.DupTrkAlgFit = cms.uint32(0)
62 #TMTrackProducer.TrackFitSettings.TrackFitters = cms.vstring()
63 
64 #--- Keep Pt threshold at 3 GeV, with coarse HT, but switch off Mini-HT.
65 
66 #TMTrackProducer.HTArraySpecRphi.MiniHTstage = cms.bool(False)
67 #TMTrackProducer.HTFillingRphi.MaxStubsInCell = cms.uint32(16)
68 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(16)
69 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(32)
70 #TMTrackProducer.HTFillingRphi.BusySectorMbinRanges = cms.vuint32(2,2,2,2,2,2,2,2)
71 #TMTrackProducer.HTFillingRphi.BusySectorMbinOrder = cms.vuint32(0,8, 1,9, 2,10, 3,11, 4,12, 5,13, 6,14, 7,15)
72 
73 #--- Reduce Pt threshold to 2 GeV, with coarse HT, and switch off Mini-HT.
74 
75 #TMTrackProducer.HTArraySpecRphi.MiniHTstage = cms.bool(False)
76 #TMTrackProducer.HTFillingRphi.MaxStubsInCell = cms.uint32(16)
77 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(24)
78 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(32)
79 #TMTrackProducer.GenCuts.GenMinPt = cms.double(2.0)
80 #TMTrackProducer.HTArraySpecRphi.HoughMinPt = cms.double(2.0)
81 #TMTrackProducer.HTFillingRphi.BusySectorMbinRanges = cms.vuint32(2,2,2,2,2,2,2,2,2,2,2,2)
82 #TMTrackProducer.HTFillingRphi.BusySectorMbinOrder = cms.vuint32(0,12, 1,13, 2,14, 3,15, 4,16, 5,17, 6,18, 7,19, 8,20, 9,21, 10,22, 11,23)
83 
84 #--- Reduce Pt threshold to 2 GeV, with coarse HT, followed by Mini-HT.
85 
86 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(48)
87 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(64)
88 #TMTrackProducer.GenCuts.GenMinPt = cms.double(2.0)
89 #TMTrackProducer.HTArraySpecRphi.HoughMinPt = cms.double(2.0)
90 #TMTrackProducer.HTArraySpecRphi.MiniHoughMinPt = cms.double(3.0) # Mini-HT not used below this Pt, to reduce sensitivity to scattering.
91 #TMTrackProducer.HTFillingRphi.BusySectorMbinRanges = cms.vuint32(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 24)
92 #TMTrackProducer.HTFillingRphi.BusySectorMbinOrder = cms.vuint32(0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47)
93 
94 #--- Additional Mini-HT options to improve electron/displaced tracking.
95 
96 # Next 2 lines cause tracks found by 1st stage HT to be output if above specified Pt threshold & mini-HT found no tracks.
97 # Improves electron tracking. Setting Pt threshold to 0 improves displaced tracking.
98 #TMTrackProducer.HTArraySpecRphi.MiniHoughDontKill = cms.bool(True)
99 #TMTrackProducer.HTArraySpecRphi.MiniHoughDontKillMinPt = cms.double(8.)
100 # Extreme displaced tracking also benefits from following.
101 #TMTrackProducer.L1TrackDef.MinStubLayers = cms.uint32(4) # HT accepts tracks with >= 4 layers
102 #TMTrackProducer.TrackFitSettings.KalmanRemove2PScut = cms.bool(True)
103 #To study displaced tracking, include non-prompt particles in efficiency definition.
104 #TMTrackProducer.GenCuts.GenMaxVertR = cms.double(30.)
105 
106 #--- Unusual HT cell shapes
107 
108 # Simplify HT MUX to allow easy playing with the number of m bins.
109 #TMTrackProducer.HTFillingRphi.BusySectorMbinOrder = cms.vuint32()
110 
111 # Diamond shaped cells: (64,62), (34,32) or (46,44) sized array interesting.
112 #TMTrackProducer.HTArraySpecRphi.Shape = cms.uint32(1)
113 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(38)
114 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(32)
115 
116 # Hexagonal shaped cells: (64,42), (50,32) or (56,36) sized array interesting.
117 #TMTrackProducer.HTArraySpecRphi.Shape = cms.uint32(2)
118 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(56)
119 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(32)
120 
121 # Brick-wall arranged cells: (64,30) or (66,32) sized array interesting.
122 #TMTrackProducer.HTArraySpecRphi.Shape = cms.uint32(3)
123 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPt = cms.uint32(64)
124 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(27)
125 
126 #--- Older cfg giving similar tracking performance with slightly larger resource use.
127 
128 #TMTrackProducer.PhiSectors.NumPhiSectors = cms.uint32(36)
129 #TMTrackProducer.EtaSectors.EtaRegions = cms.vdouble(-2.4, -2.0, -1.53, -0.98, -0.37, 0.37, 0.98, 1.53, 2.0, 2.4)
130 #TMTrackProducer.EtaSectors.ChosenRofZ = cms.double(45.)
131 #TMTrackProducer.EtaSectors.AllowOver2EtaSecs = cms.bool(False)
132 #TMTrackProducer.HTArraySpecRphi.HoughNbinsPhi = cms.uint32(32)
133 #TMTrackProducer.HTArraySpecRphi.NumSubSecsEta = cms.uint32(1)
134 
135 #--- Stub digitization (switch on/off and/or change defaults).
136 
137 #TMTrackProducer.StubDigitize.EnableDigitize = cms.bool(True)
138 
139 #--- Reduce requirement on number of layers a track must have stubs in, either globally or in specific eta regions.
140 
141 #TMTrackProducer.L1TrackDef.MinStubLayers = cms.uint32(4) # Reduce it globally
142 #TMTrackProducer.L1TrackDef.EtaSecsReduceLayers = cms.vuint32(5,12) # barrel-endcap transition region
143 
144 #--- If globally reducing number of layers cut, best to also use just one HT output opto-link per m-bin.
145 # For 3 GeV threshold with no mini-HT.
146 #TMTrackProducer.HTFillingRphi.BusySectorMbinRanges = cms.vuint32(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
147 # For 2 GeV threshold with mini-HT.
148 #TMTrackProducer.HTFillingRphi.BusySectorMbinRanges = cms.vuint32(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 24)
149 
150 #--- Change TP to track matching criteria.
151 
152 #TMTrackProducer.GenCuts.GenMinStubLayers = cms.uint32(4)
153 #TMTrackProducer.TrackMatchDef.MinNumMatchLayers = cms.uint32(4)
154 
155 #--- Switch off data truncation due to finite band-width.
156 
157 #TMTrackProducer.HTFillingRphi.BusySectorKill = cms.bool(False)
158 #TMTrackProducer.HTFillingRphi.BusyInputSectorKill = cms.bool(False)
159 
160 # Don't order stubs by bend in DTC, such that highest Pt stubs are transmitted first.
161 #TMTrackProducer.StubCuts.OrderStubsByBend = cms.bool(False)
162 
163 #--- Switch on FPGA-friendly approximation to B parameter in GP - will be used in future GP firmware.
164 #--- (used to relate track angle dphi to stub bend)
165 #TMTrackProducer.GeometricProc.UseApproxB = cms.bool(True)