CMS 3D CMS Logo

ProducerES_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 TrackTrigger_params = cms.PSet (
4 
5  # Parameter to check if configured Tracker Geometry is supported
6  SupportedGeometry = cms.PSet (
7  XMLLabel = cms.string ("geomXMLFiles" ), # label of ESProducer/ESSource
8  XMLPath = cms.string ("Geometry/TrackerCommonData/data/PhaseII/" ), # compared path
9  XMLFile = cms.string ("tracker.xml" ), # compared filen ame
10  XMLVersions = cms.vstring("TiltedTracker613", "TiltedTracker613_MB_2019_04", "OuterTracker616_2020_04", "OuterTracker800_2020_07", "Tracker_DD4hep_compatible_2021_02" ) # list of supported versions
11  ),
12 
13  # Parameter to check if Process History is consistent with process configuration
14  ProcessHistory = cms.PSet (
15  GeometryConfiguration = cms.string( "XMLIdealGeometryESSource@" ), # label of compared GeometryConfiguration
16  TTStubAlgorithm = cms.string( "TTStubAlgorithm_official_Phase2TrackerDigi_@" ) # label of compared TTStubAlgorithm
17  ),
18 
19  # Common track finding parameter
20  TrackFinding = cms.PSet (
21  BeamWindowZ = cms.double( 15. ), # half lumi region size in cm
22  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
23  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
24  UnMatchedStubs = cms.int32 ( 1 ), # allowed number of stubs a found track may have not in common with its matched TP
25  UnMatchedStubsPS = cms.int32 ( 0 ) # allowed number of PS stubs a found track may have not in common with its matched TP
26  ),
27 
28  # TMTT specific parameter
29  TMTT = cms.PSet (
30  MinPt = cms.double( 3. ), # cut on stub and TP pt, also defines region overlap shape in GeV
31  MaxEta = cms.double( 2.4 ), # cut on stub eta
32  ChosenRofPhi = cms.double( 67.24 ), # critical radius defining region overlap shape in cm
33  NumLayers = cms.int32 ( 7 ), # number of detector layers a reconstructbale particle may cross
34  WidthR = cms.int32 ( 12 ), # number of bits used for stub r - ChosenRofPhi
35  WidthPhi = cms.int32 ( 14 ), # number of bits used for stub phi w.r.t. phi sector centre
36  WidthZ = cms.int32 ( 14 ) # number of bits used for stub z
37  ),
38 
39  # Hybrid specific parameter
40  Hybrid = cms.PSet (
41  MinPt = cms.double( 2. ), # cut on stub and TP pt, also defines region overlap shape in GeV
42  MaxEta = cms.double( 2.5 ), # cut on stub eta
43  ChosenRofPhi = cms.double( 55. ), # critical radius defining region overlap shape in cm
44  NumLayers = cms.int32 ( 4 ), # max number of detector layer connected to one DTC
45  NumRingsPS = cms.vint32 ( 11, 11, 8, 8, 8 ), # number of outer PS rings for disk 1, 2, 3, 4, 5
46  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)
47  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)
48  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)
49  WidthsAlpha = cms.vint32 ( 0, 0, 0, 4 ), # number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
50  WidthsBend = cms.vint32 ( 3, 4, 3, 4 ), # number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
51  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)
52  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)
53  RangesAlpha = cms.vdouble( 0., 0., 0., 1024. ), # range in stub row which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
54  LayerRs = cms.vdouble( 24.9316, 37.1777, 52.2656, 68.7598, 86.0156, 108.3105 ), # mean radius of outer tracker barrel layer
55  DiskZs = cms.vdouble( 131.1914, 154.9805, 185.3320, 221.6016, 265.0195 ), # mean z of outer tracker endcap disks
56  Disk2SRsSet = cms.VPSet( # center radius of outer tracker endcap 2S diks strips
57  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
58  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
59  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
60  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
61  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
62  )
63  ),
64 
65  # Parameter specifying TrackingParticle used for Efficiency measurements
66  TrackingParticle = cms.PSet (
67  MaxEta = cms.double( 2.4 ), # eta cut
68  MaxVertR = cms.double( 1. ), # cut on vertex pos r in cm
69  MaxVertZ = cms.double( 30. ), # cut on vertex pos z in cm
70  MaxD0 = cms.double( 5. ), # cut on impact parameter in cm
71  MinLayers = cms.int32 ( 4 ), # required number of associated layers to a TP to consider it reconstruct-able
72  MinLayersPS = cms.int32 ( 0 ) # required number of associated ps layers to a TP to consider it reconstruct-able
73  ),
74 
75  # Fimrware specific Parameter
76  Firmware = cms.PSet (
77  NumFramesInfra = cms.int32 ( 6 ), # needed gap between events of emp-infrastructure firmware
78  FreqLHC = cms.double( 40. ), # LHC bunch crossing rate in MHz
79  FreqBE = cms.double( 360. ), # processing Frequency of DTC & TFP in MHz, has to be integer multiple of FreqLHC
80  TMP_FE = cms.int32 ( 8 ), # number of events collected in front-end
81  TMP_TFP = cms.int32 ( 18 ), # time multiplexed period of track finding processor
82  SpeedOfLight = cms.double( 2.99792458 ), # in e8 m/s
83  BField = cms.double( 3.81120228767395 ), # in T
84  BFieldError = cms.double( 1.e-6 ), # accepted difference to EventSetup in T
85  OuterRadius = cms.double( 112.7 ), # outer radius of outer tracker in cm
86  InnerRadius = cms.double( 21.8 ), # inner radius of outer tracker in cm
87  HalfLength = cms.double( 270. ), # half length of outer tracker in cm
88  MaxPitch = cms.double( .01 ) # max strip/pixel pitch of outer tracker sensors in cm
89  ),
90 
91  # Parmeter specifying front-end
92  FrontEnd = cms.PSet (
93  WidthBend = cms.int32 ( 6 ), # number of bits used for internal stub bend
94  WidthCol = cms.int32 ( 5 ), # number of bits used for internal stub column
95  WidthRow = cms.int32 ( 11 ), # number of bits used for internal stub row
96  BaseBend = cms.double( .25 ), # precision of internal stub bend in pitch units
97  BaseCol = cms.double( 1. ), # precision of internal stub column in pitch units
98  BaseRow = cms.double( .5 ), # precision of internal stub row in pitch units
99  BaseWindowSize = cms.double( .5 ), # precision of window sizes in pitch units
100  BendCut = cms.double( 1.3125 ) # used stub bend uncertainty in pitch units
101  ),
102 
103  # Parmeter specifying DTC
104  DTC = cms.PSet (
105  NumRegions = cms.int32 ( 9 ), # number of phi slices the outer tracker readout is organized in
106  NumOverlappingRegions = cms.int32 ( 2 ), # number of regions a reconstructable particles may cross
107  NumATCASlots = cms.int32 ( 12 ), # number of Slots in used ATCA crates
108  NumDTCsPerRegion = cms.int32 ( 24 ), # number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
109  NumModulesPerDTC = cms.int32 ( 72 ), # max number of sensor modules connected to one DTC board
110  NumRoutingBlocks = cms.int32 ( 2 ), # number of systiloic arrays in stub router firmware
111  DepthMemory = cms.int32 ( 64 ), # fifo depth in stub router firmware
112  WidthRowLUT = cms.int32 ( 4 ), # number of row bits used in look up table
113  WidthQoverPt = cms.int32 ( 9 ), # number of bits used for stub qOverPt. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
114  OffsetDetIdDSV = cms.int32 ( 1 ), # tk layout det id minus DetSetVec->detId
115  OffsetDetIdTP = cms.int32 ( -1 ), # tk layout det id minus TrackerTopology lower det id
116  OffsetLayerDisks = cms.int32 ( 10 ), # offset in layer ids between barrel layer and endcap disks
117  OffsetLayerId = cms.int32 ( 1 ) # offset between 0 and smallest layer id (barrel layer 1)
118  ),
119 
120  # Parmeter specifying GeometricProcessor
121  GeometricProcessor = cms.PSet (
122  NumSectorsPhi = cms.int32 ( 2 ), # number of phi sectors used in hough transform
123  ChosenRofZ = cms.double( 50. ), # critical radius defining r-z sector shape in cm
124  RangeChiZ = cms.double( 90. ), # range of stub z residual w.r.t. sector center which needs to be covered
125  DepthMemory = cms.int32 ( 64 ), # fifo depth in stub router firmware
126  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
127  ),
128 
129  # Parmeter specifying HoughTransform
130  HoughTransform = cms.PSet (
131  NumBinsQoverPt = cms.int32( 16 ), # number of used qOverPt bins
132  NumBinsPhiT = cms.int32( 32 ), # number of used phiT bins
133  MinLayers = cms.int32( 5 ), # required number of stub layers to form a candidate
134  DepthMemory = cms.int32( 32 ) # internal fifo depth
135  ),
136 
137  # Parmeter specifying MiniHoughTransform
138  MiniHoughTransform = cms.PSet (
139  NumBinsQoverPt = cms.int32( 2 ), # number of finer qOverPt bins inside HT bin
140  NumBinsPhiT = cms.int32( 2 ), # number of finer phiT bins inside HT bin
141  NumDLB = cms.int32( 2 ), # number of dynamic load balancing steps
142  MinLayers = cms.int32( 5 ) # required number of stub layers to form a candidate
143  ),
144 
145  # Parmeter specifying SeedFilter
146  SeedFilter = cms.PSet (
147  PowerBaseCot = cms.int32( -6 ), # used cot(Theta) bin width = 2 ** this
148  BaseDiffZ = cms.int32( 4 ), # used zT bin width = baseZ * 2 ** this
149  MinLayers = cms.int32( 4 ) # required number of stub layers to form a candidate
150  ),
151 
152  # Parmeter specifying KalmanFilter
153  KalmanFilter = cms.PSet (
154  WidthLutInvPhi = cms.int32( 10 ), # number of bits for internal reciprocal look up
155  WidthLutInvZ = cms.int32( 10 ), # number of bits for internal reciprocal look up
156  NumTracks = cms.int32( 16 ), # cut on number of input candidates
157  MinLayers = cms.int32( 4 ), # required number of stub layers to form a track
158  MaxLayers = cms.int32( 4 ), # maximum number of layers added to a track
159  MaxStubsPerLayer = cms.int32( 4 ), # cut on number of stub per layer for input candidates
160  MaxSkippedLayers = cms.int32( 2 ), # maximum allowed skipped layers from inside to outside to form a track
161  BaseShiftr0 = cms.int32( -3 ),
162  BaseShiftr02 = cms.int32( -5 ),
163  BaseShiftv0 = cms.int32( -2 ),
164  BaseShiftS00 = cms.int32( -1 ),
165  BaseShiftS01 = cms.int32( -7 ),
166  BaseShiftK00 = cms.int32( -9 ),
167  BaseShiftK10 = cms.int32( -15 ),
168  BaseShiftR00 = cms.int32( -2 ),
169  BaseShiftInvR00 = cms.int32( -19 ),
170  BaseShiftChi20 = cms.int32( -5 ),
171  BaseShiftC00 = cms.int32( 5 ),
172  BaseShiftC01 = cms.int32( -3 ),
173  BaseShiftC11 = cms.int32( -7 ),
174  BaseShiftr1 = cms.int32( 2 ),
175  BaseShiftr12 = cms.int32( 5 ),
176  BaseShiftv1 = cms.int32( 3 ),
177  BaseShiftS12 = cms.int32( -3 ),
178  BaseShiftS13 = cms.int32( -3 ),
179  BaseShiftK21 = cms.int32( -13 ),
180  BaseShiftK31 = cms.int32( -14 ),
181  BaseShiftR11 = cms.int32( 3 ),
182  BaseShiftInvR11 = cms.int32( -21 ),
183  BaseShiftChi21 = cms.int32( -5 ),
184  BaseShiftC22 = cms.int32( -3 ),
185  BaseShiftC23 = cms.int32( -5 ),
186  BaseShiftC33 = cms.int32( -3 ),
187  BaseShiftChi2 = cms.int32( -5 )
188  ),
189 
190  # Parmeter specifying DuplicateRemoval
191  DuplicateRemoval = cms.PSet (
192  DepthMemory = cms.int32( 16 ), # internal memory depth
193  WidthPhi0 = cms.int32( 12 ), # number of bist used for phi0
194  WidthQoverPt = cms.int32( 15 ), # number of bist used for qOverPt
195  WidthCot = cms.int32( 16 ), # number of bist used for cot(theta)
196  WidthZ0 = cms.int32( 12 ) # number of bist used for z0
197  )
198 
199 )