1 import FWCore.ParameterSet.Config
as cms
3 from SimCalorimetry.HGCalSimProducers.hgcROCParameters_cfi
import hgcROCSettings
7 fC_per_ele = 1.6020506e-4
8 nonAgedCCEs = [1.0, 1.0, 1.0]
9 nonAgedNoises = [2100.0,2100.0,1600.0]
10 nonAgedNoises_v9 = [2000.0,2400.0,2000.0]
11 thresholdTracksMIP =
True
13 ileakParam_600V = [0.993,-42.668]
14 ileakParam_800V = [0.996,-42.464]
15 HGCAL_ileakParam_toUse = cms.PSet(
16 ileakParam = cms.vdouble(ileakParam_600V)
20 cceParamFine_tdr600 = [1.5e+15, -3.00394e-17, 0.318083]
21 cceParamThin_tdr600 = [1.5e+15, -3.09878e-16, 0.211207]
22 cceParamThick_tdr600 = [6e+14, -7.96539e-16, 0.251751]
24 cceParamFine_tdr800 = [4.2e+15, 2.35482e-18, 0.553187]
25 cceParamThin_tdr800 = [1.5e+15, -1.98109e-16, 0.280567]
26 cceParamThick_tdr800 = [6e+14, -5.24999e-16, 0.357616]
28 cceParamFine_ttu600 = [1.5e+15, 9.98631e-18, 0.343774]
29 cceParamThin_ttu600 = [1.5e+15, -2.17083e-16, 0.304873]
30 cceParamThick_ttu600 = [6e+14, -8.01557e-16, 0.157375]
32 cceParamFine_ttu800 = [1.5e+15, 3.35246e-17, 0.251679]
33 cceParamThin_ttu800 = [1.5e+15, -1.62096e-16, 0.293828]
34 cceParamThick_ttu800 = [6e+14, -5.95259e-16, 0.183929]
36 cceParamFine_epi600 = [3.5e+15, -9.73872e-19, 0.263812]
37 cceParamThin_epi600 = [1.5e+15, -3.09878e-16, 0.211207]
38 cceParamThick_epi600 = [6e+14, -7.96539e-16, 0.251751]
40 HGCAL_cceParams_toUse = cms.PSet(
41 cceParamFine = cms.vdouble(cceParamFine_tdr600),
42 cceParamThin = cms.vdouble(cceParamThin_tdr600),
43 cceParamThick = cms.vdouble(cceParamThick_tdr600)
46 HGCAL_noise_fC = cms.PSet(
47 scaleByDose = cms.bool(
False),
48 scaleByDoseAlgo = cms.uint32(0),
49 doseMap = cms.string(
""),
50 values = cms.vdouble( [x*fC_per_ele
for x
in nonAgedNoises] ),
53 HGCAL_noise_heback = cms.PSet(
54 scaleByDose = cms.bool(
False),
55 scaleByDoseAlgo = cms.uint32(0),
56 doseMap = cms.string(
""),
57 noise_MIP = cms.double(1./100.)
60 HGCAL_chargeCollectionEfficiencies = cms.PSet(
61 values = cms.vdouble( nonAgedCCEs )
64 HGCAL_noises = cms.PSet(
65 values = cms.vdouble([x
for x
in nonAgedNoises])
69 hgceeDigitizer = cms.PSet(
70 accumulatorType = cms.string(
"HGCDigiProducer"),
71 hitCollection = cms.string(
"HGCHitsEE"),
72 digiCollection = cms.string(
"HGCDigisEE"),
73 NoiseGeneration_Method = cms.bool(
True),
74 maxSimHitsAccTime = cms.uint32(100),
75 bxTime = cms.double(25),
76 eVPerEleHolePair = cms.double(eV_per_eh_pair),
77 tofDelay = cms.double(5),
78 geometryType = cms.uint32(0),
79 digitizationType = cms.uint32(0),
80 makeDigiSimLinks = cms.bool(
False),
81 premixStage1 = cms.bool(
False),
82 premixStage1MinCharge = cms.double(0),
83 premixStage1MaxCharge = cms.double(1e6),
84 useAllChannels = cms.bool(
True),
85 verbosity = cms.untracked.uint32(0),
87 keV2fC = cms.double(0.044259),
88 ileakParam = cms.PSet(refToPSet_ = cms.string(
"HGCAL_ileakParam_toUse")),
89 cceParams = cms.PSet(refToPSet_ = cms.string(
"HGCAL_cceParams_toUse")),
90 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
91 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
92 doTimeSamples = cms.bool(
False),
93 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
94 feCfg = hgcROCSettings.clone()
99 hgchefrontDigitizer = cms.PSet(
100 accumulatorType = cms.string(
"HGCDigiProducer"),
101 hitCollection = cms.string(
"HGCHitsHEfront"),
102 digiCollection = cms.string(
"HGCDigisHEfront"),
103 NoiseGeneration_Method = cms.bool(
True),
104 maxSimHitsAccTime = cms.uint32(100),
105 bxTime = cms.double(25),
106 tofDelay = cms.double(5),
107 geometryType = cms.uint32(0),
108 digitizationType = cms.uint32(0),
109 makeDigiSimLinks = cms.bool(
False),
110 premixStage1 = cms.bool(
False),
111 premixStage1MinCharge = cms.double(0),
112 premixStage1MaxCharge = cms.double(1e6),
113 useAllChannels = cms.bool(
True),
114 verbosity = cms.untracked.uint32(0),
116 keV2fC = cms.double(0.044259),
117 ileakParam = cms.PSet(refToPSet_ = cms.string(
"HGCAL_ileakParam_toUse")),
118 cceParams = cms.PSet(refToPSet_ = cms.string(
"HGCAL_cceParams_toUse")),
119 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
120 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
121 doTimeSamples = cms.bool(
False),
122 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
123 feCfg = hgcROCSettings.clone()
128 hgchebackDigitizer = cms.PSet(
129 accumulatorType = cms.string(
"HGCDigiProducer"),
130 hitCollection = cms.string(
"HcalHits"),
131 digiCollection = cms.string(
"HGCDigisHEback"),
132 NoiseGeneration_Method = cms.bool(
True),
133 maxSimHitsAccTime = cms.uint32(100),
134 bxTime = cms.double(25),
135 tofDelay = cms.double(1),
136 geometryType = cms.uint32(0),
137 digitizationType = cms.uint32(1),
138 makeDigiSimLinks = cms.bool(
False),
139 premixStage1 = cms.bool(
False),
140 premixStage1MinCharge = cms.double(0),
141 premixStage1MaxCharge = cms.double(1e6),
142 useAllChannels = cms.bool(
True),
143 verbosity = cms.untracked.uint32(0),
146 algo = cms.uint32(2),
147 scaleByTileArea= cms.bool(
False),
148 scaleBySipmArea= cms.bool(
False),
149 sipmMap = cms.string(
"SimCalorimetry/HGCalSimProducers/data/sipmParams_geom-10.txt"),
150 noise = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_heback")),
151 keV2MIP = cms.double(1./675.0),
152 doTimeSamples = cms.bool(
False),
153 nPEperMIP = cms.double(21.0),
154 nTotalPE = cms.double(7500),
155 xTalk = cms.double(0.01),
156 sdPixels = cms.double(1e-6),
157 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
158 feCfg = hgcROCSettings.clone(
160 adcSaturation_fC = 68.75,
161 tdcSaturation_fC = 1000,
162 targetMIPvalue_ADC = 15,
163 adcThreshold_fC = 0.5,
166 tdcForToAOnset_fC = cms.vdouble(12.,12.,12.),
172 hfnoseDigitizer = cms.PSet(
173 accumulatorType = cms.string(
"HGCDigiProducer"),
174 hitCollection = cms.string(
"HFNoseHits"),
175 digiCollection = cms.string(
"HFNoseDigis"),
176 NoiseGeneration_Method = cms.bool(
True),
177 maxSimHitsAccTime = cms.uint32(100),
178 bxTime = cms.double(25),
179 eVPerEleHolePair = cms.double(eV_per_eh_pair),
180 tofDelay = cms.double(5),
181 geometryType = cms.uint32(1),
182 digitizationType = cms.uint32(0),
183 makeDigiSimLinks = cms.bool(
False),
184 premixStage1 = cms.bool(
False),
185 premixStage1MinCharge = cms.double(0),
186 premixStage1MaxCharge = cms.double(1e6),
187 useAllChannels = cms.bool(
True),
188 verbosity = cms.untracked.uint32(0),
190 keV2fC = cms.double(0.044259),
191 ileakParam = cms.PSet(refToPSet_ = cms.string(
"HGCAL_ileakParam_toUse")),
192 cceParams = cms.PSet(refToPSet_ = cms.string(
"HGCAL_cceParams_toUse")),
193 chargeCollectionEfficiencies = cms.PSet(refToPSet_ = cms.string(
"HGCAL_chargeCollectionEfficiencies")),
194 noise_fC = cms.PSet(refToPSet_ = cms.string(
"HGCAL_noise_fC")),
195 doTimeSamples = cms.bool(
False),
196 thresholdFollowsMIP = cms.bool(thresholdTracksMIP),
197 feCfg = hgcROCSettings.clone()
202 from Configuration.ProcessModifiers.premix_stage1_cff
import premix_stage1
203 for _m
in [hgceeDigitizer, hgchefrontDigitizer, hgchebackDigitizer, hfnoseDigitizer]:
204 premix_stage1.toModify(_m, premixStage1 =
True)
207 endOfLifeCCEs = [0.5, 0.5, 0.7]
208 endOfLifeNoises = [2400.0,2250.0,1750.0]
210 """includes all effects from radiation and gain choice"""
216 """include all effects except fluence impact on leakage current and CCE"""
222 process.HGCAL_noise_fC = cms.PSet(
223 scaleByDose = cms.bool(byDose),
224 scaleByDoseAlgo = cms.uint32(byDoseAlgo),
225 doseMap = cms.string(
"SimCalorimetry/HGCalSimProducers/data/doseParams_3000fb_fluka-3.5.15.9.txt"),
226 values = cms.vdouble( [x*fC_per_ele
for x
in endOfLifeNoises] ),
228 process.HGCAL_chargeCollectionEfficiencies = cms.PSet(
229 values = cms.vdouble(endOfLifeCCEs)
231 process.HGCAL_noises = cms.PSet(
232 values = cms.vdouble([x
for x
in endOfLifeNoises])
237 process.HGCAL_noise_heback = cms.PSet(
238 scaleByDose = cms.bool(byDose),
239 scaleByDoseAlgo = cms.uint32(byDoseAlgo),
240 doseMap = cms.string(
"SimCalorimetry/HGCalSimProducers/data/doseParams_3000fb_fluka-3.5.15.9.txt"),
241 noise_MIP = cms.double(1./5.)
248 process.HGCAL_noise_fC = cms.PSet(
249 scaleByDose = cms.bool(
False),
250 scaleByDoseAlgo = cms.uint32(0),
251 doseMap = cms.string(
""),
252 values = cms.vdouble(0,0,0),
254 process.HGCAL_noise_heback = cms.PSet(
255 scaleByDose = cms.bool(
False),
256 scaleByDoseAlgo = cms.uint32(0),
257 doseMap = cms.string(
""),
258 noise_MIP = cms.double(0.)
260 process.HGCAL_noises = cms.PSet(
261 values = cms.vdouble(0,0,0)
265 from Configuration.Eras.Modifier_phase2_hgcalV9_cff
import phase2_hgcalV9
267 phase2_hgcalV9.toModify( hgceeDigitizer,
268 geometryType = cms.uint32(1),
270 phase2_hgcalV9.toModify( hgchefrontDigitizer,
271 geometryType = cms.uint32(1),
273 phase2_hgcalV9.toModify( hgchebackDigitizer,
274 geometryType = cms.uint32(1),
275 hitCollection = cms.string(
"HGCHitsHEback"),
277 phase2_hgcalV9.toModify(HGCAL_noise_fC, values = [x*fC_per_ele
for x
in nonAgedNoises_v9])
278 phase2_hgcalV9.toModify(HGCAL_noises, values = [x
for x
in nonAgedNoises_v9])