Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-10-14 01:44:20

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   ),
0070 
0071   # Parameter specifying TrackingParticle used for Efficiency measurements
0072   TrackingParticle = cms.PSet (
0073     MinPt         = cms.double(  2.  ), # pt cut in GeV
0074     MaxEta        = cms.double(  2.4 ), # eta cut
0075     MaxVertR      = cms.double(  1.  ), # cut on vertex pos r in cm
0076     MaxVertZ      = cms.double( 30.  ), # cut on vertex pos z in cm
0077     MaxD0         = cms.double(  5.  ), # cut on impact parameter in cm
0078     MinLayers     = cms.int32 (  4   ), # required number of associated layers to a TP to consider it reconstruct-able and to match it with TTTrack
0079     MinLayersPS   = cms.int32 (  0   ), # required number of associated ps layers to a TP to consider it reconstruct-able
0080     MaxBadStubs2S = cms.int32 (  1   ), # max number of unassociated 2S stubs allowed to still associate TTTrack with TP
0081     MaxBadStubsPS = cms.int32 (  0   )  # max number of unassociated PS stubs allowed to still associate TTTrack with TP
0082   ),
0083 
0084   # Fimrware specific Parameter
0085   Firmware = cms.PSet (
0086     WidthDSPa           = cms.int32(   27                ), # width of the 'A' port of an DSP slice
0087     WidthDSPb           = cms.int32(   18                ), # width of the 'B' port of an DSP slice
0088     WidthDSPc           = cms.int32(   48                ), # width of the 'C' port of an DSP slice
0089     WidthAddrBRAM36     = cms.int32(    9                ), # smallest address width of an BRAM36 configured as broadest simple dual port memory
0090     WidthAddrBRAM18     = cms.int32(   10                ), # smallest address width of an BRAM18 configured as broadest simple dual port memory
0091     NumFramesInfra      = cms.int32 (   6                ), # needed gap between events of emp-infrastructure firmware
0092     FreqLHC             = cms.double(  40.               ), # LHC bunch crossing rate in MHz
0093     FreqBE              = cms.double( 360.               ), # processing Frequency of DTC, KF & TFP in MHz, has to be integer multiple of FreqLHC
0094     TMP_FE              = cms.int32 (   8                ), # number of events collected in front-end
0095     TMP_TFP             = cms.int32 (  18                ), # time multiplexed period of track finding processor
0096     SpeedOfLight        = cms.double(   2.99792458       ), # in e8 m/s
0097     BField              = cms.double(   3.81120228767395 ), # in T
0098     BFieldError         = cms.double(   1.e-6            ), # accepted difference to EventSetup in T
0099     OuterRadius         = cms.double( 112.7              ), # outer radius of outer tracker in cm
0100     InnerRadius         = cms.double(  21.8              ), # inner radius of outer tracker in cm
0101     HalfLength          = cms.double( 270.               ), # half length of outer tracker in cm
0102     TiltApproxSlope     = cms.double(   0.884            ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
0103     TiltApproxIntercept = cms.double(   0.507            ), # In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
0104     TiltUncertaintyR    = cms.double(   0.12             ), # In tilted barrel, constant assumed stub radial uncertainty * sqrt(12) in cm
0105     MindPhi             = cms.double(   0.0001           ), # minimum representable stub phi uncertainty * sqrt(12) + additional terms in rad
0106     MaxdPhi             = cms.double(   0.02             ), # maximum representable stub phi uncertainty * sqrt(12) + additional terms in rad
0107     MindZ               = cms.double(   0.1              ), # minimum representable stub z uncertainty * sqrt(12) + additional terms in cm
0108     MaxdZ               = cms.double(  30.               ), # maximum representable stub z uncertainty * sqrt(12) + additional terms in cm
0109     Pitch2S             = cms.double(   0.009            ), # strip pitch of outer tracker sensors in cm
0110     PitchPS             = cms.double(   0.01             ), # pixel pitch of outer tracker sensors in cm
0111     Length2S            = cms.double(   5.025            ), # strip length of outer tracker sensors in cm
0112     LengthPS            = cms.double(   0.1467           ), # pixel length of outer tracker sensors in cm
0113     TiltedLayerLimitsZ  = cms.vdouble( 15.5, 24.9, 34.3, -1., -1., -1. ), # barrel layer limit |z| value to partition into tilted and untilted region
0114     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
0115   ),
0116 
0117   # Parmeter specifying front-end
0118   FrontEnd = cms.PSet (
0119     WidthBend      = cms.int32 (  6      ), # number of bits used for internal stub bend
0120     WidthCol       = cms.int32 (  5      ), # number of bits used for internal stub column
0121     WidthRow       = cms.int32 ( 11      ), # number of bits used for internal stub row
0122     BaseBend       = cms.double(   .25   ), # precision of internal stub bend in pitch units
0123     BaseCol        = cms.double(  1.     ), # precision of internal stub column in pitch units
0124     BaseRow        = cms.double(   .5    ), # precision of internal stub row in pitch units
0125     BaseWindowSize = cms.double(   .5    ), # precision of window sizes in pitch units
0126     BendCut        = cms.double(  1.3125 )  # used stub bend uncertainty in pitch units
0127   ),
0128 
0129   # Parmeter specifying DTC 
0130   DTC = cms.PSet (
0131     NumRegions            = cms.int32(  9 ), # number of phi slices the outer tracker readout is organized in
0132     NumOverlappingRegions = cms.int32(  2 ), # number of regions a reconstructable particles may cross
0133     NumATCASlots          = cms.int32( 12 ), # number of Slots in used ATCA crates
0134     NumDTCsPerRegion      = cms.int32( 24 ), # number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
0135     NumModulesPerDTC      = cms.int32( 72 ), # max number of sensor modules connected to one DTC board
0136     NumRoutingBlocks      = cms.int32(  2 ), # number of systiloic arrays in stub router firmware
0137     DepthMemory           = cms.int32( 64 ), # fifo depth in stub router firmware
0138     WidthRowLUT           = cms.int32(  4 ), # number of row bits used in look up table
0139     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
0140     OffsetDetIdDSV        = cms.int32(  1 ), # tk layout det id minus DetSetVec->detId
0141     OffsetDetIdTP         = cms.int32( -1 ), # tk layout det id minus TrackerTopology lower det id
0142     OffsetLayerDisks      = cms.int32( 10 ), # offset in layer ids between barrel layer and endcap disks
0143     OffsetLayerId         = cms.int32(  1 ), # offset between 0 and smallest layer id (barrel layer 1)
0144     NumBarrelLayer        = cms.int32(  6 ), #
0145     SlotLimitPS           = cms.int32(  6 ), # slot number changing from PS to 2S
0146     SlotLimit10gbps       = cms.int32(  3 )  # slot number changing from 10 gbps to 5gbps
0147   ),
0148 
0149   # Parmeter specifying TFP 
0150   TFP = cms.PSet (
0151     WidthPhi0  = cms.int32( 12 ), # number of bist used for phi0
0152     WidthInv2R = cms.int32( 15 ), # number of bist used for inv2R
0153     WidthCot   = cms.int32( 16 ), # number of bist used for cot(theta)
0154     WidthZ0    = cms.int32( 12 ), # number of bist used for z0
0155     NumChannel = cms.int32(  2 )  # number of output links
0156   ),
0157 
0158   # Parmeter specifying GeometricProcessor
0159   GeometricProcessor = cms.PSet (
0160     NumSectorsPhi = cms.int32 (   2  ), # number of phi sectors used in hough transform
0161     ChosenRofZ    = cms.double(  50. ), # critical radius defining r-z sector shape in cm
0162     RangeChiZ     = cms.double( 160. ), # range of stub z residual w.r.t. sector center which needs to be covered
0163     DepthMemory   = cms.int32 (  64  ), # fifo depth in stub router firmware
0164     #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
0165     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
0166   ),
0167 
0168   # Parmeter specifying HoughTransform
0169   HoughTransform = cms.PSet (
0170     NumBinsInv2R = cms.int32( 16 ), # number of used inv2R bins
0171     NumBinsPhiT  = cms.int32( 32 ), # number of used phiT bins
0172     MinLayers    = cms.int32(  5 ), # required number of stub layers to form a candidate
0173     DepthMemory  = cms.int32( 32 )  # internal fifo depth
0174   ),
0175 
0176   # Parmeter specifying MiniHoughTransform
0177   MiniHoughTransform = cms.PSet (
0178     NumBinsInv2R  = cms.int32( 2 ), # number of finer inv2R bins inside HT bin
0179     NumBinsPhiT   = cms.int32( 2 ), # number of finer phiT bins inside HT bin
0180     NumDLBs       = cms.int32( 2 ), # number of dynamic load balancing steps
0181     NumDLBNodes   = cms.int32( 8 ), # number of units per dynamic load balancing step
0182     NumDLBChannel = cms.int32( 2 ), # number of inputs per dynamic load balancing unit
0183     MinLayers     = cms.int32( 5 )  # required number of stub layers to form a candidate
0184   ),
0185 
0186   # Parmeter specifying ZHoughTransform
0187   ZHoughTransform = cms.PSet (
0188     NumBinsZT        = cms.int32(  2 ), #
0189     NumBinsCot       = cms.int32(  2 ), #
0190     NumStages        = cms.int32(  5 ), #
0191     MinLayers        = cms.int32(  4 ), # required number of stub layers to form a candidate
0192     MaxTracks        = cms.int32( 16 ), # max number of output tracks per node
0193     MaxStubsPerLayer = cms.int32(  4 )  # cut on number of stub per layer for input candidates
0194   ),
0195 
0196   # Parmeter specifying KalmanFilter Input Formatter
0197 
0198   KalmanFilterIn = cms.PSet (
0199     ShiftRangePhi = cms.int32( 2 ), # power of 2 multiplier of stub phi residual range
0200     ShiftRangeZ   = cms.int32( 1 )  # power of 2 multiplier of stub z residual range
0201   ),
0202 
0203   # Parmeter specifying KalmanFilter
0204   KalmanFilter = cms.PSet (
0205     NumWorker   = cms.int32 ( 2   ), # number of kf worker
0206     RangeFactor = cms.double( 2.0 ), # search window of each track parameter in initial uncertainties
0207     MinLayers   = cms.int32 ( 4   ), # required number of stub layers to form a track
0208     MaxLayers   = cms.int32 ( 7   )  # maximum number of  layers added to a track
0209   ),
0210 
0211   # Parmeter specifying KalmanFilter Output Formatter
0212   KalmanFilterOut = cms.PSet (
0213     chi2rphiBins = cms.vdouble( 0, 0.25, 0.5, 1, 2, 3, 5, 7, 10, 20, 40, 100, 200, 500, 1000, 3000,6000 ), # Final Chi2rphi digitization TODO extract from TTTrack Word 
0214     chi2rzBins   = cms.vdouble( 0, 0.25, 0.5, 1, 2, 3, 5, 7, 10, 20, 40, 100, 200, 500, 1000, 3000,6000 ), # Final Chi2rz digitization TODO extract from TTTrack Word 
0215 
0216     chi2rphiConv = cms.int32 ( 3 ), # Conversion factor between dphi^2/weight and chi2rphi
0217     chi2rzConv   = cms.int32 ( 13 ), # Conversion factor between dz^2/weight and chi2rz
0218 
0219     WeightBinFraction = cms.int32( 0 ), # Number of bits dropped from dphi and dz for v0 and v1 LUTs
0220 
0221     TTTrackBits  = cms.int32( 96 )  # Number of bits for the tttrack word TODO extract from TTTrack_word dataformat
0222   ),
0223 
0224   # Parmeter specifying DuplicateRemoval
0225   DuplicateRemoval = cms.PSet (
0226     DepthMemory  = cms.int32( 16 ) # internal memory depth
0227   )
0228 
0229 )