CMS 3D CMS Logo

Calorimetry_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # This is used to modify parameters for Run 2 (see bottom of file)
4 
5 #Global fast calorimetry parameters
8 #from FastSimulation.Configuration.CommonInputs_cff import *
9 
11 
12 FamosCalorimetryBlock = cms.PSet(
13  Calorimetry = cms.PSet(
14  #ECALScaleBlock, # comment out to disable scaling
15  HSParameterBlock,
16  HCALResponseBlock,
17  ECAL = cms.PSet(
18  # See FastSimulation/CaloRecHitsProducer/python/CaloRecHits_cff.py
19  Digitizer = cms.untracked.bool(False),
20  # If set to true the simulation in ECAL would be done 1X0 by 1X0
21  # this is slow but more adapted to detailed studies.
22  # Otherwise roughty 5 steps are used.
23  bFixedLength = cms.bool(False),
24 
25  # For the core 10% of the spots for
26  CoreIntervals = cms.vdouble(100.0, 0.1),
27  # change the radius of the tail of the shower
28  RTFactor = cms.double(1.0),
29  # change the radius of the core of the shower
30  RCFactor = cms.double(1.0),
31  # For the tail 10% of r<1RM. 100% otherwise
32  TailIntervals = cms.vdouble(1.0, 0.1, 100.0, 1.0),
33  FrontLeakageProbability = cms.double(1.0),
34  GridSize = cms.int32(7),
35  # change globally the Moliere radius
36 
37 
38  ### changed after tuning - Feb - July - Shilpi Jain
39  #RadiusFactor = cms.double(1.096),
40  RadiusFactorEB = cms.double(1.096),
41  RadiusFactorEE = cms.double(1.25),
42  ### changed after tuning - Feb - July - Shilpi Jain
43 
44  RadiusPreshowerCorrections = cms.vdouble(0.137, 10.3), # default value for maxshower depth dependence-->works fine
45  MipsinGeV = cms.vdouble(0.0001421,0.0000812), # increase in mipsinGeV by 75% only in layer1
46  #SpotFraction < 0 <=> deactivated. In the case, CoreIntervals and
47  #TailIntervals are used
48  SpotFraction = cms.double(-1.0),
49  GapLossProbability = cms.double(0.9),
50  SimulatePreshower = cms.bool(True)
51  ),
52  ForwardCalorimeterProperties = cms.PSet(
53  HadronicCalorimeterProperties= cms.PSet(
54  HCAL_Sampling = cms.double(0.0035),
55  # Watch out ! The following two values are defined wrt the electron shower simulation
56  # There are not directly related to the detector properties
57  HCAL_PiOverE = cms.double(0.2),
58  # HCAL_PiOverE = cms.double(0.4)
59  HCALAeff= cms.double(55.845),
60  HCALZeff= cms.double(26),
61  HCALrho= cms.double(7.87),
62 
63  HCALradiationLengthIncm= cms.double(1.757),
64  HCALradLenIngcm2= cms.double(13.84),
65  HCALmoliereRadius= cms.double(1.719),
66  HCALcriticalEnergy= cms.double(21E-3),
67  HCALinteractionLength= cms.double(16.77),
68 
69  HCALetatow=cms.vdouble( 0.000, 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.870, 0.957, 1.044, 1.131, 1.218, 1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853, 3.000, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.716, 4.889, 5.191),
70  # HCALDepthLam=cms.vdouble( 8.930, 9.001, 9.132, 8.912, 8.104, 8.571, 8.852, 9.230, 9.732, 10.29, 10.95, 11.68, 12.49, 12.57, 12.63, 6.449, 5.806, 8.973, 8.934, 8.823, 8.727, 8.641, 8.565, 8.496, 8.436, 8.383, 8.346, 8.307, 8.298, 8.281, 9.442, 9.437, 9.432, 9.429, 9.432, 9.433, 9.430, 9.437, 9.442, 9.446, 9.435)
71  HCALDepthLam=cms.vdouble(8.014, 8.078, 8.195, 7.998, 7.273, 7.692, 7.944, 8.283, 8.734, 9.235, 9.827, 10.482, 11.209, 11.281, 11.335, 5.788, 5.211, 8.053, 8.018, 7.918, 7.832, 7.755, 7.687, 7.625, 7.571, 7.523, 7.490, 7.455, 7.447, 7.432, 8.474, 8.469, 8.465, 8.462, 8.465, 8.466, 8.463, 8.469, 8.474, 8.477, 8.467)
72  ),
73  ),
74  CalorimeterProperties = cms.PSet(
75  # triplet for each p value: p, k_e(p), k_h(p) ...
76  RespCorrP = cms.vdouble(1.0, 1.0, 1.0, 1000.0, 1.0, 1.0),
77  PreshowerLayer2_thickness = cms.double(0.38), # layer2 thickness back to original
78  ECALEndcap_LightCollection = cms.double(0.023),
79  PreshowerLayer1_thickness = cms.double(1.65), # increase in thickness of layer 1 by 3%
80  PreshowerLayer1_mipsPerGeV = cms.double(17.85), # 50% decrease in mipsperGeV
81  PreshowerLayer2_mipsPerGeV = cms.double(59.5),
82  ECALBarrel_LightCollection = cms.double(0.03),
83  HadronicCalorimeterProperties= cms.PSet(
84  HCAL_Sampling = cms.double(0.0035),
85  # Watch out ! The following two values are defined wrt the electron shower simulation
86  # There are not directly related to the detector properties
87  HCAL_PiOverE = cms.double(0.2),
88  # HCAL_PiOverE = cms.double(0.4)
89  HCALAeff= cms.double(63.546),
90  HCALZeff= cms.double(29.),
91  HCALrho= cms.double(8.960),
92 
93  HCALradiationLengthIncm= cms.double(1.43),
94  HCALradLenIngcm2= cms.double(12.86),
95  HCALmoliereRadius= cms.double(1.712),
96  HCALcriticalEnergy= cms.double(18.63E-3),
97  HCALinteractionLength= cms.double(15.05),
98 
99  HCALetatow=cms.vdouble( 0.000, 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.870, 0.957, 1.044, 1.131, 1.218, 1.305, 1.392, 1.479, 1.566, 1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.853, 3.000, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.716, 4.889, 5.191),
100  HCALDepthLam=cms.vdouble( 8.930, 9.001, 9.132, 8.912, 8.104, 8.571, 8.852, 9.230, 9.732, 10.29, 10.95, 11.68, 12.49, 12.57, 12.63, 6.449, 5.806, 8.973, 8.934, 8.823, 8.727, 8.641, 8.565, 8.496, 8.436, 8.383, 8.346, 8.307, 8.298, 8.281, 9.442, 9.437, 9.432, 9.429, 9.432, 9.433, 9.430, 9.437, 9.442, 9.446, 9.435)
101  ),
102 
103  BarrelCalorimeterProperties = cms.PSet(
104 
105  #====== Geometrical material properties ========
106 
107  # Light Collection efficiency
108  lightColl = cms.double(0.03),
109  # Light Collection uniformity
110  lightCollUnif = cms.double(0.003),
111  # Photostatistics (photons/GeV) in the homegeneous material
112  photoStatistics = cms.double(50.E3),
113  # Thickness of the detector in cm
114  thickness = cms.double(23.0),
115 
116  #====== Global parameters of the material ========
117 
118  # Interaction length in cm
119  interactionLength = cms.double(18.5),
120  Aeff = cms.double(170.87),
121  Zeff = cms.double(68.36),
122  rho = cms.double(8.280),
123  # Radiation length in g/cm^2
124  radLenIngcm2 = cms.double(7.37),
125 
126  # ===== Those parameters might be entered by hand
127  # or calculated out of the previous ones
128 
129  # Radiation length in cm. If value set to -1, FastSim uses internally the
130  # formula radLenIngcm2/rho
131  radLenIncm = cms.double(0.89),
132  # Critical energy in GeV. If value set to -1, FastSim uses internally the
133  # formula (2.66E-3*(x0*Z/A)^1.1): 8.74E-3 for ECAL EndCap
134  criticalEnergy = cms.double(8.74E-3),
135  # Moliere Radius in cm.If value set to -1, FastSim uses internally the
136  # formula : Es/criticalEnergy*X0 with Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV
137  # This value is known to be 2.190 cm for ECAL Endcap, but the formula gives 2.159 cm
138  moliereRadius = cms.double(2.190),
139 
140  #====== Parameters for sampling ECAL ========
141 
142  # Sampling Fraction: Fs = X0eff/(da+dp) where X0eff is the average X0
143  # of the active and passive media and da/dp their thicknesses
144  Fs = cms.double(0.0),
145 
146  # e/mip for the calorimeter. May be estimated by 1./(1+0.007*(Zp-Za))
147  ehat = cms.double(0.0),
148 
149  # a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)
150  # it is used to generate Nspots in radial profiles.
151  resE = cms.double(1.),
152 
153  # the width in cm of the active layer
154  da = cms.double(0.2),
155 
156  # the width in cm of the passive layer
157  dp = cms.double(0.8),
158 
159  # Is a homogenious detector?
160  bHom = cms.bool(True),
161 
162  # Activate the LogDebug
163  debug = cms.bool(False)
164 
165  ),
166 
167  EndcapCalorimeterProperties = cms.PSet(
168 
169  #====== Geometrical material properties ========
170 
171  # Light Collection efficiency
172  lightColl = cms.double(0.023),
173  # Light Collection uniformity
174  lightCollUnif = cms.double(0.003),
175  # Photostatistics (photons/GeV) in the homegeneous material
176  photoStatistics = cms.double(50.E3),
177  # Thickness of the detector in cm
178  thickness = cms.double(22.0),
179 
180  #====== Global parameters of the material ========
181 
182  # Interaction length in cm
183  interactionLength = cms.double(18.5),
184  Aeff = cms.double(170.87),
185  Zeff = cms.double(68.36),
186  rho = cms.double(8.280),
187  # Radiation length in g/cm^2
188  radLenIngcm2 = cms.double(7.37),
189 
190  # ===== Those parameters might be entered by hand
191  # or calculated out of the previous ones
192 
193  # Radiation length in cm. If value set to -1, FastSim uses internally the
194  # formula radLenIngcm2/rho
195  radLenIncm = cms.double(0.89),
196  # Critical energy in GeV. If value set to -1, FastSim uses internally the
197  # formula (2.66E-3*(x0*Z/A)^1.1): 8.74E-3 for ECAL EndCap
198  criticalEnergy = cms.double(8.74E-3),
199  # Moliere Radius in cm.If value set to -1, FastSim uses internally the
200  # formula : Es/criticalEnergy*X0 with Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV
201  # This value is known to be 2.190 cm for ECAL Endcap, but the formula gives 2.159 cm
202  moliereRadius = cms.double(2.190),
203 
204 
205  #====== Parameters for sampling ECAL ========
206 
207  # Sampling Fraction: Fs = X0eff/(da+dp) where X0eff is the average X0
208  # of the active and passive media and da/dp their thicknesses
209  Fs = cms.double(0.0),
210 
211  # e/mip for the calorimeter. May be estimated by 1./(1+0.007*(Zp-Za))
212  ehat = cms.double(0.0),
213 
214  # a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)
215  # it is used to generate Nspots in radial profiles.
216  resE = cms.double(1.),
217 
218  # the width in cm of the active layer
219  da = cms.double(0.2),
220 
221  # the width in cm of the passive layer
222  dp = cms.double(0.8),
223 
224  # Is a homogenious detector?
225  bHom = cms.bool(True),
226 
227  # Activate the LogDebug
228  debug = cms.bool(False)
229 
230  )
231 
232  ),
233  Debug = cms.untracked.bool(False),
234  useDQM = cms.untracked.bool(False),
235  # EvtsToDebug = cms.untracked.vuint32(487),
236  HCAL = cms.PSet(
237  SimMethod = cms.int32(0), ## 0 - use HDShower, 1 - use HDRShower, 2 - GFLASH
238  GridSize = cms.int32(7),
239  #-- 0 - simple response, 1 - parametrized response + showering, 2 - tabulated response + showering
240  SimOption = cms.int32(2),
241  Digitizer = cms.untracked.bool(False),
242 
243  samplingHBHE = cms.vdouble(125.44, 125.54, 125.32, 125.13, 124.46,
244  125.01, 125.22, 125.48, 124.45, 125.90,
245  125.83, 127.01, 126.82, 129.73, 131.83,
246  143.52, # HB
247  210.55, 197.93, 186.12, 189.64, 189.63,
248  190.28, 189.61, 189.60, 190.12, 191.22,
249  190.90, 193.06, 188.42, 188.42), #HE
250  samplingHF = cms.vdouble(0.383, 0.368),
251  samplingHO = cms.vdouble(231.0, 231.0, 231.0, 231.0, 360.0,
252  360.0, 360.0, 360.0, 360.0, 360.0,
253  360.0, 360.0, 360.0, 360.0, 360.0),
254 
255  ietaShiftHB = cms.int32(1),
256  timeShiftHB = cms.vdouble(6.9, 6.9, 7.1, 7.1, 7.3, 7.5, 7.9, 8.3, 8.7, 9.1, 9.5, 10.3, 10.9, 11.5, 12.3, 14.1),
257  ietaShiftHE = cms.int32(16),
258  timeShiftHE = cms.vdouble(16.9, 15.7, 15.3, 15.3, 15.1, 14.9, 14.7, 14.7, 14.5, 14.5, 14.3, 14.3, 14.5, 13.9),
259  ietaShiftHO = cms.int32(1),
260  timeShiftHO = cms.vdouble(13.7, 13.7, 13.9, 14.1, 15.1, 15.7, 16.5, 17.3, 18.1, 19.1, 20.3, 21.9, 23.3, 25.5, 26.1),
261  ietaShiftHF = cms.int32(29),
262  timeShiftHF = cms.vdouble(50.7, 52.5, 52.9, 53.9, 54.5, 55.1, 55.1, 55.7, 55.9, 56.1, 56.1, 56.1, 56.5),
263  ),
264  HFShower = cms.PSet(
265  ProbMax = cms.double(1.0),
266  CFibre = cms.double(0.5),
267  OnlyLong = cms.bool(True)
268  ),
269  HFShowerLibrary = cms.PSet(
270  useShowerLibrary = cms.untracked.bool(True),
271  useCorrectionSL = cms.untracked.bool(True),
272  FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'),
273  BackProbability = cms.double(0.2),
274  TreeEMID = cms.string('emParticles'),
275  TreeHadID = cms.string('hadParticles'),
276  Verbosity = cms.untracked.bool(False),
277  ApplyFiducialCut = cms.bool(True),
278  BranchEvt = cms.untracked.string(''),
279  BranchPre = cms.untracked.string(''),
280  BranchPost = cms.untracked.string('')
281  )
282  ),
283  GFlash = cms.PSet(
284  GflashExportToFastSim = cms.bool(True),
285  GflashHadronPhysics = cms.string('QGSP_BERT'),
286  GflashEMShowerModel = cms.bool(False),
287  GflashHadronShowerModel = cms.bool(True),
288  GflashHcalOuter = cms.bool(False),
289  GflashHistogram = cms.bool(False),
290  GflashHistogramName = cms.string('gflash_histogram.root'),
291  Verbosity = cms.untracked.int32(0),
292  bField = cms.double(3.8),
293  watcherOn = cms.bool(False),
294  tuning_pList = cms.vdouble()
295  )
296  )
297 
298 FamosCalorimetryBlock.Calorimetry.ECAL.Digitizer = True
299 FamosCalorimetryBlock.Calorimetry.HCAL.Digitizer = True
300 
301 from Configuration.Eras.Modifier_run2_common_cff import run2_common
302 run2_common.toModify(FamosCalorimetryBlock.Calorimetry.HFShowerLibrary, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' )
303 
304 run2_common.toModify(FamosCalorimetryBlock.Calorimetry.HFShower, ProbMax = 0.5 )