Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:08

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 ## Time Slew Parameters
0004 from CalibCalorimetry.HcalPlugins.HcalTimeSlew_cff import *
0005 
0006 ## Recalibration Parameters
0007 from DataFormats.HcalCalibObjects.HFRecalibrationParameters_cff import *
0008 
0009 hcal_db_producer = cms.ESProducer("HcalDbProducer",
0010     dump = cms.untracked.vstring(''),
0011     file = cms.untracked.string('')
0012 )
0013 
0014 #------------------------- HARDCODED conditions
0015 
0016 es_hardcode = cms.ESSource("HcalHardcodeCalibrations",
0017     toGet = cms.untracked.vstring('GainWidths'),
0018     iLumi = cms.double(-1.),                      # for Upgrade: fb-1
0019     HBRecalibration = cms.bool(False),            # True for Upgrade
0020     HBreCalibCutoff = cms.double(20.),            # if above is True
0021     HBmeanenergies = cms.FileInPath("CalibCalorimetry/HcalPlugins/data/meanenergiesHB.txt"),
0022     HERecalibration = cms.bool(False),            # True for Upgrade
0023     HEreCalibCutoff = cms.double(20.),            # if above is True
0024     HEmeanenergies = cms.FileInPath("CalibCalorimetry/HcalPlugins/data/meanenergiesHE.txt"),
0025     HFRecalibration = cms.bool(False),            # True for Upgrade
0026     HFRecalParameterBlock = HFRecalParameterBlock,
0027     GainWidthsForTrigPrims = cms.bool(False),     # True Upgrade
0028     useHBUpgrade = cms.bool(False),
0029     useHEUpgrade = cms.bool(False),
0030     useHFUpgrade = cms.bool(False),
0031     useHOUpgrade = cms.bool(True),
0032     testHFQIE10  = cms.bool(False),
0033     testHEPlan1  = cms.bool(False),
0034     killHE = cms.bool(False),
0035     useLayer0Weight = cms.bool(False),
0036     useIeta18depth1 = cms.bool(True),
0037     hb = cms.PSet(
0038         pedestal      = cms.double(3.285),
0039         pedestalWidth = cms.double(0.809),
0040         gain          = cms.vdouble(0.19),
0041         gainWidth     = cms.vdouble(0.0),
0042         zsThreshold   = cms.int32(8),
0043         qieType       = cms.int32(0),
0044         qieOffset     = cms.vdouble(-0.49,1.8,7.2,37.9),
0045         qieSlope      = cms.vdouble(0.912,0.917,0.922,0.923),
0046         mcShape       = cms.int32(125),
0047         recoShape     = cms.int32(105),
0048         photoelectronsToAnalog = cms.double(0.3305),
0049         darkCurrent   = cms.vdouble(0.0),
0050         noiseCorrelation  = cms.vdouble(0.0),
0051         noiseThreshold = cms.double(0.0),
0052         seedThreshold  = cms.double(0.1),
0053         doRadiationDamage = cms.bool(False)
0054     ),
0055     he = cms.PSet(
0056         pedestal      = cms.double(3.163),
0057         pedestalWidth = cms.double(0.9698),
0058         gain          = cms.vdouble(0.23),
0059         gainWidth     = cms.vdouble(0),
0060         zsThreshold   = cms.int32(9),
0061         qieType       = cms.int32(0),
0062         qieOffset     = cms.vdouble(-0.38,2.0,7.6,39.6),
0063         qieSlope      = cms.vdouble(0.912,0.916,0.920,0.922),
0064         mcShape       = cms.int32(125),
0065         recoShape     = cms.int32(105),
0066         photoelectronsToAnalog = cms.double(0.3305),
0067         darkCurrent   = cms.vdouble(0.0),
0068         noiseCorrelation  = cms.vdouble(0.0),
0069         noiseThreshold = cms.double(0.0),
0070         seedThreshold  = cms.double(0.1),
0071         doRadiationDamage = cms.bool(False)
0072     ),
0073     hf = cms.PSet(
0074         pedestal      = cms.double(9.354),
0075         pedestalWidth = cms.double(2.516),
0076         gain          = cms.vdouble(0.14,0.135),
0077         gainWidth     = cms.vdouble(0.0,0.0),
0078         zsThreshold   = cms.int32(-9999),
0079         qieType       = cms.int32(0),
0080         qieOffset     = cms.vdouble(-0.87,1.4,7.8,-29.6),
0081         qieSlope      = cms.vdouble(0.359,0.358,0.360,0.367),
0082         mcShape       = cms.int32(301),
0083         recoShape     = cms.int32(301),
0084         photoelectronsToAnalog = cms.double(0.0),
0085         darkCurrent   = cms.vdouble(0.0),
0086         noiseCorrelation  = cms.vdouble(0.0),
0087         noiseThreshold   = cms.double(0.0),
0088         seedThreshold    = cms.double(0.1),
0089         doRadiationDamage = cms.bool(False)
0090     ),
0091     ho = cms.PSet(
0092         pedestal      = cms.double(12.06),
0093         pedestalWidth = cms.double(0.6285),
0094         gain          = cms.vdouble(0.0060,0.0087),
0095         gainWidth     = cms.vdouble(0.0,0.0),
0096         zsThreshold   = cms.int32(24),
0097         qieType       = cms.int32(0),
0098         qieOffset     = cms.vdouble(-0.44,1.4,7.1,38.5),
0099         qieSlope      = cms.vdouble(0.907,0.915,0.920,0.921),
0100         mcShape       = cms.int32(201),
0101         recoShape     = cms.int32(201),
0102         photoelectronsToAnalog = cms.double(4.0),
0103         darkCurrent   = cms.vdouble(0.0),
0104         noiseCorrelation  = cms.vdouble(0.0),
0105         noiseThreshold = cms.double(0.0),
0106         seedThreshold  = cms.double(0.1),
0107         doRadiationDamage = cms.bool(False)
0108     ),
0109     hbUpgrade = cms.PSet(
0110         pedestal      = cms.double(17.3),
0111         pedestalWidth = cms.double(1.5),
0112         gain          = cms.vdouble(0.0006252), # average from 2017 HEP17: ~40 is pe/GeV and 40.0 is fC/pe.
0113         gainWidth     = cms.vdouble(0),
0114         zsThreshold   = cms.int32(16),
0115         qieType       = cms.int32(2),
0116         qieOffset     = cms.vdouble(0.,0.,0.,0.),
0117         qieSlope      = cms.vdouble(0.05376,0.05376,0.05376,0.05376), #1/(3.1*6) where 6 is shunt factor
0118         mcShape       = cms.int32(206),
0119         recoShape     = cms.int32(208),
0120         photoelectronsToAnalog = cms.double(40.0),
0121         darkCurrent   = cms.vdouble(0.01,0.015),
0122         noiseCorrelation  = cms.vdouble(0.26,0.254),
0123         noiseThreshold = cms.double(0.0),
0124         seedThreshold  = cms.double(0.1),
0125         doRadiationDamage = cms.bool(True),
0126         radiationDamage = cms.PSet(
0127             temperatureBase = cms.double(20),
0128             temperatureNew = cms.double(-5),
0129             intlumiOffset = cms.double(150),
0130             depVsTemp = cms.double(0.0631),
0131             intlumiToNeutrons = cms.double(3.67e8),
0132             # slopes taken from https://twiki.cern.ch/twiki/pub/CMSPublic/HcalDPGResultsCMSDPS2017042/dark_current_vs_lumi.png
0133             # crosstalk divided out
0134             # heUpgrade intlumiToNeutrons factor (below) used to convert from /fb-1 to /neutrons 
0135             depVsNeutrons = cms.vdouble(5.543e-10,8.012e-10),
0136         ),
0137     ),
0138     heUpgrade = cms.PSet(
0139         pedestal      = cms.double(17.3),
0140         pedestalWidth = cms.double(1.5),
0141         gain          = cms.vdouble(0.0006252), # average from 2017 HEP17: ~40 is pe/GeV and 40.0 is fC/pe.
0142         gainWidth     = cms.vdouble(0),
0143         zsThreshold   = cms.int32(16),
0144         qieType       = cms.int32(2),
0145         qieOffset     = cms.vdouble(0.,0.,0.,0.),
0146         qieSlope      = cms.vdouble(0.05376,0.05376,0.05376,0.05376), #1/(3.1*6) where 6 is shunt factor
0147         mcShape       = cms.int32(206),
0148         recoShape     = cms.int32(208),
0149         photoelectronsToAnalog = cms.double(40.0),
0150         darkCurrent   = cms.vdouble(0.01,0.015),
0151         noiseCorrelation  = cms.vdouble(0.26,0.254),
0152         noiseThreshold = cms.double(0.0),
0153         seedThreshold  = cms.double(0.1),
0154         doRadiationDamage = cms.bool(True),
0155         radiationDamage = cms.PSet(
0156             temperatureBase = cms.double(20),
0157             temperatureNew = cms.double(5),
0158             intlumiOffset = cms.double(75),
0159             depVsTemp = cms.double(0.0631),
0160             intlumiToNeutrons = cms.double(2.92e7),
0161             # slopes taken from https://twiki.cern.ch/twiki/pub/CMSPublic/HcalDPGResultsCMSDPS2017042/dark_current_vs_lumi.png
0162             # crosstalk divided out
0163             # above factor used to convert from /fb-1 to /neutrons 
0164             depVsNeutrons = cms.vdouble(5.543e-10,8.012e-10),
0165         ),
0166     ),
0167     hfUpgrade = cms.PSet(
0168         pedestal      = cms.double(13.33),
0169         pedestalWidth = cms.double(3.33),
0170         gain          = cms.vdouble(0.14,0.135),
0171         gainWidth     = cms.vdouble(0.0,0.0),
0172         zsThreshold   = cms.int32(-9999),
0173         qieType       = cms.int32(1),
0174         qieOffset     = cms.vdouble(0.0697,-0.7405,12.38,-671.9),
0175         qieSlope      = cms.vdouble(0.297,0.298,0.298,0.313),
0176         mcShape       = cms.int32(301),
0177         recoShape     = cms.int32(301),
0178         photoelectronsToAnalog = cms.double(0.0),
0179         darkCurrent   = cms.vdouble(0.0),
0180         noiseCorrelation  = cms.vdouble(0.0),
0181         noiseThreshold = cms.double(0.0),
0182         seedThreshold  = cms.double(0.1),
0183         doRadiationDamage = cms.bool(False)
0184     ),
0185     # types (in order): HcalHOZecotek, HcalHOHamamatsu, HcalHEHamamatsu1, HcalHEHamamatsu2, HcalHBHamamatsu1, HcalHBHamamatsu2, HcalHPD
0186     SiPMCharacteristics = cms.VPSet(
0187         cms.PSet( pixels = cms.int32(36000), crosstalk = cms.double(0.0), nonlin1 = cms.double(1.0), nonlin2 = cms.double(0.0), nonlin3 = cms.double(0.0) ),
0188         cms.PSet( pixels = cms.int32(2500), crosstalk = cms.double(0.0), nonlin1 = cms.double(1.0), nonlin2 = cms.double(0.0), nonlin3 = cms.double(0.0) ),
0189         cms.PSet( pixels = cms.int32(27370), crosstalk = cms.double(0.17), nonlin1 = cms.double(1.00985), nonlin2 = cms.double(7.84089E-6), nonlin3 = cms.double(2.86282E-10) ),
0190         cms.PSet( pixels = cms.int32(38018), crosstalk = cms.double(0.196), nonlin1 = cms.double(1.00546), nonlin2 = cms.double(6.40239E-6), nonlin3 = cms.double(1.27011E-10) ),
0191         cms.PSet( pixels = cms.int32(27370), crosstalk = cms.double(0.17), nonlin1 = cms.double(1.00985), nonlin2 = cms.double(7.84089E-6), nonlin3 = cms.double(2.86282E-10) ),
0192         cms.PSet( pixels = cms.int32(38018), crosstalk = cms.double(0.196), nonlin1 = cms.double(1.00546), nonlin2 = cms.double(6.40239E-6), nonlin3 = cms.double(1.27011E-10) ),
0193         cms.PSet( pixels = cms.int32(0), crosstalk = cms.double(0.0), nonlin1 = cms.double(1.0), nonlin2 = cms.double(0.0), nonlin3 = cms.double(0.0) ),
0194     ),
0195 )
0196 
0197 es_prefer_hcalHardcode = cms.ESPrefer("HcalHardcodeCalibrations", "es_hardcode")
0198 
0199 _toGet = [
0200     'GainWidths',
0201     'MCParams',
0202     'RecoParams',
0203     'RespCorrs',
0204     'QIEData',
0205     'QIETypes',
0206     'Gains',
0207     'Pedestals',
0208     'PedestalWidths',
0209     'EffectivePedestals',
0210     'EffectivePedestalWidths',
0211     'ChannelQuality',
0212     'ZSThresholds',
0213     'TimeCorrs',
0214     'LUTCorrs',
0215     'LutMetadata',
0216     'L1TriggerObjects',
0217     'PFCorrs',
0218     'PFCuts',
0219     'ElectronicsMap',
0220     'FrontEndMap',
0221     'CovarianceMatrices',
0222     'SiPMParameters',
0223     'SiPMCharacteristics',
0224     'TPChannelParameters',
0225     'TPParameters',
0226     'FlagHFDigiTimeParams'
0227 ]
0228 
0229 _toGet_noEmap = _toGet[:]
0230 _toGet_noEmap.remove('ElectronicsMap')
0231 
0232 
0233 from Configuration.Eras.Modifier_hcalHardcodeConditions_cff import hcalHardcodeConditions
0234 hcalHardcodeConditions.toModify( es_hardcode,
0235     toGet = cms.untracked.vstring(_toGet),
0236     GainWidthsForTrigPrims = cms.bool(True) 
0237 )
0238 
0239 from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
0240 from Configuration.Eras.Modifier_run2_HF_2017_cff import run2_HF_2017
0241 from Configuration.Eras.Modifier_run2_HE_2017_cff import run2_HE_2017
0242 from Configuration.Eras.Modifier_run2_HEPlan1_2017_cff import run2_HEPlan1_2017
0243 from Configuration.Eras.Modifier_run2_HCAL_2018_cff import run2_HCAL_2018
0244 from Configuration.Eras.Modifier_run3_HB_cff import run3_HB
0245 from Configuration.Eras.Modifier_phase2_hcal_cff import phase2_hcal
0246 from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
0247 
0248 run2_HCAL_2017.toModify( es_hardcode, useLayer0Weight = cms.bool(True), useIeta18depth1 = cms.bool(False) )
0249 run2_HF_2017.toModify( es_hardcode, useHFUpgrade = cms.bool(True) )
0250 run2_HE_2017.toModify( es_hardcode, useHEUpgrade = cms.bool(True), HEreCalibCutoff = cms.double(100.0) )
0251 run2_HEPlan1_2017.toModify( es_hardcode, testHEPlan1 = cms.bool(True), useHEUpgrade = cms.bool(False), HEreCalibCutoff = cms.double(20.0) )
0252 
0253 run2_HCAL_2018.toModify( es_hardcode, useLayer0Weight = cms.bool(True), useIeta18depth1 = cms.bool(False) )
0254 run3_HB.toModify( es_hardcode, useHBUpgrade = cms.bool(True), HBreCalibCutoff = cms.double(100.0) )
0255 
0256 phase2_hcal.toModify( es_hardcode, toGet = cms.untracked.vstring(_toGet_noEmap)) 
0257 phase2_hgcal.toModify( es_hardcode, killHE = cms.bool(True) )