1 import FWCore.ParameterSet.Config
as cms
5 fC_per_ele = 1.6020506e-4
6 nonAgedCCEs = [1.0, 1.0, 1.0]
7 nonAgedNoises = [2100.0,2100.0,1600.0]
8 nonAgedNoises_v9 = [2000.0,2400.0,2000.0]
9 thresholdTracksMIP =
False 11 HGCAL_noise_fC = cms.PSet(
12 values = cms.vdouble( [x*fC_per_ele
for x
in nonAgedNoises] ),
15 HGCAL_noise_MIP = cms.PSet(
16 value = cms.double(1.0/7.0)
19 HGCAL_chargeCollectionEfficiencies = cms.PSet(
20 values = cms.vdouble( nonAgedCCEs )
23 HGCAL_noises = cms.PSet(
24 values = cms.vdouble([x
for x
in nonAgedNoises])
28 hgceeDigitizer = cms.PSet(
29 accumulatorType = cms.string(
"HGCDigiProducer"),
30 hitCollection = cms.string(
"HGCHitsEE"),
31 digiCollection = cms.string(
"HGCDigisEE"),
32 maxSimHitsAccTime = cms.uint32(100),
33 bxTime = cms.double(25),
34 eVPerEleHolePair = cms.double(eV_per_eh_pair),
35 tofDelay = cms.double(5),
36 geometryType = cms.uint32(0),
37 digitizationType = cms.uint32(0),
38 makeDigiSimLinks = cms.bool(
False),
39 premixStage1 = cms.bool(
False),
40 premixStage1MinCharge = cms.double(0),
41 premixStage1MaxCharge = cms.double(1e6),
42 useAllChannels = cms.bool(
True),
43 verbosity = cms.untracked.uint32(0),
45 keV2fC = cms.double(0.044259),
47 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
48 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
49 doTimeSamples = cms.bool(
False),
52 fwVersion = cms.uint32(2),
55 adcPulse = cms.vdouble(0.00, 0.017, 0.817, 0.163, 0.003, 0.000),
56 pulseAvgT = cms.vdouble(0.00, 23.42298,13.16733,6.41062,5.03946,4.5320),
58 adcNbits = cms.uint32(10),
60 adcSaturation_fC = cms.double(100),
62 tdcResolutionInPs = cms.double( 0.001 ),
64 jitterNoise_ns = cms.vdouble(25., 25., 25.),
66 jitterConstant_ns = cms.vdouble(0.0004, 0.0004, 0.0004),
68 tdcNbits = cms.uint32(12),
70 tdcSaturation_fC = cms.double(10000),
73 adcThreshold_fC = cms.double(0.672),
74 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
76 tdcOnset_fC = cms.double(60),
78 tdcForToAOnset_fC = cms.vdouble(12., 12., 12.),
80 toaLSB_ns = cms.double(0.0244),
82 toaMode = cms.uint32(1),
84 tdcChargeDrainParameterisation = cms.vdouble(
85 -919.13, 365.36, -14.10, 0.2,
86 -21.85, 49.39, 22.21, 0.8,
94 hgchefrontDigitizer = cms.PSet(
95 accumulatorType = cms.string(
"HGCDigiProducer"),
96 hitCollection = cms.string(
"HGCHitsHEfront"),
97 digiCollection = cms.string(
"HGCDigisHEfront"),
98 maxSimHitsAccTime = cms.uint32(100),
99 bxTime = cms.double(25),
100 tofDelay = cms.double(5),
101 geometryType = cms.uint32(0),
102 digitizationType = cms.uint32(0),
103 makeDigiSimLinks = cms.bool(
False),
104 premixStage1 = cms.bool(
False),
105 premixStage1MinCharge = cms.double(0),
106 premixStage1MaxCharge = cms.double(1e6),
107 useAllChannels = cms.bool(
True),
108 verbosity = cms.untracked.uint32(0),
110 keV2fC = cms.double(0.044259),
111 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
112 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
113 doTimeSamples = cms.bool(
False),
116 fwVersion = cms.uint32(2),
118 adcPulse = cms.vdouble(0.00, 0.017, 0.817, 0.163, 0.003, 0.000),
119 pulseAvgT = cms.vdouble(0.00, 23.42298,13.16733,6.41062,5.03946,4.5320),
121 adcNbits = cms.uint32(10),
123 adcSaturation_fC = cms.double(100),
125 tdcResolutionInPs = cms.double( 0.001 ),
127 jitterNoise_ns = cms.vdouble(25., 25., 25.),
129 jitterConstant_ns = cms.vdouble(0.0004, 0.0004, 0.0004),
131 tdcNbits = cms.uint32(12),
133 tdcSaturation_fC = cms.double(10000),
136 adcThreshold_fC = cms.double(0.672),
137 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
139 tdcOnset_fC = cms.double(60),
141 tdcForToAOnset_fC = cms.vdouble(12., 12., 12.),
143 toaLSB_ns = cms.double(0.0244),
145 toaMode = cms.uint32(1),
147 tdcChargeDrainParameterisation = cms.vdouble(
148 -919.13, 365.36, -14.10, 0.2,
149 -21.85, 49.39, 22.21, 0.8,
158 hgchebackDigitizer = cms.PSet(
159 accumulatorType = cms.string(
"HGCDigiProducer"),
160 hitCollection = cms.string(
"HcalHits"),
161 digiCollection = cms.string(
"HGCDigisHEback"),
162 maxSimHitsAccTime = cms.uint32(100),
163 bxTime = cms.double(25),
164 tofDelay = cms.double(1),
165 geometryType = cms.uint32(0),
166 digitizationType = cms.uint32(1),
167 makeDigiSimLinks = cms.bool(
False),
168 premixStage1 = cms.bool(
False),
169 premixStage1MinCharge = cms.double(0),
170 premixStage1MaxCharge = cms.double(1e6),
171 useAllChannels = cms.bool(
True),
172 verbosity = cms.untracked.uint32(0),
174 keV2MIP = cms.double(1./616.0),
175 noise_MIP = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_MIP")),
176 doTimeSamples = cms.bool(
False),
177 nPEperMIP = cms.double(11.0),
178 nTotalPE = cms.double(1156),
179 xTalk = cms.double(0.25),
180 sdPixels = cms.double(1e-6),
183 fwVersion = cms.uint32(0),
185 adcNbits = cms.uint32(12),
187 adcSaturation_fC = cms.double(1024.0),
189 adcThreshold_fC = cms.double(0.50),
190 thresholdFollowsMIP = cms.bool(
False)
196 hfnoseDigitizer = cms.PSet(
197 accumulatorType = cms.string(
"HGCDigiProducer"),
198 hitCollection = cms.string(
"HFNoseHits"),
199 digiCollection = cms.string(
"HFNoseDigis"),
200 maxSimHitsAccTime = cms.uint32(100),
201 bxTime = cms.double(25),
202 eVPerEleHolePair = cms.double(eV_per_eh_pair),
203 tofDelay = cms.double(5),
204 geometryType = cms.uint32(0),
205 digitizationType = cms.uint32(0),
206 makeDigiSimLinks = cms.bool(
False),
207 premixStage1 = cms.bool(
False),
208 premixStage1MinCharge = cms.double(0),
209 premixStage1MaxCharge = cms.double(1e6),
210 useAllChannels = cms.bool(
True),
211 verbosity = cms.untracked.uint32(0),
213 keV2fC = cms.double(0.044259),
215 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
216 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
217 doTimeSamples = cms.bool(
False),
220 fwVersion = cms.uint32(2),
223 adcPulse = cms.vdouble(0.00, 0.017, 0.817, 0.163, 0.003, 0.000),
224 pulseAvgT = cms.vdouble(0.00, 23.42298,13.16733,6.41062,5.03946,4.5320),
226 adcNbits = cms.uint32(10),
228 adcSaturation_fC = cms.double(100),
230 tdcResolutionInPs = cms.double( 0.001 ),
232 jitterNoise_ns = cms.vdouble(25., 25., 25.),
234 jitterConstant_ns = cms.vdouble(0.0004, 0.0004, 0.0004),
236 tdcNbits = cms.uint32(12),
238 tdcSaturation_fC = cms.double(10000),
241 adcThreshold_fC = cms.double(0.672),
242 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
244 tdcOnset_fC = cms.double(60),
246 tdcForToAOnset_fC = cms.vdouble(12., 12., 12.),
248 toaLSB_ns = cms.double(0.0244),
250 toaMode = cms.uint32(1),
252 tdcChargeDrainParameterisation = cms.vdouble(
253 -919.13, 365.36, -14.10, 0.2,
254 -21.85, 49.39, 22.21, 0.8,
262 from Configuration.ProcessModifiers.premix_stage1_cff
import premix_stage1
263 for _m
in [hgceeDigitizer, hgchefrontDigitizer, hgchebackDigitizer, hfnoseDigitizer]:
264 premix_stage1.toModify(_m, premixStage1 =
True)
267 endOfLifeCCEs = [0.5, 0.5, 0.7]
268 endOfLifeNoises = [2400.0,2250.0,1750.0]
270 process.HGCAL_noise_fC = cms.PSet(
271 values = cms.vdouble( [x*fC_per_ele
for x
in endOfLifeNoises] ),
273 process.HGCAL_chargeCollectionEfficiencies = cms.PSet(
274 values = cms.vdouble(endOfLifeCCEs)
276 process.HGCAL_noise_MIP = cms.PSet(
277 value = cms.double( 1.0/5.0 )
279 process.HGCAL_noises = cms.PSet(
280 values = cms.vdouble([x
for x
in endOfLifeNoises])
285 process.HGCAL_noise_fC = cms.PSet(
286 values = cms.vdouble(0,0,0),
288 process.HGCAL_noise_MIP = cms.PSet(
289 value = cms.double(0)
291 process.HGCAL_noises = cms.PSet(
292 values = cms.vdouble(0,0,0)
296 from Configuration.Eras.Modifier_phase2_hgcalV9_cff
import phase2_hgcalV9
298 phase2_hgcalV9.toModify( hgceeDigitizer,
299 geometryType = cms.uint32(1),
301 phase2_hgcalV9.toModify( hgchefrontDigitizer,
302 geometryType = cms.uint32(1),
304 phase2_hgcalV9.toModify( hgchebackDigitizer,
305 geometryType = cms.uint32(1),
306 hitCollection = cms.string(
"HGCHitsHEback"),
308 phase2_hgcalV9.toModify(HGCAL_noise_fC, values = [x*fC_per_ele
for x
in nonAgedNoises_v9])
309 phase2_hgcalV9.toModify(HGCAL_noises, values = [x
for x
in nonAgedNoises_v9])
def HGCal_disableNoise(process)
def HGCal_setEndOfLifeNoise(process)