Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-05 03:15:18

0001 ###############################################################################
0002 # Way to use this:
0003 #   cmsRun minbias2021_cfg.py type=DDD var=ZeroMaterial
0004 #
0005 #   Options for type: DDD, DD4hep
0006 #           for var: ZeroMaterial, FlatMinus05Percent, FlatMinus10Percent,
0007 #                    FlatPlus05Percent, FlatPlus10Percent
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('type',
0018                  "DD4hep",
0019                   VarParsing.VarParsing.multiplicity.singleton,
0020                   VarParsing.VarParsing.varType.string,
0021                   "type of operations: DDD, DD4hep")
0022 options.register('var',
0023                  "",
0024                   VarParsing.VarParsing.multiplicity.singleton,
0025                   VarParsing.VarParsing.varType.string,
0026                   "var of operations: ZeroMaterial, FlatMinus05Percent, FlatMinus10Percent, FlatPlus05Percent, FlatPlus10Percent")
0027 
0028 ### get and parse the command line arguments
0029 options.parseArguments()
0030 
0031 print(options)
0032 
0033 ####################################################################
0034 # Use the options
0035 if (options.type == "DD4hep"):
0036     from Configuration.Eras.Era_Run3_cff import Run3
0037     process = cms.Process("Sim",Run3)
0038     geomfile = "Configuration.Geometry.GeometryDD4hepExtended2021" + options.var + "Reco_cff"
0039     outfile = "minbias_FTFP_BERT_EMM_" + options.var + "_DD4hep.root"
0040 else:
0041     from Configuration.Eras.Era_Run3_DDD_cff import Run3_DDD
0042     process = cms.Process("Sim",Run3_DDD)
0043     geomfile = "Configuration.Geometry.GeometryExtended2021" + options.var + "Reco_cff"
0044     outfile = "minbias_FTFP_BERT_EMM_" + options.var + "_DDD.root"
0045 
0046 print("Geometry file: ", geomfile)
0047 print("Output file:   ", outfile)
0048 
0049 process.load("SimG4CMS.Calo.PythiaMinBias_cfi")
0050 process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
0051 process.load('FWCore.MessageService.MessageLogger_cfi')
0052 process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi")
0053 process.load(geomfile)
0054 process.load("Configuration.StandardSequences.MagneticField_cff")
0055 process.load("Configuration.EventContent.EventContent_cff")
0056 process.load('Configuration.StandardSequences.Generator_cff')
0057 process.load('Configuration.StandardSequences.SimIdeal_cff')
0058 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0059 from Configuration.AlCa.GlobalTag import GlobalTag
0060 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '')
0061 
0062 if 'MessageLogger' in process.__dict__:
0063     process.MessageLogger.G4cerr=dict()
0064     process.MessageLogger.SimG4CoreApplication=dict()
0065 
0066 process.source = cms.Source("EmptySource")
0067 
0068 process.maxEvents = cms.untracked.PSet(
0069     input = cms.untracked.int32(2)
0070 )
0071 
0072 process.Timing = cms.Service("Timing")
0073 
0074 process.SimpleMemoryCheck = cms.Service("SimpleMemoryCheck",
0075     oncePerEventMode = cms.untracked.bool(True),
0076     showMallocInfo = cms.untracked.bool(True),
0077     ignoreTotal = cms.untracked.int32(1)
0078 )
0079 
0080 process.load("IOMC.RandomEngine.IOMC_cff")
0081 process.RandomNumberGeneratorService.generator.initialSeed = 456789
0082 process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876
0083 process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789
0084 process.rndmStore = cms.EDProducer("RandomEngineStateProducer")
0085 
0086 process.TFileService = cms.Service("TFileService",
0087     fileName = cms.string('minbias_FTFP_BERT_EMM.root')
0088 )
0089 
0090 # Event output
0091 process.output = cms.OutputModule("PoolOutputModule",
0092     process.FEVTSIMEventContent,
0093     fileName = cms.untracked.string(outfile)
0094 )
0095 
0096 process.generation_step = cms.Path(process.pgen)
0097 process.simulation_step = cms.Path(process.psim)
0098 process.out_step = cms.EndPath(process.output)
0099 
0100 process.g4SimHits.Physics.type = 'SimG4Core/Physics/FTFP_BERT_EMM'
0101 
0102 # Schedule definition                                                          
0103 process.schedule = cms.Schedule(process.generation_step,
0104                                 process.simulation_step,
0105                                 process.out_step
0106                                 )
0107 
0108 # filter all path with the production filter sequence                          
0109 for path in process.paths:
0110         getattr(process,path)._seq = process.generator * getattr(process,path)._seq
0111