CMS 3D CMS Logo

ProducerSetup_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 TrackTrigger_params = cms.PSet (
4 
5  fromDD4hep = cms.bool(False),
6 
7  # Parameter to check if configured Tracker Geometry is supported
8  # this refers to files included by Configuration/Geometry/python/GeometryExtended*_cff.py
9  UnSupportedGeometry = cms.PSet (
10  XMLLabel = cms.string ("geomXMLFiles" ), # label of ESProducer/ESSource
11  XMLPath = cms.string ("Geometry/TrackerCommonData/data/PhaseII/" ), # compared path
12  XMLFile = cms.string ("tracker.xml" ), # compared filen ame
13  XMLVersions = cms.vstring() # list of unsupported versions
14  ),
15 
16  # Parameter to check if Process History is consistent with process configuration
17  ProcessHistory = cms.PSet (
18  GeometryConfiguration = cms.string( "XMLIdealGeometryESSource@" ), # label of compared GeometryConfiguration
19  TTStubAlgorithm = cms.string( "TTStubAlgorithm_official_Phase2TrackerDigi_@" ) # label of compared TTStubAlgorithm
20  ),
21 
22  # Common track finding parameter
23  TrackFinding = cms.PSet (
24  BeamWindowZ = cms.double( 15. ), # half lumi region size in cm
25  MatchedLayers = cms.int32 ( 4 ), # required number of layers a found track has to have in common with a TP to consider it matched to it
26  MatchedLayersPS = cms.int32 ( 0 ), # required number of ps layers a found track has to have in common with a TP to consider it matched to it
27  UnMatchedStubs = cms.int32 ( 1 ), # allowed number of stubs a found track may have not in common with its matched TP
28  UnMatchedStubsPS = cms.int32 ( 0 ), # allowed number of PS stubs a found track may have not in common with its matched TP
29  Scattering = cms.double( 0.131283 ) # additional radial uncertainty in cm used to calculate stub phi residual uncertainty to take multiple scattering into account
30  ),
31 
32  # TMTT specific parameter
33  TMTT = cms.PSet (
34  MinPt = cms.double( 3. ), # cut on stub in GeV, also defines region overlap shape
35  MaxEta = cms.double( 2.4 ), # cut on stub eta
36  ChosenRofPhi = cms.double( 67.24 ), # critical radius defining region overlap shape in cm
37  NumLayers = cms.int32 ( 7 ), # number of detector layers a reconstructbale particle may cross, reduced to 7, 8th layer almost never corssed
38  WidthR = cms.int32 ( 12 ), # number of bits used for stub r - ChosenRofPhi
39  WidthPhi = cms.int32 ( 15 ), # number of bits used for stub phi w.r.t. phi region centre
40  WidthZ = cms.int32 ( 14 ) # number of bits used for stub z
41  ),
42 
43  # Hybrid specific parameter
44  Hybrid = cms.PSet (
45  MinPtStub = cms.double( 2.0 ), # cut on stub pt in GeV, also defines region overlap shape
46  MinPtCand = cms.double( 1.34 ), # cut on candidate pt in GeV
47  MaxEta = cms.double( 2.5 ), # cut on stub eta
48  ChosenRofPhi = cms.double( 55. ), # critical radius defining region overlap shape in cm
49  NumLayers = cms.int32 ( 4 ), # max number of detector layer connected to one DTC
50  NumRingsPS = cms.vint32 ( 11, 11, 8, 8, 8 ), # number of outer PS rings for disk 1, 2, 3, 4, 5
51  WidthsR = cms.vint32 ( 7, 7, 12, 7 ), # number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
52  WidthsZ = cms.vint32 ( 12, 8, 7, 7 ), # number of bits used for stub z w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
53  WidthsPhi = cms.vint32 ( 14, 17, 14, 14 ), # number of bits used for stub phi w.r.t. region centre for module types (barrelPS, barrel2S, diskPS, disk2S)
54  WidthsAlpha = cms.vint32 ( 0, 0, 0, 4 ), # number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
55  WidthsBend = cms.vint32 ( 3, 4, 3, 4 ), # number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
56  RangesR = cms.vdouble( 7.5, 7.5, 120. , 0. ), # range in stub r which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
57  RangesZ = cms.vdouble( 240., 240., 7.5, 7.5 ), # range in stub z which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
58  RangesAlpha = cms.vdouble( 0., 0., 0., 2048. ), # range in stub row which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
59  LayerRs = cms.vdouble( 24.9316, 37.1777, 52.2656, 68.7598, 86.0156, 108.3105 ), # mean radius of outer tracker barrel layer
60  DiskZs = cms.vdouble( 131.1914, 154.9805, 185.3320, 221.6016, 265.0195 ), # mean z of outer tracker endcap disks
61  Disk2SRsSet = cms.VPSet( # center radius of outer tracker endcap 2S diks strips
62  cms.PSet( Disk2SRs = cms.vdouble( 66.4391, 71.4391, 76.2750, 81.2750, 82.9550, 87.9550, 93.8150, 98.8150, 99.8160, 104.8160 ) ), # disk 1
63  cms.PSet( Disk2SRs = cms.vdouble( 66.4391, 71.4391, 76.2750, 81.2750, 82.9550, 87.9550, 93.8150, 98.8150, 99.8160, 104.8160 ) ), # disk 2
64  cms.PSet( Disk2SRs = cms.vdouble( 63.9903, 68.9903, 74.2750, 79.2750, 81.9562, 86.9562, 92.4920, 97.4920, 99.8160, 104.8160 ) ), # disk 3
65  cms.PSet( Disk2SRs = cms.vdouble( 63.9903, 68.9903, 74.2750, 79.2750, 81.9562, 86.9562, 92.4920, 97.4920, 99.8160, 104.8160 ) ), # disk 4
66  cms.PSet( Disk2SRs = cms.vdouble( 63.9903, 68.9903, 74.2750, 79.2750, 81.9562, 86.9562, 92.4920, 97.4920, 99.8160, 104.8160 ) ) # disk 5
67  ),
68  InnerRadius = cms.double( 19.6 ), # smallest stub radius after TrackBuilder in cm
69  WidthsRTB = cms.vint32 ( 7, 7, 12, 12 ), # number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S) at TB output
70  ),
71 
72  # Parameter specifying TrackingParticle used for Efficiency measurements
73  TrackingParticle = cms.PSet (
74  MinPt = cms.double( 2. ), # pt cut in GeV
75  MaxEta = cms.double( 2.4 ), # eta cut
76  MaxVertR = cms.double( 1. ), # cut on vertex pos r in cm
77  MaxVertZ = cms.double( 30. ), # cut on vertex pos z in cm
78  MaxD0 = cms.double( 5. ), # cut on impact parameter in cm
79  MinLayers = cms.int32 ( 4 ), # required number of associated layers to a TP to consider it reconstruct-able and to match it with TTTrack
80  MinLayersPS = cms.int32 ( 0 ), # required number of associated ps layers to a TP to consider it reconstruct-able
81  MaxBadStubs2S = cms.int32 ( 1 ), # max number of unassociated 2S stubs allowed to still associate TTTrack with TP
82  MaxBadStubsPS = cms.int32 ( 0 ) # max number of unassociated PS stubs allowed to still associate TTTrack with TP
83  ),
84 
85  # Fimrware specific Parameter
86  Firmware = cms.PSet (
87  WidthDSPa = cms.int32( 27 ), # width of the 'A' port of an DSP slice
88  WidthDSPb = cms.int32( 18 ), # width of the 'B' port of an DSP slice
89  WidthDSPc = cms.int32( 48 ), # width of the 'C' port of an DSP slice
90  WidthAddrBRAM36 = cms.int32( 9 ), # smallest address width of an BRAM36 configured as broadest simple dual port memory
91  WidthAddrBRAM18 = cms.int32( 10 ), # smallest address width of an BRAM18 configured as broadest simple dual port memory
92  NumFramesInfra = cms.int32 ( 6 ), # needed gap between events of emp-infrastructure firmware
93  FreqLHC = cms.double( 40. ), # LHC bunch crossing rate in MHz
94  FreqBE = cms.double( 360. ), # processing Frequency of DTC, KF & TFP in MHz, has to be integer multiple of FreqLHC
95  TMP_FE = cms.int32 ( 8 ), # number of events collected in front-end
96  TMP_TFP = cms.int32 ( 18 ), # time multiplexed period of track finding processor
97  SpeedOfLight = cms.double( 2.99792458 ), # in e8 m/s
98  BField = cms.double( 3.81120228767395 ), # in T
99  BFieldError = cms.double( 1.e-6 ), # accepted difference to EventSetup in T
100  OuterRadius = cms.double( 112.7 ), # outer radius of outer tracker in cm
101  InnerRadius = cms.double( 21.8 ), # inner radius of outer tracker in cm
102  HalfLength = cms.double( 270. ), # half length of outer tracker in cm
103  TiltApproxSlope = cms.double( 0.884 ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
104  TiltApproxIntercept = cms.double( 0.507 ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
105  TiltUncertaintyR = cms.double( 0.12 ), # In tilted barrel, constant assumed stub radial uncertainty * sqrt(12) in cm
106  MindPhi = cms.double( 0.0001 ), # minimum representable stub phi uncertainty * sqrt(12) + additional terms in rad
107  MaxdPhi = cms.double( 0.02 ), # maximum representable stub phi uncertainty * sqrt(12) + additional terms in rad
108  MindZ = cms.double( 0.1 ), # minimum representable stub z uncertainty * sqrt(12) + additional terms in cm
109  MaxdZ = cms.double( 30. ), # maximum representable stub z uncertainty * sqrt(12) + additional terms in cm
110  Pitch2S = cms.double( 0.009 ), # strip pitch of outer tracker sensors in cm
111  PitchPS = cms.double( 0.01 ), # pixel pitch of outer tracker sensors in cm
112  Length2S = cms.double( 5.025 ), # strip length of outer tracker sensors in cm
113  LengthPS = cms.double( 0.1467 ), # pixel length of outer tracker sensors in cm
114  TiltedLayerLimitsZ = cms.vdouble( 15.5, 24.9, 34.3, -1., -1., -1. ), # barrel layer limit |z| value to partition into tilted and untilted region
115  PSDiskLimitsR = cms.vdouble( 66.4, 66.4, 64.55, 64.55, 64.55 ), # endcap disk limit r value to partition into PS and 2S region
116  ),
117 
118  # Parmeter specifying front-end
119  FrontEnd = cms.PSet (
120  WidthBend = cms.int32 ( 6 ), # number of bits used for internal stub bend
121  WidthCol = cms.int32 ( 5 ), # number of bits used for internal stub column
122  WidthRow = cms.int32 ( 11 ), # number of bits used for internal stub row
123  BaseBend = cms.double( .25 ), # precision of internal stub bend in pitch units
124  BaseCol = cms.double( 1. ), # precision of internal stub column in pitch units
125  BaseRow = cms.double( .5 ), # precision of internal stub row in pitch units
126  BaseWindowSize = cms.double( .5 ), # precision of window sizes in pitch units
127  BendCut = cms.double( 1.3125 ) # used stub bend uncertainty in pitch units
128  ),
129 
130  # Parmeter specifying DTC
131  DTC = cms.PSet (
132  NumRegions = cms.int32( 9 ), # number of phi slices the outer tracker readout is organized in
133  NumOverlappingRegions = cms.int32( 2 ), # number of regions a reconstructable particles may cross
134  NumATCASlots = cms.int32( 12 ), # number of Slots in used ATCA crates
135  NumDTCsPerRegion = cms.int32( 24 ), # number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
136  NumModulesPerDTC = cms.int32( 72 ), # max number of sensor modules connected to one DTC board
137  NumRoutingBlocks = cms.int32( 2 ), # number of systiloic arrays in stub router firmware
138  DepthMemory = cms.int32( 64 ), # fifo depth in stub router firmware
139  WidthRowLUT = cms.int32( 4 ), # number of row bits used in look up table
140  WidthInv2R = cms.int32( 9 ), # number of bits used for stub inv2R. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
141  OffsetDetIdDSV = cms.int32( 1 ), # tk layout det id minus DetSetVec->detId
142  OffsetDetIdTP = cms.int32( -1 ), # tk layout det id minus TrackerTopology lower det id
143  OffsetLayerDisks = cms.int32( 10 ), # offset in layer ids between barrel layer and endcap disks
144  OffsetLayerId = cms.int32( 1 ), # offset between 0 and smallest layer id (barrel layer 1)
145  NumBarrelLayer = cms.int32( 6 ), #
146  SlotLimitPS = cms.int32( 6 ), # slot number changing from PS to 2S
147  SlotLimit10gbps = cms.int32( 3 ) # slot number changing from 10 gbps to 5gbps
148  ),
149 
150  # Parmeter specifying TFP
151  TFP = cms.PSet (
152  WidthPhi0 = cms.int32( 12 ), # number of bist used for phi0
153  WidthInv2R = cms.int32( 15 ), # number of bist used for inv2R
154  WidthCot = cms.int32( 16 ), # number of bist used for cot(theta)
155  WidthZ0 = cms.int32( 12 ), # number of bist used for z0
156  NumChannel = cms.int32( 2 ) # number of output links
157  ),
158 
159  # Parmeter specifying GeometricProcessor
160  GeometricProcessor = cms.PSet (
161  NumSectorsPhi = cms.int32 ( 2 ), # number of phi sectors used in hough transform
162  ChosenRofZ = cms.double( 50. ), # critical radius defining r-z sector shape in cm
163  RangeChiZ = cms.double( 160. ), # range of stub z residual w.r.t. sector center which needs to be covered
164  DepthMemory = cms.int32 ( 64 ), # fifo depth in stub router firmware
165  #BoundariesEta = cms.vdouble( -2.40, -2.08, -1.68, -1.26, -0.90, -0.62, -0.41, -0.20, 0.0, 0.20, 0.41, 0.62, 0.90, 1.26, 1.68, 2.08, 2.40 ) # defining r-z sector shape
166  BoundariesEta = cms.vdouble( -2.50, -2.23, -1.88, -1.36, -0.90, -0.62, -0.41, -0.20, 0.0, 0.20, 0.41, 0.62, 0.90, 1.36, 1.88, 2.23, 2.50 ) # defining r-z sector shape
167  ),
168 
169  # Parmeter specifying HoughTransform
170  HoughTransform = cms.PSet (
171  NumBinsInv2R = cms.int32( 16 ), # number of used inv2R bins
172  NumBinsPhiT = cms.int32( 32 ), # number of used phiT bins
173  MinLayers = cms.int32( 5 ), # required number of stub layers to form a candidate
174  DepthMemory = cms.int32( 32 ) # internal fifo depth
175  ),
176 
177  # Parmeter specifying MiniHoughTransform
178  MiniHoughTransform = cms.PSet (
179  NumBinsInv2R = cms.int32( 2 ), # number of finer inv2R bins inside HT bin
180  NumBinsPhiT = cms.int32( 2 ), # number of finer phiT bins inside HT bin
181  NumDLBs = cms.int32( 2 ), # number of dynamic load balancing steps
182  NumDLBNodes = cms.int32( 8 ), # number of units per dynamic load balancing step
183  NumDLBChannel = cms.int32( 2 ), # number of inputs per dynamic load balancing unit
184  MinLayers = cms.int32( 5 ) # required number of stub layers to form a candidate
185  ),
186 
187  # Parmeter specifying ZHoughTransform
188  ZHoughTransform = cms.PSet (
189  NumBinsZT = cms.int32( 2 ), #
190  NumBinsCot = cms.int32( 2 ), #
191  NumStages = cms.int32( 5 ), #
192  MinLayers = cms.int32( 4 ), # required number of stub layers to form a candidate
193  MaxTracks = cms.int32( 16 ), # max number of output tracks per node
194  MaxStubsPerLayer = cms.int32( 4 ) # cut on number of stub per layer for input candidates
195  ),
196 
197  # Parmeter specifying KalmanFilter Input Formatter
198 
199  KalmanFilterIn = cms.PSet (
200  ShiftRangePhi = cms.int32( 2 ), # power of 2 multiplier of stub phi residual range
201  ShiftRangeZ = cms.int32( 1 ) # power of 2 multiplier of stub z residual range
202  ),
203 
204  # Parmeter specifying KalmanFilter
205  KalmanFilter = cms.PSet (
206  NumWorker = cms.int32 ( 2 ), # number of kf worker
207  RangeFactor = cms.double( 2.0 ), # search window of each track parameter in initial uncertainties
208  MinLayers = cms.int32 ( 4 ), # required number of stub layers to form a track
209  MaxLayers = cms.int32 ( 7 ), # maximum number of layers added to a track
210  ShiftInitialC00 = cms.int32 ( 0 ), #
211  ShiftInitialC11 = cms.int32 ( -2 ), #
212  ShiftInitialC22 = cms.int32 ( 0 ), #
213  ShiftInitialC33 = cms.int32 ( 0 ) #
214  ),
215 
216  # Parmeter specifying KalmanFilter Output Formatter
217  KalmanFilterOut = cms.PSet (
218  Chi2rphiConv = cms.int32( 3 ), # Conversion factor between dphi^2/weight and chi2rphi
219  Chi2rzConv = cms.int32( 13 ), # Conversion factor between dz^2/weight and chi2rz
220  WeightBinFraction = cms.int32( 0 ), # Number of bits dropped from dphi and dz for v0 and v1 LUTs
221  DzTruncation = cms.int32( 262144 ), # Constant used in FW to prevent 32-bit int overflow
222  DphiTruncation = cms.int32( 16 ) # Constant used in FW to prevent 32-bit int overflow
223  ),
224 
225  # Parmeter specifying DuplicateRemoval
226  DuplicateRemoval = cms.PSet (
227  DepthMemory = cms.int32( 16 ) # internal memory depth
228  )
229 
230 )