CMS 3D CMS Logo

g4SimHits_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
4 
5 ## HF Raddam Dose Class in /SimG4CMS/Calo
7 
8 ## This object is used to customise g4SimHits for different running scenarios
9 
10 common_heavy_suppression = cms.PSet(
11  NeutronThreshold = cms.double(30.0),
12  ProtonThreshold = cms.double(30.0),
13  IonThreshold = cms.double(30.0)
14 )
15 
16 common_maximum_time = cms.PSet(
17  MaxTrackTime = cms.double(500.0),
18  MaxTimeNames = cms.vstring('ZDCRegion'),
19  MaxTrackTimes = cms.vdouble(2000.0),
20  #DeadRegions = cms.vstring('QuadRegion','CastorRegion','InterimRegion'),
21  DeadRegions = cms.vstring('QuadRegion','InterimRegion'),
22  CriticalEnergyForVacuum = cms.double(2.0),
23  CriticalDensity = cms.double(1e-15)
24 )
25 
26 common_UsePMT = cms.PSet(
27  UseR7600UPMT = cms.bool(False)
28 )
29 
30 common_UseHF = cms.PSet(
31  Lambda1 = cms.double(280.0),
32  Lambda2 = cms.double(700.0),
33  Gain = cms.double(0.33),
34  CheckSurvive = cms.bool(False),
35  FibreR = cms.untracked.double(0.3)
36 )
37 
38 common_UseLuminosity = cms.PSet(
39  InstLuminosity = cms.double(0.),
40  DelivLuminosity = cms.double(5000.)
41 )
42 
43 g4SimHits = cms.EDProducer("OscarMTProducer",
44  NonBeamEvent = cms.bool(False),
45  G4EventManagerVerbosity = cms.untracked.int32(0),
46  G4StackManagerVerbosity = cms.untracked.int32(0),
47  G4TrackingManagerVerbosity = cms.untracked.int32(0),
48  UseMagneticField = cms.bool(True),
49  StoreRndmSeeds = cms.bool(False),
50  RestoreRndmSeeds = cms.bool(False),
51  PhysicsTablesDirectory = cms.string('PhysicsTables'),
52  StorePhysicsTables = cms.bool(False),
53  RestorePhysicsTables = cms.bool(False),
54  CheckOverlap = cms.untracked.bool(False),
55  G4CheckOverlap = cms.PSet(
56  Tolerance = cms.untracked.double(0.0),
57  Resolution = cms.untracked.int32(10000),
58  RegionFlag = cms.untracked.bool(True), # if true - selection by G4Region name
59  gdmlFlag = cms.untracked.bool(True), # if true - dump gdml file
60  PVname = cms.string(''),
61  LVname = cms.string(''),
62  NodeNames = cms.vstring('World')
63  ),
64  G4Commands = cms.vstring(),
65  SteppingVerbosity = cms.int32(0),
66  StepVerboseThreshold = cms.double(0.1), # in GeV
67  VerboseEvents = cms.vint32(),
68  VertexNumber = cms.vint32(),
69  VerboseTracks = cms.vint32(),
70  FileNameField = cms.untracked.string(''),
71  FileNameGDML = cms.untracked.string(''),
72  FileNameRegions = cms.untracked.string(''),
73  Watchers = cms.VPSet(),
74  HepMCProductLabel = cms.InputTag("generatorSmeared"),
75  theLHCTlinkTag = cms.InputTag("LHCTransport"),
76  CustomUIsession = cms.untracked.PSet(
77  Type = cms.untracked.string("MessageLogger"), # MessageLoggerThreadPrefix, FilePerThread; the non-default ones are meant only for MT debugging
78  ThreadPrefix = cms.untracked.string("W"), # For MessageLoggerThreadPrefix
79  ThreadFile = cms.untracked.string("sim_output_thread"), # For FilePerThread
80  ),
81  MagneticField = cms.PSet(
82  UseLocalMagFieldManager = cms.bool(False),
83  Verbosity = cms.untracked.bool(False),
84  ConfGlobalMFM = cms.PSet(
85  Volume = cms.string('OCMS'),
86  OCMS = cms.PSet(
87  Stepper = cms.string('G4ClassicalRK4'),
88  Type = cms.string('CMSIMField'),
89  StepperParam = cms.PSet(
90  MaximumEpsilonStep = cms.untracked.double(0.01), ## in mm
91  DeltaOneStep = cms.double(0.001), ## in mm
92  MaximumLoopCounts = cms.untracked.double(1000.0),
93  DeltaChord = cms.double(0.001), ## in mm
94  MinStep = cms.double(0.1), ## in mm
95  DeltaIntersectionAndOneStep = cms.untracked.double(-1.0),
96  DeltaIntersection = cms.double(0.0001),## in mm
97  MinimumEpsilonStep = cms.untracked.double(1e-05), ## in mm
98  EnergyThSimple = cms.double(0.0), ## in GeV
99  DeltaChordSimple = cms.double(0.1), ## in mm
100  DeltaOneStepSimple = cms.double(0.1), ## in mm
101  DeltaIntersectionSimple = cms.double(0.01), ## in mm
102  )
103  )
104  ),
105  delta = cms.double(1.0)
106  ),
107  Physics = cms.PSet(
108  common_maximum_time,
109  # NOTE : if you want EM Physics only,
110  # please select "SimG4Core/Physics/DummyPhysics" for type
111  # and turn ON DummyEMPhysics
112  #
113  type = cms.string('SimG4Core/Physics/FTFP_BERT_EMM'),
114  DummyEMPhysics = cms.bool(False),
115  CutsPerRegion = cms.bool(True),
116  CutsOnProton = cms.untracked.bool(True),
117  DefaultCutValue = cms.double(1.0), ## cuts in cm
118  G4BremsstrahlungThreshold = cms.double(0.5), ## cut in GeV
119  Verbosity = cms.untracked.int32(0),
120  # 1 will print cuts as they get set from DD
121  # 2 will do as 1 + will dump Geant4 table of cuts
122  MonopoleCharge = cms.untracked.int32(1),
123  MonopoleDeltaRay = cms.untracked.bool(True),
124  MonopoleMultiScatter = cms.untracked.bool(False),
125  MonopoleTransport = cms.untracked.bool(True),
126  MonopoleMass = cms.untracked.double(0),
127  Region = cms.string(' '),
128  TrackingCut = cms.bool(False),
129  SRType = cms.bool(True),
130  FlagMuNucl = cms.bool(False),
131  FlagFluo = cms.bool(False),
132  EMPhysics = cms.untracked.bool(True),
133  HadPhysics = cms.untracked.bool(True),
134  FlagBERT = cms.untracked.bool(False),
135  GflashEcal = cms.bool(False),
136  GflashHcal = cms.bool(False),
137  GflashEcalHad = cms.bool(False),
138  GflashHcalHad = cms.bool(False),
139  bField = cms.double(3.8),
140  energyScaleEB = cms.double(1.032),
141  energyScaleEE = cms.double(1.024),
142  ExoticaPhysicsSS = cms.untracked.bool(False),
143  ThermalNeutrons = cms.untracked.bool(False),
144  RusRoElectronEnergyLimit = cms.double(0.0),
145  RusRoEcalElectron = cms.double(1.0),
146  RusRoHcalElectron = cms.double(1.0),
147  RusRoMuonIronElectron = cms.double(1.0),
148  RusRoPreShowerElectron = cms.double(1.0),
149  RusRoCastorElectron = cms.double(1.0),
150  RusRoWorldElectron = cms.double(1.0),
151  ElectronStepLimit = cms.bool(False),
152  ElectronRangeTest = cms.bool(False),
153  PositronStepLimit = cms.bool(False),
154  MinStepLimit = cms.double(1.0)
155  ),
156  Generator = cms.PSet(
157  HectorEtaCut,
158  # string HepMCProductLabel = "generatorSmeared"
159  HepMCProductLabel = cms.InputTag('generatorSmeared'),
160  ApplyPCuts = cms.bool(True),
161  ApplyPtransCut = cms.bool(False),
162  MinPCut = cms.double(0.04), ## the cut is in GeV
163  MaxPCut = cms.double(99999.0), ## the pmax=99.TeV
164  ApplyEtaCuts = cms.bool(True),
165  MinEtaCut = cms.double(-5.5),
166  MaxEtaCut = cms.double(5.5),
167  RDecLenCut = cms.double(2.9), ## (cm) the cut on vertex radius
168  LDecLenCut = cms.double(30.0), ## (cm) decay volume length
169  ApplyPhiCuts = cms.bool(False),
170  MinPhiCut = cms.double(-3.14159265359), ## (radians)
171  MaxPhiCut = cms.double(3.14159265359), ## according to CMS conventions
172  ApplyLumiMonitorCuts = cms.bool(False), ## primary for lumi monitors
173  Verbosity = cms.untracked.int32(0)
174  ),
175  RunAction = cms.PSet(
176  StopFile = cms.string('StopRun')
177  ),
178  EventAction = cms.PSet(
179  debug = cms.untracked.bool(False),
180  StopFile = cms.string('StopRun'),
181  PrintRandomSeed = cms.bool(False),
182  CollapsePrimaryVertices = cms.bool(False)
183  ),
184  StackingAction = cms.PSet(
185  common_heavy_suppression,
186  common_maximum_time,
187  KillDeltaRay = cms.bool(False),
188  TrackNeutrino = cms.bool(False),
189  KillHeavy = cms.bool(False),
190  KillGamma = cms.bool(True),
191  GammaThreshold = cms.double(0.0001), ## (MeV)
192  SaveFirstLevelSecondary = cms.untracked.bool(False),
193  SavePrimaryDecayProductsAndConversionsInTracker = cms.untracked.bool(False),
194  SavePrimaryDecayProductsAndConversionsInCalo = cms.untracked.bool(False),
195  SavePrimaryDecayProductsAndConversionsInMuon = cms.untracked.bool(False),
196  SaveAllPrimaryDecayProductsAndConversions = cms.untracked.bool(True),
197  RusRoGammaEnergyLimit = cms.double(5.0), ## (MeV)
198  RusRoEcalGamma = cms.double(0.3),
199  RusRoHcalGamma = cms.double(0.3),
200  RusRoMuonIronGamma = cms.double(0.3),
201  RusRoPreShowerGamma = cms.double(0.3),
202  RusRoCastorGamma = cms.double(0.3),
203  RusRoWorldGamma = cms.double(0.3),
204  RusRoNeutronEnergyLimit = cms.double(10.0), ## (MeV)
205  RusRoEcalNeutron = cms.double(0.1),
206  RusRoHcalNeutron = cms.double(0.1),
207  RusRoMuonIronNeutron = cms.double(0.1),
208  RusRoPreShowerNeutron = cms.double(0.1),
209  RusRoCastorNeutron = cms.double(0.1),
210  RusRoWorldNeutron = cms.double(0.1),
211  RusRoProtonEnergyLimit = cms.double(0.0),
212  RusRoEcalProton = cms.double(1.0),
213  RusRoHcalProton = cms.double(1.0),
214  RusRoMuonIronProton = cms.double(1.0),
215  RusRoPreShowerProton = cms.double(1.0),
216  RusRoCastorProton = cms.double(1.0),
217  RusRoWorldProton = cms.double(1.0)
218  ),
219  TrackingAction = cms.PSet(
220  DetailedTiming = cms.untracked.bool(False),
221  CheckTrack = cms.untracked.bool(False)
222  ),
223  SteppingAction = cms.PSet(
224  common_maximum_time,
225  EkinNames = cms.vstring(),
226  EkinThresholds = cms.vdouble(),
227  EkinParticles = cms.vstring()
228  ),
229  TrackerSD = cms.PSet(
230  ZeroEnergyLoss = cms.bool(False),
231  PrintHits = cms.bool(False),
232  ElectronicSigmaInNanoSeconds = cms.double(12.06),
233  NeverAccumulate = cms.bool(False),
234  EnergyThresholdForPersistencyInGeV = cms.double(0.2),
235  EnergyThresholdForHistoryInGeV = cms.double(0.05)
236  ),
237  MuonSD = cms.PSet(
238  EnergyThresholdForPersistency = cms.double(1.0),
239  PrintHits = cms.bool(False),
240  AllMuonsPersistent = cms.bool(True)
241  ),
242  CaloSD = cms.PSet(
243  common_heavy_suppression,
244  SuppressHeavy = cms.bool(False),
245  EminTrack = cms.double(1.0),
246  TmaxHit = cms.double(1000.0),
247  HCNames = cms.vstring('EcalHitsEB','EcalHitsEE','EcalHitsES','HcalHits','ZDCHITS'),
248  EminHits = cms.vdouble(0.015,0.010,0.0,0.0,0.0),
249  EminHitsDepth = cms.vdouble(0.0,0.0,0.0,0.0,0.0),
250  TmaxHits = cms.vdouble(500.0,500.0,500.0,500.0,2000.0),
251  UseResponseTables = cms.vint32(0,0,0,0,0),
252  BeamPosition = cms.double(0.0),
253  CorrectTOFBeam = cms.bool(False),
254  DetailedTiming = cms.untracked.bool(False),
255  UseMap = cms.untracked.bool(False),
256  Verbosity = cms.untracked.int32(0),
257  CheckHits = cms.untracked.int32(25)
258  ),
259  CaloResponse = cms.PSet(
260  UseResponseTable = cms.bool(True),
261  ResponseScale = cms.double(1.0),
262  ResponseFile = cms.FileInPath('SimG4CMS/Calo/data/responsTBpim50.dat')
263  ),
264  ECalSD = cms.PSet(
265  common_UseLuminosity,
266  UseBirkLaw = cms.bool(True),
267  BirkL3Parametrization = cms.bool(True),
268  BirkSlope = cms.double(0.253694),
269  BirkCut = cms.double(0.1),
270  BirkC1 = cms.double(0.03333),
271  BirkC3 = cms.double(1.0),
272  BirkC2 = cms.double(0.0),
273  SlopeLightYield = cms.double(0.02),
274  StoreSecondary = cms.bool(False),
275  TimeSliceUnit = cms.double(1),
276  IgnoreTrackID = cms.bool(False),
277  XtalMat = cms.untracked.string('E_PbWO4'),
278  TestBeam = cms.untracked.bool(False),
279  NullNumbering = cms.untracked.bool(False),
280  StoreRadLength = cms.untracked.bool(False),
281  ScaleRadLength = cms.untracked.double(1.0),
282  StoreLayerTimeSim = cms.untracked.bool(False),
283  AgeingWithSlopeLY = cms.untracked.bool(False)
284  ),
285  HCalSD = cms.PSet(
286  common_UseLuminosity,
287  UseBirkLaw = cms.bool(True),
288  BirkC3 = cms.double(1.75),
289  BirkC2 = cms.double(0.142),
290  BirkC1 = cms.double(0.0052),
291  UseShowerLibrary = cms.bool(True),
292  UseParametrize = cms.bool(False),
293  UsePMTHits = cms.bool(False),
294  UseFibreBundleHits = cms.bool(False),
295  TestNumberingScheme = cms.bool(False),
296  doNeutralDensityFilter = cms.bool(False),
297  EminHitHB = cms.double(0.0),
298  EminHitHE = cms.double(0.0),
299  EminHitHO = cms.double(0.0),
300  EminHitHF = cms.double(0.0),
301  BetaThreshold = cms.double(0.7),
302  TimeSliceUnit = cms.double(1),
303  IgnoreTrackID = cms.bool(False),
304  HBDarkening = cms.bool(False),
305  HEDarkening = cms.bool(False),
306  HFDarkening = cms.bool(False),
307  UseHF = cms.untracked.bool(True),
308  ForTBH2 = cms.untracked.bool(False),
309  UseLayerWt = cms.untracked.bool(False),
310  WtFile = cms.untracked.string('None'),
311  TestNS = cms.untracked.bool(False),
312  HFDarkeningParameterBlock = HFDarkeningParameterBlock
313  ),
314  CaloTrkProcessing = cms.PSet(
315  TestBeam = cms.bool(False),
316  EminTrack = cms.double(0.01),
317  PutHistory = cms.bool(False)
318  ),
319  HFShower = cms.PSet(
320  common_UsePMT,
321  common_UseHF,
322  ProbMax = cms.double(1.0),
323  CFibre = cms.double(0.5),
324  PEPerGeV = cms.double(0.31),
325  TrackEM = cms.bool(False),
326  UseShowerLibrary = cms.bool(True),
327  UseHFGflash = cms.bool(False),
328  EminLibrary = cms.double(0.0),
329  OnlyLong = cms.bool(True),
330  LambdaMean = cms.double(350.0),
331  ApplyFiducialCut = cms.bool(True),
332  RefIndex = cms.double(1.459),
333  Aperture = cms.double(0.33),
334  ApertureTrapped = cms.double(0.22),
335  CosApertureTrapped= cms.double(0.5),
336  SinPsiMax = cms.untracked.double(0.5),
337  ParametrizeLast = cms.untracked.bool(False)
338  ),
339  HFShowerLibrary = cms.PSet(
340  FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'),
341  BackProbability = cms.double(0.2),
342  TreeEMID = cms.string('emParticles'),
343  TreeHadID = cms.string('hadParticles'),
344  Verbosity = cms.untracked.bool(False),
345  ApplyFiducialCut= cms.bool(True),
346  BranchPost = cms.untracked.string(''),
347  BranchEvt = cms.untracked.string(''),
348  BranchPre = cms.untracked.string('')
349  ),
350  HFShowerPMT = cms.PSet(
351  common_UsePMT,
352  common_UseHF,
353  PEPerGeVPMT = cms.double(1.0),
354  RefIndex = cms.double(1.52),
355  Aperture = cms.double(0.99),
356  ApertureTrapped = cms.double(0.22),
357  CosApertureTrapped= cms.double(0.5),
358  SinPsiMax = cms.untracked.double(0.5)
359  ),
360  HFShowerStraightBundle = cms.PSet(
361  common_UsePMT,
362  common_UseHF,
363  FactorBundle = cms.double(1.0),
364  RefIndex = cms.double(1.459),
365  Aperture = cms.double(0.33),
366  ApertureTrapped = cms.double(0.22),
367  CosApertureTrapped= cms.double(0.5),
368  SinPsiMax = cms.untracked.double(0.5)
369  ),
370  HFShowerConicalBundle = cms.PSet(
371  common_UsePMT,
372  common_UseHF,
373  FactorBundle = cms.double(1.0),
374  RefIndex = cms.double(1.459),
375  Aperture = cms.double(0.33),
376  ApertureTrapped = cms.double(0.22),
377  CosApertureTrapped= cms.double(0.5),
378  SinPsiMax = cms.untracked.double(0.5)
379  ),
380  HFGflash = cms.PSet(
381  BField = cms.untracked.double(3.8),
382  WatcherOn = cms.untracked.bool(True),
383  FillHisto = cms.untracked.bool(True)
384  ),
385  CastorSD = cms.PSet(
386  useShowerLibrary = cms.bool(True),
387  minEnergyInGeVforUsingSLibrary = cms.double(1.0),
388  nonCompensationFactor = cms.double(0.817),
389  Verbosity = cms.untracked.int32(0)
390  ),
391  CastorShowerLibrary = cms.PSet(
392  FileName = cms.FileInPath('SimG4CMS/Forward/data/CastorShowerLibrary_CMSSW500_Standard.root'),
393  BranchEvt = cms.untracked.string('hadShowerLibInfo.'),
394  BranchEM = cms.untracked.string('emParticles.'),
395  BranchHAD = cms.untracked.string('hadParticles.'),
396  Verbosity = cms.untracked.bool(False)
397  ),
398  BHMSD = cms.PSet(
399  Verbosity = cms.untracked.int32(0)
400  ),
401  FastTimerSD = cms.PSet(
402  Verbosity = cms.untracked.int32(0),
403  TimeSliceUnit = cms.double(0.001), #stepping = 1 ps (for timing)
404  IgnoreTrackID = cms.bool(False),
405  EminHit = cms.double(0.0),
406  CheckID = cms.untracked.bool(True),
407  ),
408  HGCSD = cms.PSet(
409  Verbosity = cms.untracked.int32(0),
410  TimeSliceUnit = cms.double(0.001), #stepping = 1 ps (for timing)
411  IgnoreTrackID = cms.bool(False),
412  EminHit = cms.double(0.0),
413  StoreAllG4Hits = cms.bool(False),
414  RejectMouseBite = cms.bool(False),
415  RotatedWafer = cms.bool(False),
416  WaferAngles = cms.untracked.vdouble(90.0,30.0),
417  WaferSize = cms.untracked.double(123.7),
418  MouseBite = cms.untracked.double(2.5),
419  CheckID = cms.untracked.bool(True),
420  ),
421  TotemSD = cms.PSet(
422  Verbosity = cms.untracked.int32(0)
423  ),
424  ZdcSD = cms.PSet(
425  Verbosity = cms.int32(0),
426  UseShowerLibrary = cms.bool(True),
427  UseShowerHits = cms.bool(False),
428  FiberDirection = cms.double(45.0),
429  ZdcHitEnergyCut = cms.double(10.0)
430  ),
431  ZdcShowerLibrary = cms.PSet(
432  Verbosity = cms.untracked.int32(0)
433  ),
434  FP420SD = cms.PSet(
435  Verbosity = cms.untracked.int32(2)
436  ),
437  BscSD = cms.PSet(
438  Verbosity = cms.untracked.int32(0)
439  ),
440  PltSD = cms.PSet(
441  EnergyThresholdForPersistencyInGeV = cms.double(0.2),
442  EnergyThresholdForHistoryInGeV = cms.double(0.05)
443  ),
444  Bcm1fSD = cms.PSet(
445  EnergyThresholdForPersistencyInGeV = cms.double(0.010),
446  EnergyThresholdForHistoryInGeV = cms.double(0.005)
447  ),
448  HcalTB02SD = cms.PSet(
449  UseBirkLaw = cms.untracked.bool(False),
450  BirkC1 = cms.untracked.double(0.013),
451  BirkC3 = cms.untracked.double(1.75),
452  BirkC2 = cms.untracked.double(0.0568)
453  ),
454  EcalTBH4BeamSD = cms.PSet(
455  UseBirkLaw = cms.bool(False),
456  BirkC1 = cms.double(0.013),
457  BirkC3 = cms.double(1.75),
458  BirkC2 = cms.double(0.0568)
459  ),
460  HGCalTestBeamSD = cms.PSet(
461  Material = cms.string('Scintillator'),
462  UseBirkLaw = cms.bool(False),
463  BirkC1 = cms.double(0.013),
464  BirkC3 = cms.double(1.75),
465  BirkC2 = cms.double(0.0568),
466  ),
467  HcalTB06BeamSD = cms.PSet(
468  UseBirkLaw = cms.bool(False),
469  BirkC1 = cms.double(0.013),
470  BirkC3 = cms.double(1.75),
471  BirkC2 = cms.double(0.0568)
472  ),
473  AHCalSD = cms.PSet(
474  UseBirkLaw = cms.bool(True),
475  BirkC3 = cms.double(1.75),
476  BirkC2 = cms.double(0.142),
477  BirkC1 = cms.double(0.0052),
478  EminHit = cms.double(0.0),
479  TimeSliceUnit = cms.double(1),
480  IgnoreTrackID = cms.bool(False),
481  ),
482 )
483 
484 
485 
488 from Configuration.Eras.Modifier_run2_common_cff import run2_common
489 run2_common.toModify( g4SimHits.HFShowerLibrary, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' )
490 from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
491 run2_HCAL_2017.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) )
492 from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
493 phase2_timing.toModify( g4SimHits.ECalSD,
494  StoreLayerTimeSim = cms.untracked.bool(True),
495  TimeSliceUnit = cms.double(0.001) )
HF Raddam Dose Class in /SimG4CMS/Calo.