Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-12 23:42:05

0001 import FWCore.ParameterSet.Config as cms
0002 import string # use for setting flag masks based on boolean bits
0003 
0004 hfreco = cms.EDProducer("HcalHitReconstructor",
0005                         correctForPhaseContainment = cms.bool(False),
0006                         correctionPhaseNS = cms.double(13.0),
0007                         digiLabel = cms.InputTag("hcalDigis"),
0008                         Subdetector = cms.string('HF'),
0009                         correctForTimeslew = cms.bool(False),
0010                         dropZSmarkedPassed = cms.bool(True),
0011                 firstSample = cms.int32(2),
0012                         samplesToAdd = cms.int32(1),
0013                         tsFromDB = cms.bool(True),
0014                         recoParamsFromDB = cms.bool(True),
0015                         useLeakCorrection = cms.bool(False),
0016                         dataOOTCorrectionName = cms.string(""),
0017                         dataOOTCorrectionCategory = cms.string("Data"),
0018                         mcOOTCorrectionName = cms.string(""),
0019                         mcOOTCorrectionCategory = cms.string("MC"),
0020 
0021                         correctTiming = cms.bool(True),
0022                         # Set time slice for first digi to be stored in aux word
0023                         firstAuxTS = cms.int32(1),
0024 
0025                         # Tags for calculating status flags
0026                         setNoiseFlags = cms.bool(True),
0027                         digiTimeFromDB = cms.bool(True), # turn on to read parameters from DB
0028                         setSaturationFlags = cms.bool(True),
0029                         setTimingTrustFlags = cms.bool(True),
0030                         setNegativeFlags          = cms.bool(False),  # only in HBHE
0031 
0032                         digistat= cms.PSet(HFdigiflagFirstSample     = cms.int32(1),  # These may be different from samples used for reconstruction
0033                                            HFdigiflagSamplesToAdd    = cms.int32(3),  # Use 3 TS for 75-ns running
0034                                            HFdigiflagExpectedPeak    = cms.int32(2), # expected TS position of pulse peak
0035                                            HFdigiflagMinEthreshold  = cms.double(40), # minimum energy required to be flagged as noisy
0036                                            # Following parameters are used for determining
0037                                            # minimum threshold fC(peak)/sum_fC(HFsamplesToAdd) > [0] - exp([1]+[2]*Energy)
0038                                            HFdigiflagCoef=cms.vdouble([0.93,-0.38275,-0.012667])
0039                                            ),
0040 
0041                         # Window Parameters require that reconstructed time occurs min and max window time
0042                         # Time Parameters are expressed as coefficients in polynomial expansion in 1/energy:  [0]+[1]/E + ...
0043                         HFInWindowStat = cms.PSet(hflongMinWindowTime=cms.vdouble([-10]),
0044                                                   hflongMaxWindowTime=cms.vdouble([10]),
0045                                                   hflongEthresh=cms.double(40.),
0046                                                   hfshortMinWindowTime=cms.vdouble([-12]),
0047                                                   hfshortMaxWindowTime=cms.vdouble([10]),
0048                                                   hfshortEthresh=cms.double(40.),
0049                                                   ),
0050 
0051 
0052                         # Parameters for Using S9S1 Test
0053                         #     optimumSlopes are slopes for each of the |ieta| values 29, 30, .... ,41  (although |ieta|=29 is not used in current S9S1 formulation)
0054 
0055                         #     energy and ET params are thresholds for each |ieta|
0056                         S9S1stat = cms.PSet(
0057     # WARNING!  ONLY LONG PARAMETERS ARE USED IN DEFAULT RECO; SHORT S9S1 IS NOT USED!
0058     short_optimumSlope       = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
0059                                             0.041296,0.0513428,0.0622789,0.0741041,
0060                                             0.0868186,0.100422,0.135313,0.136289,
0061                                             0.0589927]),
0062 
0063     # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
0064     shortEnergyParams        = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
0065                                             37.3317, 38.4468, 39.7925, 41.3688,
0066                                             43.1757, 45.2132, 47.4813, 49.98,
0067                                             52.7093]),
0068     shortETParams            = cms.vdouble([0,0,0,0,
0069                                             0,0,0,0,
0070                                             0,0,0,0,0]),
0071 
0072     long_optimumSlope       = cms.vdouble([-99999,0.0164905,0.0238698,0.0321383,
0073                                            0.041296,0.0513428,0.0622789,0.0741041,
0074                                            0.0868186,0.100422,0.135313,0.136289,
0075                                            0.0589927]),
0076 
0077     # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
0078     longEnergyParams        = cms.vdouble([43.5, 45.7, 48.32, 51.36,
0079                                            54.82, 58.7, 63.0, 67.72,
0080                                            72.86, 78.42, 84.4, 90.8,
0081                                            97.62]),
0082     longETParams            = cms.vdouble([0,0,0,0,
0083                                            0,0,0,0,
0084                                            0,0,0,0,0]),
0085 
0086     HcalAcceptSeverityLevel          = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
0087     isS8S1                   = cms.bool(False),
0088     ),
0089 
0090 
0091                         # Parameters for Using S8S1 Test
0092                         # Sets the HFS8S1Ratio Bit (bit 3)
0093 
0094                         #     energy and ET params are coefficients for energy/ET thresholds, parameterized in ieta
0095                         S8S1stat = cms.PSet(
0096     short_optimumSlope       = cms.vdouble([0.30, # ieta=29 is a special case
0097                                             0.10, 0.10, 0.10, 0.10,
0098                                             0.10, 0.10, 0.10, 0.10,
0099                                             0.10, 0.10, 0.10, 0.10]),
0100 
0101     # Short energy cut is 40 for ieta=29, 100 otherwise
0102     shortEnergyParams        = cms.vdouble([40,
0103                                             100,100,100,100,
0104                                             100,100,100,100,
0105                                             100,100,100,100]),
0106     shortETParams            = cms.vdouble([0,0,0,0,
0107                                             0,0,0,0,
0108                                             0,0,0,0,0]),
0109 
0110     long_optimumSlope       = cms.vdouble([0.30, # ieta=29 is a special case
0111                                            0.10, 0.10, 0.10, 0.10,
0112                                            0.10, 0.10, 0.10, 0.10,
0113                                            0.10, 0.10, 0.10, 0.10]),
0114     # Long energy cut is 40 for ieta=29, 100 otherwise
0115     longEnergyParams        = cms.vdouble([40,
0116                                            100,100,100,100,
0117                                            100,100,100,100,
0118                                            100,100,100,100]),
0119     longETParams            = cms.vdouble([0,0,0,0,
0120                                            0,0,0,0,
0121                                            0,0,0,0,0]),
0122 
0123     HcalAcceptSeverityLevel             = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
0124     isS8S1                   = cms.bool(True),
0125     ),
0126 
0127 
0128                         # Parameters for Using Parameterized Energy Threshold (PET) test
0129                         #  short_R, long_R are coefficients of R threshold, parameterized in *ENERGY*:  R_thresh = [0]+[1]*energy+[2]*energy^2+...
0130                         #  As of March 2010, the R threshold is a simple fixed value:  R>0.98, with separate params for |ieta|=29
0131                         #  Energy and ET params are energy and ET cuts for each |ieta| 29 -> 41
0132 
0133                         PETstat = cms.PSet(
0134 
0135     short_R = cms.vdouble([0.8]),  # new default ratio cut:  R>0.8
0136     # Short energy cut is 129.9 - 6.61*|ieta|+0.1153*|ieta|^2
0137     shortEnergyParams        = cms.vdouble([35.1773, 35.37, 35.7933, 36.4472,
0138                                             37.3317, 38.4468, 39.7925, 41.3688,
0139                                             43.1757, 45.2132, 47.4813, 49.98,
0140                                             52.7093]),
0141     shortETParams            = cms.vdouble([0,0,0,0,
0142                                             0,0,0,0,
0143                                             0,0,0,0,0]),
0144 
0145     long_R  = cms.vdouble([0.98]),  # default ratio cut:  R>0.98
0146     # Long energy cut is 162.4-10.9*abs(ieta)+0.21*ieta*ieta
0147     longEnergyParams        = cms.vdouble([43.5, 45.7, 48.32, 51.36,
0148                                            54.82, 58.7, 63.0, 67.72,
0149                                            72.86, 78.42, 84.4, 90.8,
0150                                            97.62]),
0151     longETParams            = cms.vdouble([0,0,0,0,
0152                                            0,0,0,0,
0153                                            0,0,0,0,0]),
0154 
0155     short_R_29 = cms.vdouble([0.8]),
0156     long_R_29  = cms.vdouble([0.8]), # should move from 0.98 to 0.8?
0157     HcalAcceptSeverityLevel             = cms.int32(9), # allow hits with severity up to AND INCLUDING 9
0158     ),
0159 
0160 
0161                         # saturation and hfTimingTrust Parameters
0162                         saturationParameters=  cms.PSet(maxADCvalue=cms.int32(127)),
0163 
0164                         hfTimingTrustParameters = cms.PSet(hfTimingTrustLevel1=cms.int32(1), # 1ns timing accuracy
0165                                                            hfTimingTrustLevel2=cms.int32(4)  # 4ns timing accuracy
0166                                                            )
0167 
0168                         ) # cms.EDProducers
0169 
0170