Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:10

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 TrackTrigger_params = cms.PSet (
0004 
0005   fromDD4hep = cms.bool(False),
0006 
0007   # Parameter to check if configured Tracker Geometry is supported
0008   # this refers to files included by Configuration/Geometry/python/GeometryExtended*_cff.py
0009   UnSupportedGeometry = cms.PSet (
0010     XMLLabel    = cms.string ("geomXMLFiles"                             ), # label of ESProducer/ESSource
0011     XMLPath     = cms.string ("Geometry/TrackerCommonData/data/PhaseII/" ), # compared path
0012     XMLFile     = cms.string ("tracker.xml"                              ), # compared filen ame
0013     XMLVersions = cms.vstring()  # list of unsupported versions
0014   ),
0015 
0016   # Parameter to check if Process History is consistent with process configuration
0017   ProcessHistory = cms.PSet (
0018     GeometryConfiguration = cms.string( "XMLIdealGeometryESSource@"                    ), # label of compared GeometryConfiguration
0019     TTStubAlgorithm       = cms.string( "TTStubAlgorithm_official_Phase2TrackerDigi_@" )  # label of compared TTStubAlgorithm
0020   ),
0021 
0022   # Common track finding parameter
0023   TrackFinding = cms.PSet (
0024     BeamWindowZ      = cms.double( 15. ), # half lumi region size in cm
0025     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
0026     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
0027     UnMatchedStubs   = cms.int32 (  1  ), # allowed number of stubs a found track may have not in common with its matched TP
0028     UnMatchedStubsPS = cms.int32 (  0  ), # allowed number of PS stubs a found track may have not in common with its matched TP
0029     Scattering       = cms.double( 0.131283 ) # additional radial uncertainty in cm used to calculate stub phi residual uncertainty to take multiple scattering into account
0030   ),
0031 
0032   # TMTT specific parameter
0033   TMTT = cms.PSet (
0034     MinPt            = cms.double(  3.   ), # cut on stub in GeV, also defines region overlap shape
0035     MaxEta           = cms.double(  2.4  ), # cut on stub eta
0036     ChosenRofPhi     = cms.double( 67.24 ), # critical radius defining region overlap shape in cm
0037     NumLayers        = cms.int32 (  7    ), # number of detector layers a reconstructbale particle may cross, reduced to 7, 8th layer almost never corssed
0038     WidthR           = cms.int32 ( 12    ), # number of bits used for stub r - ChosenRofPhi
0039     WidthPhi         = cms.int32 ( 15    ), # number of bits used for stub phi w.r.t. phi region centre
0040     WidthZ           = cms.int32 ( 14    )  # number of bits used for stub z
0041   ),
0042 
0043   # Hybrid specific parameter
0044   Hybrid = cms.PSet (
0045     MinPtStub    = cms.double(  2.0  ),                        # cut on stub pt in GeV, also defines region overlap shape
0046     MinPtCand    = cms.double(  1.34 ),                        # cut on candidate pt in GeV
0047     MaxEta       = cms.double(  2.5  ),                        # cut on stub eta
0048     ChosenRofPhi = cms.double( 55.   ),                        # critical radius defining region overlap shape in cm
0049     NumLayers    = cms.int32 (  4    ),                        # max number of detector layer connected to one DTC
0050     NumRingsPS   = cms.vint32 ( 11, 11, 8, 8, 8 ),             # number of outer PS rings for disk 1, 2, 3, 4, 5
0051     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)
0052     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)
0053     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)
0054     WidthsAlpha  = cms.vint32 (   0,     0,     0,      4   ), # number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
0055     WidthsBend   = cms.vint32 (   3,     4,     3,      4   ), # number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
0056     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)
0057     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)
0058     RangesAlpha  = cms.vdouble(   0.,    0.,    0.,  2048.  ), # range in stub row which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
0059     LayerRs      = cms.vdouble(  24.9316,  37.1777,  52.2656,  68.7598,  86.0156, 108.3105 ), # mean radius of outer tracker barrel layer
0060     DiskZs       = cms.vdouble( 131.1914, 154.9805, 185.3320, 221.6016, 265.0195           ), # mean z of outer tracker endcap disks
0061     Disk2SRsSet  = cms.VPSet(                                                                 # center radius of outer tracker endcap 2S diks strips
0062       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
0063       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
0064       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
0065       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
0066       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
0067     ),
0068     InnerRadius = cms.double( 19.6 ), # smallest stub radius after TrackBuilder in cm
0069     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
0070   ),
0071 
0072   # Parameter specifying TrackingParticle used for Efficiency measurements
0073   TrackingParticle = cms.PSet (
0074     MinPt         = cms.double(  2.  ), # pt cut in GeV
0075     MaxEta        = cms.double(  2.4 ), # eta cut
0076     MaxVertR      = cms.double(  1.  ), # cut on vertex pos r in cm
0077     MaxVertZ      = cms.double( 30.  ), # cut on vertex pos z in cm
0078     MaxD0         = cms.double(  5.  ), # cut on impact parameter in cm
0079     MinLayers     = cms.int32 (  4   ), # required number of associated layers to a TP to consider it reconstruct-able and to match it with TTTrack
0080     MinLayersPS   = cms.int32 (  0   ), # required number of associated ps layers to a TP to consider it reconstruct-able
0081     MaxBadStubs2S = cms.int32 (  1   ), # max number of unassociated 2S stubs allowed to still associate TTTrack with TP
0082     MaxBadStubsPS = cms.int32 (  0   )  # max number of unassociated PS stubs allowed to still associate TTTrack with TP
0083   ),
0084 
0085   # Fimrware specific Parameter
0086   Firmware = cms.PSet (
0087     WidthDSPa           = cms.int32(   27                ), # width of the 'A' port of an DSP slice
0088     WidthDSPb           = cms.int32(   18                ), # width of the 'B' port of an DSP slice
0089     WidthDSPc           = cms.int32(   48                ), # width of the 'C' port of an DSP slice
0090     WidthAddrBRAM36     = cms.int32(    9                ), # smallest address width of an BRAM36 configured as broadest simple dual port memory
0091     WidthAddrBRAM18     = cms.int32(   10                ), # smallest address width of an BRAM18 configured as broadest simple dual port memory
0092     NumFramesInfra      = cms.int32 (   6                ), # needed gap between events of emp-infrastructure firmware
0093     FreqLHC             = cms.double(  40.               ), # LHC bunch crossing rate in MHz
0094     FreqBE              = cms.double( 360.               ), # processing Frequency of DTC, KF & TFP in MHz, has to be integer multiple of FreqLHC
0095     TMP_FE              = cms.int32 (   8                ), # number of events collected in front-end
0096     TMP_TFP             = cms.int32 (  18                ), # time multiplexed period of track finding processor
0097     SpeedOfLight        = cms.double(   2.99792458       ), # in e8 m/s
0098     BField              = cms.double(   3.81120228767395 ), # in T
0099     BFieldError         = cms.double(   1.e-6            ), # accepted difference to EventSetup in T
0100     OuterRadius         = cms.double( 112.7              ), # outer radius of outer tracker in cm
0101     InnerRadius         = cms.double(  21.8              ), # inner radius of outer tracker in cm
0102     HalfLength          = cms.double( 270.               ), # half length of outer tracker in cm
0103     TiltApproxSlope     = cms.double(   0.884            ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
0104     TiltApproxIntercept = cms.double(   0.507            ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
0105     TiltUncertaintyR    = cms.double(   0.12             ), # In tilted barrel, constant assumed stub radial uncertainty * sqrt(12) in cm
0106     MindPhi             = cms.double(   0.0001           ), # minimum representable stub phi uncertainty * sqrt(12) + additional terms in rad
0107     MaxdPhi             = cms.double(   0.02             ), # maximum representable stub phi uncertainty * sqrt(12) + additional terms in rad
0108     MindZ               = cms.double(   0.1              ), # minimum representable stub z uncertainty * sqrt(12) + additional terms in cm
0109     MaxdZ               = cms.double(  30.               ), # maximum representable stub z uncertainty * sqrt(12) + additional terms in cm
0110     Pitch2S             = cms.double(   0.009            ), # strip pitch of outer tracker sensors in cm
0111     PitchPS             = cms.double(   0.01             ), # pixel pitch of outer tracker sensors in cm
0112     Length2S            = cms.double(   5.025            ), # strip length of outer tracker sensors in cm
0113     LengthPS            = cms.double(   0.1467           ), # pixel length of outer tracker sensors in cm
0114     TiltedLayerLimitsZ  = cms.vdouble( 15.5, 24.9, 34.3, -1., -1., -1. ), # barrel layer limit |z| value to partition into tilted and untilted region
0115     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
0116   ),
0117 
0118   # Parmeter specifying front-end
0119   FrontEnd = cms.PSet (
0120     WidthBend      = cms.int32 (  6      ), # number of bits used for internal stub bend
0121     WidthCol       = cms.int32 (  5      ), # number of bits used for internal stub column
0122     WidthRow       = cms.int32 ( 11      ), # number of bits used for internal stub row
0123     BaseBend       = cms.double(   .25   ), # precision of internal stub bend in pitch units
0124     BaseCol        = cms.double(  1.     ), # precision of internal stub column in pitch units
0125     BaseRow        = cms.double(   .5    ), # precision of internal stub row in pitch units
0126     BaseWindowSize = cms.double(   .5    ), # precision of window sizes in pitch units
0127     BendCut        = cms.double(  1.3125 )  # used stub bend uncertainty in pitch units
0128   ),
0129 
0130   # Parmeter specifying DTC 
0131   DTC = cms.PSet (
0132     NumRegions            = cms.int32(  9 ), # number of phi slices the outer tracker readout is organized in
0133     NumOverlappingRegions = cms.int32(  2 ), # number of regions a reconstructable particles may cross
0134     NumATCASlots          = cms.int32( 12 ), # number of Slots in used ATCA crates
0135     NumDTCsPerRegion      = cms.int32( 24 ), # number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
0136     NumModulesPerDTC      = cms.int32( 72 ), # max number of sensor modules connected to one DTC board
0137     NumRoutingBlocks      = cms.int32(  2 ), # number of systiloic arrays in stub router firmware
0138     DepthMemory           = cms.int32( 64 ), # fifo depth in stub router firmware
0139     WidthRowLUT           = cms.int32(  4 ), # number of row bits used in look up table
0140     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
0141     OffsetDetIdDSV        = cms.int32(  1 ), # tk layout det id minus DetSetVec->detId
0142     OffsetDetIdTP         = cms.int32( -1 ), # tk layout det id minus TrackerTopology lower det id
0143     OffsetLayerDisks      = cms.int32( 10 ), # offset in layer ids between barrel layer and endcap disks
0144     OffsetLayerId         = cms.int32(  1 ), # offset between 0 and smallest layer id (barrel layer 1)
0145     NumBarrelLayer        = cms.int32(  6 ), #
0146     SlotLimitPS           = cms.int32(  6 ), # slot number changing from PS to 2S
0147     SlotLimit10gbps       = cms.int32(  3 )  # slot number changing from 10 gbps to 5gbps
0148   ),
0149 
0150   # Parmeter specifying TFP 
0151   TFP = cms.PSet (
0152     WidthPhi0  = cms.int32( 12 ), # number of bist used for phi0
0153     WidthInv2R = cms.int32( 15 ), # number of bist used for inv2R
0154     WidthCot   = cms.int32( 16 ), # number of bist used for cot(theta)
0155     WidthZ0    = cms.int32( 12 ), # number of bist used for z0
0156     NumChannel = cms.int32(  2 )  # number of output links
0157   ),
0158 
0159   # Parmeter specifying GeometricProcessor
0160   GeometricProcessor = cms.PSet (
0161     NumSectorsPhi = cms.int32 (   2  ), # number of phi sectors used in hough transform
0162     ChosenRofZ    = cms.double(  50. ), # critical radius defining r-z sector shape in cm
0163     RangeChiZ     = cms.double( 160. ), # range of stub z residual w.r.t. sector center which needs to be covered
0164     DepthMemory   = cms.int32 (  64  ), # fifo depth in stub router firmware
0165     #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
0166     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
0167   ),
0168 
0169   # Parmeter specifying HoughTransform
0170   HoughTransform = cms.PSet (
0171     NumBinsInv2R = cms.int32( 16 ), # number of used inv2R bins
0172     NumBinsPhiT  = cms.int32( 32 ), # number of used phiT bins
0173     MinLayers    = cms.int32(  5 ), # required number of stub layers to form a candidate
0174     DepthMemory  = cms.int32( 32 )  # internal fifo depth
0175   ),
0176 
0177   # Parmeter specifying MiniHoughTransform
0178   MiniHoughTransform = cms.PSet (
0179     NumBinsInv2R  = cms.int32( 2 ), # number of finer inv2R bins inside HT bin
0180     NumBinsPhiT   = cms.int32( 2 ), # number of finer phiT bins inside HT bin
0181     NumDLBs       = cms.int32( 2 ), # number of dynamic load balancing steps
0182     NumDLBNodes   = cms.int32( 8 ), # number of units per dynamic load balancing step
0183     NumDLBChannel = cms.int32( 2 ), # number of inputs per dynamic load balancing unit
0184     MinLayers     = cms.int32( 5 )  # required number of stub layers to form a candidate
0185   ),
0186 
0187   # Parmeter specifying ZHoughTransform
0188   ZHoughTransform = cms.PSet (
0189     NumBinsZT        = cms.int32(  2 ), #
0190     NumBinsCot       = cms.int32(  2 ), #
0191     NumStages        = cms.int32(  5 ), #
0192     MinLayers        = cms.int32(  4 ), # required number of stub layers to form a candidate
0193     MaxTracks        = cms.int32( 16 ), # max number of output tracks per node
0194     MaxStubsPerLayer = cms.int32(  4 )  # cut on number of stub per layer for input candidates
0195   ),
0196 
0197   # Parmeter specifying KalmanFilter Input Formatter
0198 
0199   KalmanFilterIn = cms.PSet (
0200     ShiftRangePhi = cms.int32( 2 ), # power of 2 multiplier of stub phi residual range
0201     ShiftRangeZ   = cms.int32( 1 )  # power of 2 multiplier of stub z residual range
0202   ),
0203 
0204   # Parmeter specifying KalmanFilter
0205   KalmanFilter = cms.PSet (
0206     NumWorker       = cms.int32 (  2   ), # number of kf worker
0207     RangeFactor     = cms.double(  2.0 ), # search window of each track parameter in initial uncertainties
0208     MinLayers       = cms.int32 (  4   ), # required number of stub layers to form a track
0209     MaxLayers       = cms.int32 (  7   ), # maximum number of  layers added to a track
0210     ShiftInitialC00 = cms.int32 (  0   ), #
0211     ShiftInitialC11 = cms.int32 ( -2   ), #
0212     ShiftInitialC22 = cms.int32 (  0   ), #
0213     ShiftInitialC33 = cms.int32 (  0   )  #
0214   ),
0215 
0216   # Parmeter specifying KalmanFilter Output Formatter
0217   KalmanFilterOut = cms.PSet (
0218     Chi2rphiConv      = cms.int32( 3 ),      # Conversion factor between dphi^2/weight and chi2rphi
0219     Chi2rzConv        = cms.int32( 13 ),     # Conversion factor between dz^2/weight and chi2rz
0220     WeightBinFraction = cms.int32( 0 ),      # Number of bits dropped from dphi and dz for v0 and v1 LUTs
0221     DzTruncation      = cms.int32( 262144 ), # Constant used in FW to prevent 32-bit int overflow
0222     DphiTruncation    = cms.int32( 16 )      # Constant used in FW to prevent 32-bit int overflow
0223   ),
0224 
0225   # Parmeter specifying DuplicateRemoval
0226   DuplicateRemoval = cms.PSet (
0227     DepthMemory  = cms.int32( 16 ) # internal memory depth
0228   )
0229 
0230 )