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