Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-03 00:12:21

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 HybridKalmanFilterFormats_params = cms.PSet (
0004 
0005   EnableIntegerEmulation = cms.bool( True ), # enables emulation of integer calculations
0006 
0007   WidthR00 = cms.int32( 20 ), # number of bits used to represent R00
0008   WidthR11 = cms.int32( 20 ), # number of bits used to represent R11
0009   
0010   WidthC00 = cms.int32( 20 ), # number of bits used to represent C00
0011   WidthC01 = cms.int32( 20 ), # number of bits used to represent C01
0012   WidthC11 = cms.int32( 20 ), # number of bits used to represent C11
0013   WidthC22 = cms.int32( 20 ), # number of bits used to represent C22
0014   WidthC23 = cms.int32( 20 ), # number of bits used to represent C23
0015   WidthC33 = cms.int32( 20 ), # number of bits used to represent C33
0016 
0017 # configuration of internal KF variable bases which can be shifted by powers of 2 w.r.t. KF output track parameter
0018 # TrackerTFPProducer_params.PrintKFDebug printouts unused MSB for each variable, so that one could consider decreasing the basseshift by that amount
0019 # numerical instabillity (negative C00, C11, C22, C33) requires smaller baseshifts of related variables (rx, Sxx, Kxx, Rxx, invRxx)
0020 # if a variable overflows an Exception will be thrown and the corresponding baseshift needs to be increased.
0021 
0022   BaseShiftx0           = cms.int32(  -1 ), # precision difference in powers of 2 between x0 and inv2R at KF output
0023   BaseShiftx1           = cms.int32(  -8 ), # precision difference in powers of 2 between x1 and phiT at KF output
0024   BaseShiftx2           = cms.int32(  -1 ), # precision difference in powers of 2 between x2 and cotTheta at KF output
0025   BaseShiftx3           = cms.int32(  -1 ), # precision difference in powers of 2 between x3 and zT at KF output
0026 
0027   BaseShiftr0           = cms.int32(  -8 ), # precision difference in powers of 2 between phi residual and phiT
0028   BaseShiftr1           = cms.int32(   0 ), # precision difference in powers of 2 between z residual and zT
0029 
0030   BaseShiftS00          = cms.int32(  -4 ), # precision difference in powers of 2 between S00 and inv2R x phiT
0031   BaseShiftS01          = cms.int32( -12 ), # precision difference in powers of 2 between S01 and phiT x phiT
0032   BaseShiftS12          = cms.int32(   0 ), # precision difference in powers of 2 between S12 and cotTheta x zT
0033   BaseShiftS13          = cms.int32(  -1 ), # precision difference in powers of 2 between S13 and zT x zT
0034 
0035   BaseShiftR00          = cms.int32(  -5 ), # precision difference in powers of 2 between R00 and phiT x phiT
0036   BaseShiftR11          = cms.int32(   6 ), # precision difference in powers of 2 between R11 and zT x zT
0037 
0038   BaseShiftInvR00Approx = cms.int32( -30 ),
0039   BaseShiftInvR11Approx = cms.int32( -41 ),
0040   BaseShiftInvR00Cor    = cms.int32( -24 ),
0041   BaseShiftInvR11Cor    = cms.int32( -24 ),
0042   BaseShiftInvR00       = cms.int32( -30 ), # precision difference in powers of 2 between 1 / R00 and  1 / ( phiT x phiT )
0043   BaseShiftInvR11       = cms.int32( -41 ), # precision difference in powers of 2 between 1 / R11 and  1 / ( zT x zT )
0044 
0045   BaseShiftS00Shifted   = cms.int32(  -1 ),
0046   BaseShiftS01Shifted   = cms.int32(  -7 ),
0047   BaseShiftS12Shifted   = cms.int32(   4 ),
0048   BaseShiftS13Shifted   = cms.int32(   4 ),
0049 
0050   BaseShiftK00          = cms.int32(  -7 ), # precision difference in powers of 2 between K00 and inv2R / phiT
0051   BaseShiftK10          = cms.int32( -13 ), # precision difference in powers of 2 between K10 and 1
0052   BaseShiftK21          = cms.int32( -13 ), # precision difference in powers of 2 between K21 and cotTheta / zT
0053   BaseShiftK31          = cms.int32( -13 ), # precision difference in powers of 2 between K31 and 1
0054   
0055   BaseShiftC00         = cms.int32(   6 ), # precision difference in powers of 2 between C00 and inv2R * inv2R
0056   BaseShiftC01         = cms.int32(   1 ), # precision difference in powers of 2 between C01 and inv2R * phiT
0057   BaseShiftC11         = cms.int32(  -6 ), # precision difference in powers of 2 between C11 and phiT * phiT
0058   BaseShiftC22         = cms.int32(   5 ), # precision difference in powers of 2 between C22 and cotTheta * cotTheta
0059   BaseShiftC23         = cms.int32(   6 ), # precision difference in powers of 2 between C23 and cotTheta * zT
0060   BaseShiftC33         = cms.int32(   5 )  # precision difference in powers of 2 between C33 and zT * zT
0061 
0062 )