CMS 3D CMS Logo

hcalSimParameters_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # This object modifies hcalSimParameters for different scenarios
4 
5 hcalSimParameters = cms.PSet(
6  # In HF, the SimHits energy is actually
7  # the number of photoelectrons from the shower
8  # library. However, we need a lot more
9  # smearing, because the first level of the PMT
10  # only gives ~6 electrons per pe, which
11  # comes out to a 40% smearing of the single pe peak!
12  #
13  hf1 = cms.PSet(
14  readoutFrameSize = cms.int32(4),
15  binOfMaximum = cms.int32(3),
16  samplingFactor = cms.double(0.383),
17  doPhotoStatistics = cms.bool(True),
18  photoelectronsToAnalog = cms.double(2.79),
19  simHitToPhotoelectrons = cms.double(6.0),
20  syncPhase = cms.bool(True),
21  timePhase = cms.double(14.0),
22  doSiPMSmearing = cms.bool(False),
23  sipmTau = cms.double(0.),
24  threshold_currentTDC = cms.double(-999.),
25  delayQIE = cms.int32(-999),
26  ),
27  hf2 = cms.PSet(
28  readoutFrameSize = cms.int32(4),
29  binOfMaximum = cms.int32(3),
30  samplingFactor = cms.double(0.368),
31  doPhotoStatistics = cms.bool(True),
32  photoelectronsToAnalog = cms.double(1.843),
33  simHitToPhotoelectrons = cms.double(6.0),
34  syncPhase = cms.bool(True),
35  timePhase = cms.double(13.0),
36  doSiPMSmearing = cms.bool(False),
37  sipmTau = cms.double(0.),
38  threshold_currentTDC = cms.double(-999.),
39  delayQIE = cms.int32(-999),
40  ),
41  ho = cms.PSet(
42  readoutFrameSize = cms.int32(10),
43  firstRing = cms.int32(1),
44  binOfMaximum = cms.int32(5),
45  doPhotoStatistics = cms.bool(True),
46  simHitToPhotoelectrons = cms.double(4000.0), # is not actually used
47  samplingFactors = cms.vdouble(231.0, 231.0, 231.0, 231.0,
48  360.0, 360.0, 360.0, 360.0, 360.0, 360.0,
49  360.0, 360.0, 360.0, 360.0, 360.0),
50  syncPhase = cms.bool(True),
51  timePhase = cms.double(5.0),
52  timeSmearing = cms.bool(False),
53  # 0 is HPD, 1 is SiPM, 2 fetches HPD/Zecotek/Hamamatsu from DB
54  siPMCode = cms.int32(2),
55  doSiPMSmearing = cms.bool(False),
56  sipmTau = cms.double(5.),
57  threshold_currentTDC = cms.double(-999.),
58  delayQIE = cms.int32(-999),
59  ),
60  hb = cms.PSet(
61  readoutFrameSize = cms.int32(10),
62  firstRing = cms.int32(1),
63  binOfMaximum = cms.int32(5),
64  doPhotoStatistics = cms.bool(True),
65  simHitToPhotoelectrons = cms.double(2000.0),
66  samplingFactors = cms.vdouble(
67  125.44, 125.54, 125.32, 125.13, 124.46,
68  125.01, 125.22, 125.48, 124.45, 125.90,
69  125.83, 127.01, 126.82, 129.73, 131.83,
70  143.52),
71  syncPhase = cms.bool(True),
72  timePhase = cms.double(6.0),
73  timeSmearing = cms.bool(True),
74  doSiPMSmearing = cms.bool(False),
75  sipmTau = cms.double(0.),
76  threshold_currentTDC = cms.double(-999.),
77  delayQIE = cms.int32(-999),
78  ),
79  he = cms.PSet(
80  readoutFrameSize = cms.int32(10),
81  firstRing = cms.int32(16),
82  binOfMaximum = cms.int32(5),
83  doPhotoStatistics = cms.bool(True),
84  simHitToPhotoelectrons = cms.double(2000.0),
85  samplingFactors = cms.vdouble(
86  210.55, 197.93, 186.12, 189.64, 189.63,
87  190.28, 189.61, 189.60, 190.12, 191.22,
88  190.90, 193.06, 188.42, 188.42),
89  syncPhase = cms.bool(True),
90  timePhase = cms.double(6.0),
91  timeSmearing = cms.bool(True),
92  doSiPMSmearing = cms.bool(False),
93  sipmTau = cms.double(0.),
94  threshold_currentTDC = cms.double(-999.),
95  delayQIE = cms.int32(-999),
96  ),
97  zdc = cms.PSet(
98  readoutFrameSize = cms.int32(10),
99  binOfMaximum = cms.int32(5),
100  samplingFactor = cms.double(1.000),
101  doPhotoStatistics = cms.bool(True),
102  photoelectronsToAnalog = cms.double(1.843),
103  simHitToPhotoelectrons = cms.double(6.0),
104  syncPhase = cms.bool(True),
105  timePhase = cms.double(-4.0),
106  doSiPMSmearing = cms.bool(False),
107  sipmTau = cms.double(0.),
108  threshold_currentTDC = cms.double(-999.),
109  delayQIE = cms.int32(-999),
110  ),
111 )
112 
113 hcalSimParameters.hoZecotek = hcalSimParameters.ho.clone()
114 
115 hcalSimParameters.hoHamamatsu = hcalSimParameters.ho.clone()
116 
117 # Customises the HCAL digitiser for post LS1 running
118 from Configuration.Eras.Modifier_run2_common_cff import run2_common
119 from Configuration.ProcessModifiers.applyHFLibraryFix_cff import applyHFLibraryFix
120 
121 run2_common.toModify( hcalSimParameters,
122  ho = dict( siPMCode = 1 ),
123 #--- Default for Run2 HFShowerLibrary file
124  hf1 = dict( samplingFactor = 0.335 ),
125  hf2 = dict( samplingFactor = 0.335 )
126 )
127 #--- Alternative: usage of Run3 HFShowerLibrary file for Run2
128 (applyHFLibraryFix & run2_common).toModify( hcalSimParameters,
129  hf1 = dict( samplingFactor = 0.37,
130  timePhase = 9.0
131  ),
132  hf2 = dict( samplingFactor = 0.37,
133  timePhase = 8.0
134  )
135 )
136 
137 from Configuration.Eras.Modifier_run2_HE_2017_cff import run2_HE_2017
138 run2_HE_2017.toModify( hcalSimParameters,
139  he = dict(
140  doSiPMSmearing = cms.bool(True),
141  sipmTau = cms.double(10.),
142  )
143 )
144 
145 from Configuration.Eras.Modifier_run2_HF_2017_cff import run2_HF_2017
146 run2_HF_2017.toModify( hcalSimParameters,
147  hf1 = dict(
148  readoutFrameSize = cms.int32(3),
149  binOfMaximum = cms.int32(2),
150  threshold_currentTDC = cms.double(3.),
151  ),
152  hf2 = dict(
153  readoutFrameSize = cms.int32(3),
154  binOfMaximum = cms.int32(2),
155  threshold_currentTDC = cms.double(3.),
156  )
157 )
158 
159 from Configuration.Eras.Modifier_run2_HB_2018_cff import run2_HB_2018
160 run2_HB_2018.toModify( hcalSimParameters,
161  hb = dict(
162  readoutFrameSize = cms.int32(8),
163  binOfMaximum = cms.int32(4)
164  )
165 )
166 from Configuration.Eras.Modifier_run2_HE_2018_cff import run2_HE_2018
167 run2_HE_2018.toModify( hcalSimParameters,
168  he = dict(
169  readoutFrameSize = cms.int32(8),
170  binOfMaximum = cms.int32(4),
171  threshold_currentTDC = cms.double(18.7)
172  )
173 )
174 
175 
176 from Configuration.Eras.Modifier_run3_HB_cff import run3_HB
177 run3_HB.toModify( hcalSimParameters,
178  hb = dict(
179  doSiPMSmearing = cms.bool(True),
180  threshold_currentTDC = cms.double(18.7),
181  sipmTau = cms.double(10.),
182  )
183 )
184 
185 from Configuration.Eras.Modifier_run3_common_cff import run3_common
186 run3_common.toModify( hcalSimParameters,
187  hb = dict(
188  readoutFrameSize = cms.int32(10),
189  binOfMaximum = cms.int32(6)
190  ),
191  he = dict(
192  readoutFrameSize = cms.int32(10),
193  binOfMaximum = cms.int32(6)
194  ),
195  hf1 = dict( samplingFactor = 0.37,
196  timePhase = 9.0
197  ),
198  hf2 = dict( samplingFactor = 0.37,
199  timePhase = 8.0
200  )
201 )
202 
203 
204 _newFactors = cms.vdouble(
205  210.55, 197.93, 186.12, 189.64, 189.63,
206  189.96, 190.03, 190.11, 190.18, 190.25,
207  190.32, 190.40, 190.47, 190.54, 190.61,
208  190.69, 190.83, 190.94, 190.94, 190.94,
209  190.94, 190.94, 190.94, 190.94, 190.94,
210  190.94, 190.94, 190.94, 190.94, 190.94,
211  190.94, 190.94, 190.94, 190.94, 190.94,
212  190.94, 190.94, 190.94, 190.94, 190.94,
213  190.94, 190.94, 190.94, 190.94, 190.94,
214  190.94, 190.94, 190.94, 190.94, 190.94,
215  190.94, 190.94, 190.94, 190.94, 190.94,
216  190.94, 190.94, 190.94, 190.94, 190.94,
217  190.94, 190.94, 190.94, 190.94, 190.94,
218  190.94, 190.94, 190.94, 190.94, 190.94,
219  190.94, 190.94, 190.94, 190.94, 190.94,
220  190.94, 190.94, 190.94, 190.94, 190.94,
221  190.94, 190.94, 190.94, 190.94, 190.94 )
222 
223 from Configuration.Eras.Modifier_phase2_hcal_cff import phase2_hcal
224 phase2_hcal.toModify( hcalSimParameters,
225  he = dict(
226  samplingFactors = _newFactors,
227  )
228 )