Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-29 03:17:58

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun SimRun4_cfg.py geometry=D110 type=DDD data=Muon
0004 #
0005 #   Options for geometry: D110, D120
0006 #               type: DDD, DD4hep
0007 #               data: Muon, MinBias
0008 #
0009 ###############################################################################
0010 import FWCore.ParameterSet.Config as cms
0011 import os, sys, importlib, re, random
0012 import FWCore.ParameterSet.VarParsing as VarParsing
0013 
0014 ####################################################################
0015 ### SETUP OPTIONS
0016 options = VarParsing.VarParsing('standard')
0017 options.register('geometry',
0018                  "D110",
0019                   VarParsing.VarParsing.multiplicity.singleton,
0020                   VarParsing.VarParsing.varType.string,
0021                   "geometry of operations: D110, D120")
0022 options.register('type',
0023                  "DDD",
0024                   VarParsing.VarParsing.multiplicity.singleton,
0025                   VarParsing.VarParsing.varType.string,
0026                   "type of operations: DDD, DD4hep")
0027 options.register('data',
0028                  "Muon",
0029                  VarParsing.VarParsing.multiplicity.singleton,
0030                  VarParsing.VarParsing.varType.string,
0031                  "data of operations: Muon, MinBias")
0032 
0033 ### get and parse the command line arguments
0034 options.parseArguments()
0035 
0036 print(options)
0037 
0038 ####################################################################
0039 # Use the options
0040 
0041 geomName = "Run4" + options.geometry
0042 import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings
0043 GLOBAL_TAG, ERA = _settings.get_era_and_conditions(geomName)
0044 
0045 if (options.type == "DD4hep"):
0046     from Configuration.ProcessModifiers.dd4hep_cff import dd4hep
0047     process = cms.Process('SimRun4',ERA,dd4hep)
0048     geomFile = "Configuration.Geometry.Geometry" + options.type +"Extended" + geomName + "Reco_cff"
0049 else:
0050     process = cms.Process('SimRun4',ERA)
0051     geomFile = "Configuration.Geometry.GeometryExtended" + geomName + "Reco_cff"
0052 
0053 inFile = "file:step0" + options.data + ".root"
0054 outFile = "file:step1" + options.type + options.geometry + options.data + ".root"
0055 tFile = "file:" + options.type + options.geometry + options.data + ".root"
0056 
0057 print("Geometry file:   ", geomFile)
0058 print("Global Tag Name: ", GLOBAL_TAG)
0059 print("Era Name:        ", ERA)
0060 print("Input file:      ", inFile)
0061 print("Output file:     ", outFile)
0062 print("Histogram file:  ", tFile)
0063 
0064 process.load(geomFile)
0065 process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
0066 process.load("FWCore.MessageService.MessageLogger_cfi")
0067 process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi")
0068 process.load("Configuration.StandardSequences.MagneticField_cff")
0069 process.load("Configuration.EventContent.EventContent_cff")
0070 process.load("Configuration.StandardSequences.SimIdeal_cff")
0071 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0072 from Configuration.AlCa.GlobalTag import GlobalTag
0073 process.GlobalTag = GlobalTag(process.GlobalTag, GLOBAL_TAG, '')
0074 
0075 process.source = cms.Source("PoolSource",
0076     dropDescendantsOfDroppedBranches = cms.untracked.bool(False),
0077     fileNames = cms.untracked.vstring(inFile),
0078     secondaryFileNames = cms.untracked.vstring()
0079 )
0080 
0081 process.maxEvents = cms.untracked.PSet(
0082     input = cms.untracked.int32(-1),
0083     output = cms.optional.untracked.allowed(cms.int32,cms.PSet)
0084 )
0085 
0086 if 'MessageLogger' in process.__dict__:
0087     process.MessageLogger.G4cerr=dict()
0088     process.MessageLogger.HitStudy=dict()
0089     process.MessageLogger.HGCSim=dict()
0090 #   process.MessageLogger.SensitiveDetector=dict()
0091 
0092 process.Timing = cms.Service("Timing")
0093 
0094 process.load("IOMC.RandomEngine.IOMC_cff")
0095 process.RandomNumberGeneratorService.generator.initialSeed = 456789
0096 process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
0097 process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789
0098 process.rndmStore = cms.EDProducer("RandomEngineStateProducer")
0099 
0100 # Event output
0101 process.output = cms.OutputModule("PoolOutputModule",
0102     process.FEVTSIMEventContent,
0103     fileName = cms.untracked.string(outFile)
0104 )
0105 
0106 process.load("SimG4CMS.Calo.hgcalHitCheck_cff")
0107 process.TFileService = cms.Service("TFileService",
0108                                    fileName = cms.string(tFile)
0109 )
0110 
0111 process.simulation_step = cms.Path(process.psim)
0112 process.out_step = cms.EndPath(process.output)
0113 process.analysis_step1 = cms.EndPath(process.hgcalHitCheckEE)
0114 process.analysis_step2 = cms.EndPath(process.hgcalHitCheckHEF)
0115 process.analysis_step3 = cms.EndPath(process.hgcalHitCheckHEB)
0116 
0117 process.g4SimHits.Physics.type = 'SimG4Core/Physics/FTFP_BERT_EMM'
0118 process.g4SimHits.HGCSD.Verbosity = 0
0119 
0120 # Schedule definition
0121 process.schedule = cms.Schedule(process.simulation_step,
0122                                 process.out_step,
0123                                 process.analysis_step1,
0124                                 process.analysis_step2,
0125                                 process.analysis_step3,
0126                                 )