CMS 3D CMS Logo

hgcalVFEProducer_cfi.py
Go to the documentation of this file.
1 from __future__ import absolute_import
2 import FWCore.ParameterSet.Config as cms
3 
5 
9 from . import hgcalLayersCalibrationCoefficients_cfi as layercalibparam
10 
11 # Silicon Digitization parameters
12 adcSaturation_si = digiparam.hgceeDigitizer.digiCfg.feCfg.adcSaturation_fC
13 adcNbits_si = digiparam.hgceeDigitizer.digiCfg.feCfg.adcNbits
14 tdcSaturation_si = digiparam.hgceeDigitizer.digiCfg.feCfg.tdcSaturation_fC
15 tdcNbits_si = digiparam.hgceeDigitizer.digiCfg.feCfg.tdcNbits
16 tdcOnset_si = digiparam.hgceeDigitizer.digiCfg.feCfg.tdcOnset_fC
17 # Scintillator Digitization parameters
18 adcSaturation_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg.adcSaturation_fC
19 adcNbits_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg.adcNbits
20 tdcSaturation_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg.tdcSaturation_fC
21 tdcNbits_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg.tdcNbits
22 tdcOnset_sc = digiparam.hgchebackDigitizer.digiCfg.feCfg.tdcOnset_fC
23 
24 # Reco calibration parameters
25 fCPerMIPee = recoparam.HGCalUncalibRecHit.HGCEEConfig.fCPerMIP
26 fCPerMIPfh = recoparam.HGCalUncalibRecHit.HGCHEFConfig.fCPerMIP
27 layerWeights = layercalibparam.TrgLayer_dEdX_weights
28 thicknessCorrection = recocalibparam.HGCalRecHit.thicknessCorrection
29 
30 # Equalization in the frontend of the sensor responses to 200um sensors
31 frontend_thickness_corrections = [1./(c1*c2) for c1,c2 in zip(fCPerMIPee,thicknessCorrection)]
32 c200 = frontend_thickness_corrections[1]
33 frontend_thickness_corrections = [c/c200 for c in frontend_thickness_corrections]
34 fCPerMIP_200 = fCPerMIPee[1]
35 thicknessCorrection_200 = thicknessCorrection[1]
36 
37 # NOSE parameters
38 fCPerMIPnose = recoparam.HGCalUncalibRecHit.HGCHFNoseConfig.fCPerMIP
39 layerWeightsNose = recocalibparam.dEdX.weightsNose
40 thicknessCorrectionNose = recocalibparam.HGCalRecHit.thicknessNoseCorrection
41 
42 # Parameters used in several places
43 triggerCellLsbBeforeCompression = 100./1024.
44 triggerCellTruncationBits = 0
45 
46 vfe_proc = cms.PSet( ProcessorName = cms.string('HGCalVFEProcessorSums'),
47  # Silicon digi parameters
48  linLSB_si = cms.double(triggerCellLsbBeforeCompression),
49  adcsaturation_si = adcSaturation_si,
50  tdcnBits_si = tdcNbits_si,
51  tdcOnset_si = tdcOnset_si,
52  adcnBits_si = adcNbits_si,
53  tdcsaturation_si = tdcSaturation_si,
54  # Scintillator digi parameters
55  linLSB_sc = cms.double(float(adcSaturation_sc.value())/(2**float(adcNbits_sc.value()))),
56  adcsaturation_sc = adcSaturation_sc,
57  tdcnBits_sc = tdcNbits_sc,
58  tdcOnset_sc = tdcOnset_sc,
59  adcnBits_sc = adcNbits_sc,
60  tdcsaturation_sc = tdcSaturation_sc,
61  linnBits = cms.uint32(16),
62  oot_coefficients = cms.vdouble(0., 0.), # OOT PU subtraction coeffs for samples (bx-2, bx-1). (0,0) = no OOT PU subtraction
63  siliconCellLSB_fC = cms.double( triggerCellLsbBeforeCompression*(2**triggerCellTruncationBits) ),
64  scintillatorCellLSB_MIP = cms.double(float(adcSaturation_sc.value())/(2**float(adcNbits_sc.value()))),
65  noiseSilicon = cms.PSet(),
66  noiseScintillator = cms.PSet(),
67  # cell thresholds before TC sums
68  # Cut at 3sigma of the noise
69  noiseThreshold = cms.double(3), # in units of sigmas of the noise
70  # Floating point compression
71  exponentBits = cms.uint32(4),
72  mantissaBits = cms.uint32(4),
73  rounding = cms.bool(True),
74  # Trigger cell calibration
75  fCperMIP = cms.double(fCPerMIP_200),
76  fCperMIPnose = cms.vdouble(fCPerMIPnose),
77  dEdXweights = layerWeights,
78  dEdXweightsNose = layerWeightsNose,
79  ThicknessCorrections = cms.vdouble(frontend_thickness_corrections),
80  thickCorr = cms.double(thicknessCorrection_200),
81  thickCorrNose = cms.vdouble(thicknessCorrectionNose),
82  )
83 
84 # isolate these refs in case they aren't available in some other WF
85 from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
86 phase2_hgcal.toModify(vfe_proc,
87  noiseSilicon = cms.PSet(refToPSet_ = cms.string("HGCAL_noise_fC")),
88  noiseScintillator = cms.PSet(refToPSet_ = cms.string("HGCAL_noise_heback")),
89 )
90 
91 hgcalVFEProducer = cms.EDProducer(
92  "HGCalVFEProducer",
93  eeDigis = cms.InputTag('simHGCalUnsuppressedDigis:EE'),
94  fhDigis = cms.InputTag('simHGCalUnsuppressedDigis:HEfront'),
95  bhDigis = cms.InputTag('simHGCalUnsuppressedDigis:HEback'),
96  ProcessorParameters = vfe_proc.clone()
97  )
98 
99 hfnoseVFEProducer = cms.EDProducer(
100  "HFNoseVFEProducer",
101  noseDigis = cms.InputTag('simHFNoseUnsuppressedDigis:HFNose'),
102  ProcessorParameters = vfe_proc.clone()
103  )
104 
105 
106 
hgcalDigitizer_cfi
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
HGCalRecHit_cfi
ComparisonHelper::zip
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
Definition: L1TStage2CaloLayer1.h:38
hgcalTriggerGeometryESProducer_cfi
HGCalUncalibRecHit_cfi