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