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.string('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  AgeingWithSlopeLY = cms.untracked.bool(False)
283  ),
284  HCalSD = cms.PSet(
285  common_UseLuminosity,
286  UseBirkLaw = cms.bool(True),
287  BirkC3 = cms.double(1.75),
288  BirkC2 = cms.double(0.142),
289  BirkC1 = cms.double(0.0052),
290  UseShowerLibrary = cms.bool(True),
291  UseParametrize = cms.bool(False),
292  UsePMTHits = cms.bool(False),
293  UseFibreBundleHits = cms.bool(False),
294  TestNumberingScheme = cms.bool(False),
295  doNeutralDensityFilter = cms.bool(False),
296  EminHitHB = cms.double(0.0),
297  EminHitHE = cms.double(0.0),
298  EminHitHO = cms.double(0.0),
299  EminHitHF = cms.double(0.0),
300  BetaThreshold = cms.double(0.7),
301  TimeSliceUnit = cms.double(1),
302  IgnoreTrackID = cms.bool(False),
303  HBDarkening = cms.bool(False),
304  HEDarkening = cms.bool(False),
305  HFDarkening = cms.bool(False),
306  UseHF = cms.untracked.bool(True),
307  ForTBH2 = cms.untracked.bool(False),
308  UseLayerWt = cms.untracked.bool(False),
309  WtFile = cms.untracked.string('None'),
310  TestNS = cms.untracked.bool(False),
311  HFDarkeningParameterBlock = HFDarkeningParameterBlock
312  ),
313  CaloTrkProcessing = cms.PSet(
314  TestBeam = cms.bool(False),
315  EminTrack = cms.double(0.01),
316  PutHistory = cms.bool(False)
317  ),
318  HFShower = cms.PSet(
319  common_UsePMT,
320  common_UseHF,
321  ProbMax = cms.double(1.0),
322  CFibre = cms.double(0.5),
323  PEPerGeV = cms.double(0.31),
324  TrackEM = cms.bool(False),
325  UseShowerLibrary = cms.bool(True),
326  UseHFGflash = cms.bool(False),
327  EminLibrary = cms.double(0.0),
328  OnlyLong = cms.bool(True),
329  LambdaMean = cms.double(350.0),
330  ApplyFiducialCut = cms.bool(True),
331  RefIndex = cms.double(1.459),
332  Aperture = cms.double(0.33),
333  ApertureTrapped = cms.double(0.22),
334  CosApertureTrapped= cms.double(0.5),
335  SinPsiMax = cms.untracked.double(0.5),
336  ParametrizeLast = cms.untracked.bool(False)
337  ),
338  HFShowerLibrary = cms.PSet(
339  FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'),
340  BackProbability = cms.double(0.2),
341  TreeEMID = cms.string('emParticles'),
342  TreeHadID = cms.string('hadParticles'),
343  Verbosity = cms.untracked.bool(False),
344  ApplyFiducialCut= cms.bool(True),
345  BranchPost = cms.untracked.string(''),
346  BranchEvt = cms.untracked.string(''),
347  BranchPre = cms.untracked.string('')
348  ),
349  HFShowerPMT = cms.PSet(
350  common_UsePMT,
351  common_UseHF,
352  PEPerGeVPMT = cms.double(1.0),
353  RefIndex = cms.double(1.52),
354  Aperture = cms.double(0.99),
355  ApertureTrapped = cms.double(0.22),
356  CosApertureTrapped= cms.double(0.5),
357  SinPsiMax = cms.untracked.double(0.5)
358  ),
359  HFShowerStraightBundle = cms.PSet(
360  common_UsePMT,
361  common_UseHF,
362  FactorBundle = cms.double(1.0),
363  RefIndex = cms.double(1.459),
364  Aperture = cms.double(0.33),
365  ApertureTrapped = cms.double(0.22),
366  CosApertureTrapped= cms.double(0.5),
367  SinPsiMax = cms.untracked.double(0.5)
368  ),
369  HFShowerConicalBundle = cms.PSet(
370  common_UsePMT,
371  common_UseHF,
372  FactorBundle = cms.double(1.0),
373  RefIndex = cms.double(1.459),
374  Aperture = cms.double(0.33),
375  ApertureTrapped = cms.double(0.22),
376  CosApertureTrapped= cms.double(0.5),
377  SinPsiMax = cms.untracked.double(0.5)
378  ),
379  HFGflash = cms.PSet(
380  BField = cms.untracked.double(3.8),
381  WatcherOn = cms.untracked.bool(True),
382  FillHisto = cms.untracked.bool(True)
383  ),
384  CastorSD = cms.PSet(
385  useShowerLibrary = cms.bool(True),
386  minEnergyInGeVforUsingSLibrary = cms.double(1.0),
387  nonCompensationFactor = cms.double(0.817),
388  Verbosity = cms.untracked.int32(0)
389  ),
390  CastorShowerLibrary = cms.PSet(
391  FileName = cms.FileInPath('SimG4CMS/Forward/data/CastorShowerLibrary_CMSSW500_Standard.root'),
392  BranchEvt = cms.untracked.string('hadShowerLibInfo.'),
393  BranchEM = cms.untracked.string('emParticles.'),
394  BranchHAD = cms.untracked.string('hadParticles.'),
395  Verbosity = cms.untracked.bool(False)
396  ),
397  BHMSD = cms.PSet(
398  Verbosity = cms.untracked.int32(0)
399  ),
400  FastTimerSD = cms.PSet(
401  Verbosity = cms.untracked.int32(0),
402  TimeSliceUnit = cms.double(0.001), #stepping = 1 ps (for timing)
403  IgnoreTrackID = cms.bool(False),
404  EminHit = cms.double(0.0),
405  CheckID = cms.untracked.bool(True),
406  ),
407  HGCSD = cms.PSet(
408  Verbosity = cms.untracked.int32(0),
409  TimeSliceUnit = cms.double(0.001), #stepping = 1 ps (for timing)
410  IgnoreTrackID = cms.bool(False),
411  EminHit = cms.double(0.0),
412  RejectMouseBite = cms.bool(False),
413  RotatedWafer = cms.bool(False),
414  WaferAngles = cms.untracked.vdouble(90.0,30.0),
415  WaferSize = cms.untracked.double(123.7),
416  MouseBite = cms.untracked.double(2.5),
417  CheckID = cms.untracked.bool(True),
418  ),
419  TotemSD = cms.PSet(
420  Verbosity = cms.untracked.int32(0)
421  ),
422  ZdcSD = cms.PSet(
423  Verbosity = cms.int32(0),
424  UseShowerLibrary = cms.bool(True),
425  UseShowerHits = cms.bool(False),
426  FiberDirection = cms.double(45.0),
427  ZdcHitEnergyCut = cms.double(10.0)
428  ),
429  ZdcShowerLibrary = cms.PSet(
430  Verbosity = cms.untracked.int32(0)
431  ),
432  FP420SD = cms.PSet(
433  Verbosity = cms.untracked.int32(2)
434  ),
435  BscSD = cms.PSet(
436  Verbosity = cms.untracked.int32(0)
437  ),
438  PltSD = cms.PSet(
439  EnergyThresholdForPersistencyInGeV = cms.double(0.2),
440  EnergyThresholdForHistoryInGeV = cms.double(0.05)
441  ),
442  Bcm1fSD = cms.PSet(
443  EnergyThresholdForPersistencyInGeV = cms.double(0.010),
444  EnergyThresholdForHistoryInGeV = cms.double(0.005)
445  ),
446  HcalTB02SD = cms.PSet(
447  UseBirkLaw = cms.untracked.bool(False),
448  BirkC1 = cms.untracked.double(0.013),
449  BirkC3 = cms.untracked.double(1.75),
450  BirkC2 = cms.untracked.double(0.0568)
451  ),
452  EcalTBH4BeamSD = cms.PSet(
453  UseBirkLaw = cms.bool(False),
454  BirkC1 = cms.double(0.013),
455  BirkC3 = cms.double(1.75),
456  BirkC2 = cms.double(0.0568)
457  ),
458  HGCalTestBeamSD = cms.PSet(
459  Material = cms.string('Scintillator'),
460  UseBirkLaw = cms.bool(False),
461  BirkC1 = cms.double(0.013),
462  BirkC3 = cms.double(1.75),
463  BirkC2 = cms.double(0.0568),
464  ),
465  HcalTB06BeamSD = cms.PSet(
466  UseBirkLaw = cms.bool(False),
467  BirkC1 = cms.double(0.013),
468  BirkC3 = cms.double(1.75),
469  BirkC2 = cms.double(0.0568)
470  ),
471  AHCalSD = cms.PSet(
472  UseBirkLaw = cms.bool(True),
473  BirkC3 = cms.double(1.75),
474  BirkC2 = cms.double(0.142),
475  BirkC1 = cms.double(0.0052),
476  EminHit = cms.double(0.0),
477  TimeSliceUnit = cms.double(1),
478  IgnoreTrackID = cms.bool(False),
479  ),
480 )
481 
482 
483 
486 from Configuration.Eras.Modifier_run2_common_cff import run2_common
487 run2_common.toModify( g4SimHits.HFShowerLibrary, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' )
488 from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
489 run2_HCAL_2017.toModify( g4SimHits, HCalSD = dict( TestNumberingScheme = True ) )
490 from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
491 phase2_timing.toModify( g4SimHits.ECalSD,
492  StoreLayerTimeSim = cms.untracked.bool(True),
493  TimeSliceUnit = cms.double(0.001) )
HF Raddam Dose Class in /SimG4CMS/Calo.