Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:50

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