File indexing completed on 2024-12-01 23:40:29
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi as digiparam
0004 import RecoLocalCalo.HGCalRecProducers.HGCalUncalibRecHit_cfi as recoparam
0005 import RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi as recocalibparam
0006 from . import hgcalLayersCalibrationCoefficients_cfi as layercalibparam
0007
0008
0009 feCfg_si = digiparam.hgceeDigitizer.digiCfg.feCfg
0010 feCfg_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg
0011
0012
0013 triggerCellLsbBeforeCompression_si = float(feCfg_si.adcSaturation_fC.value())/(2**float(feCfg_si.adcNbits.value()))
0014 triggerCellLsbBeforeCompression_sc = float(feCfg_sc.adcSaturation_fC.value())/(2**float(feCfg_sc.adcNbits.value()))
0015
0016
0017 linearization_params_si = cms.PSet(
0018 linLSB = cms.double(triggerCellLsbBeforeCompression_si),
0019 adcsaturation = feCfg_si.adcSaturation_fC,
0020 tdcnBits = feCfg_si.tdcNbits,
0021 tdcOnset = feCfg_si.tdcOnset_fC,
0022 adcnBits = feCfg_si.adcNbits,
0023 tdcsaturation = feCfg_si.tdcSaturation_fC,
0024 linnBits = cms.uint32(17),
0025 oot_coefficients = cms.vdouble(0., 0.),
0026 )
0027
0028
0029 linearization_params_sc = cms.PSet(
0030 linLSB = cms.double(triggerCellLsbBeforeCompression_sc),
0031 adcsaturation = feCfg_sc.adcSaturation_fC,
0032 tdcnBits = feCfg_sc.tdcNbits,
0033 tdcOnset = feCfg_sc.tdcOnset_fC,
0034 adcnBits = feCfg_sc.adcNbits,
0035 tdcsaturation = feCfg_sc.tdcSaturation_fC,
0036 linnBits = cms.uint32(17),
0037 oot_coefficients = cms.vdouble(0., 0.),
0038 )
0039
0040 summation_params = cms.PSet(
0041 siliconCellLSB_fC = cms.double(triggerCellLsbBeforeCompression_si),
0042 scintillatorCellLSB_MIP = cms.double(triggerCellLsbBeforeCompression_sc),
0043 noiseSilicon = cms.PSet(),
0044 noiseScintillator = cms.PSet(),
0045
0046
0047 noiseThreshold = cms.double(3),
0048 )
0049
0050
0051 compression_params_ldm = cms.PSet(
0052 exponentBits = cms.uint32(4),
0053 mantissaBits = cms.uint32(3),
0054 truncationBits = cms.uint32(1),
0055 rounding = cms.bool(True),
0056 )
0057
0058 compression_params_hdm = cms.PSet(
0059 exponentBits = cms.uint32(4),
0060 mantissaBits = cms.uint32(3),
0061 truncationBits = cms.uint32(3),
0062 rounding = cms.bool(True),
0063 )
0064
0065
0066 fCperMIPee = recoparam.HGCalUncalibRecHit.HGCEEConfig.fCPerMIP
0067 fCperMIPhe = recoparam.HGCalUncalibRecHit.HGCHEFConfig.fCPerMIP
0068 fCperMIPnose = recoparam.HGCalUncalibRecHit.HGCHFNoseConfig.fCPerMIP
0069 layerWeightsNose = recocalibparam.dEdX.weightsNose
0070 thicknessCorrectionSi = recocalibparam.HGCalRecHit.thicknessCorrection
0071 thicknessCorrectionSc = recocalibparam.HGCalRecHit.sciThicknessCorrection
0072 thicknessCorrectionNose = recocalibparam.HGCalRecHit.thicknessNoseCorrection
0073
0074 NTHICKNESS = 3
0075 calibration_params_ee = cms.PSet(
0076 lsb = cms.double(triggerCellLsbBeforeCompression_si),
0077 fCperMIP = fCperMIPee,
0078 dEdXweights = layercalibparam.triggerWeights.weights,
0079 thicknessCorrection = cms.vdouble(thicknessCorrectionSi[0:NTHICKNESS]),
0080 chargeCollectionEfficiency = cms.PSet(),
0081 )
0082
0083 calibration_params_hesi = cms.PSet(
0084 lsb = cms.double(triggerCellLsbBeforeCompression_si),
0085 fCperMIP = fCperMIPhe,
0086 dEdXweights = layercalibparam.triggerWeights.weights,
0087 thicknessCorrection = cms.vdouble(thicknessCorrectionSi[NTHICKNESS:2*NTHICKNESS]),
0088 chargeCollectionEfficiency = cms.PSet(),
0089 )
0090
0091 calibration_params_hesc = cms.PSet(
0092 lsb = cms.double(triggerCellLsbBeforeCompression_sc),
0093 fCperMIP = cms.vdouble(1.),
0094 dEdXweights = layercalibparam.triggerWeights.weights,
0095 thicknessCorrection = cms.vdouble(thicknessCorrectionSc.value()),
0096 chargeCollectionEfficiency = cms.PSet(values=cms.vdouble(1.)),
0097 )
0098
0099 calibration_params_nose = cms.PSet(
0100 lsb = cms.double(triggerCellLsbBeforeCompression_si),
0101 fCperMIP = fCperMIPnose,
0102 dEdXweights = layerWeightsNose,
0103 thicknessCorrection = thicknessCorrectionNose,
0104 chargeCollectionEfficiency = cms.PSet(),
0105 )
0106
0107 vfe_proc = cms.PSet( ProcessorName = cms.string('HGCalVFEProcessorSums'),
0108 linearizationCfg_si = linearization_params_si,
0109 linearizationCfg_sc = linearization_params_sc,
0110 summationCfg = summation_params,
0111 compressionCfg_ldm = compression_params_ldm,
0112 compressionCfg_hdm = compression_params_hdm,
0113 calibrationCfg_ee = calibration_params_ee,
0114 calibrationCfg_hesi = calibration_params_hesi,
0115 calibrationCfg_hesc = calibration_params_hesc,
0116 calibrationCfg_nose = calibration_params_nose,
0117 )
0118
0119
0120 from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
0121 phase2_hgcal.toModify(summation_params,
0122 noiseSilicon = cms.PSet(refToPSet_ = cms.string("HGCAL_noise_fC")),
0123 noiseScintillator = cms.PSet(refToPSet_ = cms.string("HGCAL_noise_heback")),
0124 )
0125
0126 phase2_hgcal.toModify(calibration_params_ee,
0127 chargeCollectionEfficiency = cms.PSet(refToPSet_ = cms.string("HGCAL_chargeCollectionEfficiencies")),
0128 )
0129 phase2_hgcal.toModify(calibration_params_hesi,
0130 chargeCollectionEfficiency = cms.PSet(refToPSet_ = cms.string("HGCAL_chargeCollectionEfficiencies")),
0131 )
0132 phase2_hgcal.toModify(calibration_params_nose,
0133 chargeCollectionEfficiency = cms.PSet(refToPSet_ = cms.string("HGCAL_chargeCollectionEfficiencies")),
0134 )
0135
0136
0137
0138 l1tHGCalVFEProducer = cms.EDProducer(
0139 "HGCalVFEProducer",
0140 eeDigis = cms.InputTag('simHGCalUnsuppressedDigis:EE'),
0141 fhDigis = cms.InputTag('simHGCalUnsuppressedDigis:HEfront'),
0142 bhDigis = cms.InputTag('simHGCalUnsuppressedDigis:HEback'),
0143 ProcessorParameters = vfe_proc.clone()
0144 )
0145
0146 l1tHFnoseVFEProducer = cms.EDProducer(
0147 "HFNoseVFEProducer",
0148 noseDigis = cms.InputTag('simHFNoseUnsuppressedDigis:HFNose'),
0149 ProcessorParameters = vfe_proc.clone()
0150 )
0151
0152
0153