Skip to content

Instantly share code, notes, and snippets.

@giorgiopizz
Created April 22, 2024 08:27
Show Gist options
  • Save giorgiopizz/60cf00bb3f897cf2259cba0f39102cd8 to your computer and use it in GitHub Desktop.
Save giorgiopizz/60cf00bb3f897cf2259cba0f39102cd8 to your computer and use it in GitHub Desktop.
Produce nanoGEN in CMSSW
# Auto generated configuration file
# using:
# Revision: 1.19
# Source: /local/reps/CMSSW/CMSSW/Configuration/Applications/python/ConfigBuilder.py,v
# with command line options: Configuration/GenProduction/python/HIG.py --python_filename HIG_cfg.py --eventcontent NANOAODGEN --customise Configuration/DataProcessing/Utils.addMonitoring --datatier NANOAOD --fileout file:HIG-RunIISummer20UL18wmLHEGEN-01277.root --conditions 106X_upgrade2018_realistic_v4 --beamspot Realistic25ns13TeVEarly2018Collision --geometry DB:Extended --step LHE,GEN,NANOGEN --era Run2_2018 --no_exec --mc -n 10
import FWCore.ParameterSet.Config as cms
from FWCore.ParameterSet.VarParsing import VarParsing
options = VarParsing ('analysis')
options.register('jobNum', 0, VarParsing.multiplicity.singleton,VarParsing.varType.int,"jobNum")
options.register('nEvents', 0, VarParsing.multiplicity.singleton,VarParsing.varType.int,"nEvents")
options.register('nThreads', 1, VarParsing.multiplicity.singleton,VarParsing.varType.int,"nThreads")
options.register('gridpack','./Zjj_ewk_dim6_all_slc7_amd64_gcc700_CMSSW_10_6_19_tarball.tar.xz',VarParsing.multiplicity.singleton,VarParsing.varType.string,"gridpack"),
options.parseArguments()
from Configuration.Eras.Era_Run2_2018_cff import Run2_2018
process = cms.Process('NANOGEN',Run2_2018)
# import of standard configurations
process.load('Configuration.StandardSequences.Services_cff')
process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
process.load('FWCore.MessageService.MessageLogger_cfi')
process.load('Configuration.EventContent.EventContent_cff')
process.load('SimGeneral.MixingModule.mixNoPU_cfi')
process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
process.load('Configuration.StandardSequences.MagneticField_cff')
process.load('Configuration.StandardSequences.Generator_cff')
process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic25ns13TeVEarly2018Collision_cfi')
process.load('GeneratorInterface.Core.genFilterSummary_cff')
process.load('PhysicsTools.NanoAOD.nanogen_cff')
process.load('Configuration.StandardSequences.EndOfProcess_cff')
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(options.nEvents)
)
# Input source
process.source = cms.Source("EmptySource",
firstLuminosityBlock = cms.untracked.uint32(options.jobNum),
numberEventsInLuminosityBlock = cms.untracked.uint32(options.nEvents)
)
process.options = cms.untracked.PSet(
)
process.options.numberOfThreads = cms.untracked.uint32(options.nThreads)
process.options.numberOfStreams = cms.untracked.uint32(options.nThreads)
process.options.wantSummary = cms.untracked.bool(True)
# Production Info
process.configurationMetadata = cms.untracked.PSet(
annotation = cms.untracked.string('Configuration/GenProduction/python/HIG.py nevts:10'),
name = cms.untracked.string('Applications'),
version = cms.untracked.string('$Revision: 1.19 $')
)
# Output definition
process.NANOAODGENoutput = cms.OutputModule("NanoAODOutputModule",
SelectEvents = cms.untracked.PSet(
SelectEvents = cms.vstring('generation_step')
),
compressionAlgorithm = cms.untracked.string('LZMA'),
compressionLevel = cms.untracked.int32(9),
dataset = cms.untracked.PSet(
dataTier = cms.untracked.string('NANOAOD'),
filterName = cms.untracked.string('')
),
fileName = cms.untracked.string('file:nanoAOD.root'),
outputCommands = process.NANOAODGENEventContent.outputCommands
)
# Additional output definition
# Other statements
process.genstepfilter.triggerConditions=cms.vstring("generation_step")
from Configuration.AlCa.GlobalTag import GlobalTag
process.GlobalTag = GlobalTag(process.GlobalTag, '106X_upgrade2018_realistic_v4', '')
from Configuration.Generator.Pythia8CommonSettings_cfi import pythia8CommonSettingsBlock
from Configuration.Generator.MCTunes2017.PythiaCP5Settings_cfi import pythia8CP5SettingsBlock
from Configuration.Generator.PSweightsPythia.PythiaPSweightsSettings_cfi import pythia8PSweightsSettingsBlock
process.generator = cms.EDFilter("Pythia8ConcurrentHadronizerFilter",
PythiaParameters = cms.PSet(
pythia8CommonSettingsBlock,
pythia8CP5SettingsBlock,
pythia8PSweightsSettingsBlock,
processParameters = cms.vstring(
'SpaceShower:dipoleRecoil = on'
),
parameterSets = cms.vstring(
'pythia8CommonSettings',
'pythia8CP5Settings',
'pythia8PSweightsSettings',
'processParameters'
),
),
comEnergy = cms.double(13000.0),
filterEfficiency = cms.untracked.double(1.0),
maxEventsToPrint = cms.untracked.int32(1),
pythiaHepMCVerbosity = cms.untracked.bool(False),
pythiaPylistVerbosity = cms.untracked.int32(1)
)
import os,random
process.externalLHEProducer = cms.EDProducer("ExternalLHEProducer",
#args = cms.vstring('/gwpool/users/gpizzati/gp_nlo/VBF_W-Z_slc7_amd64_gcc700_CMSSW_10_6_39_VBF_Z_mm_13TeV.tgz'),
#args = cms.vstring(os.environ['PWD']+"/" + options.inputGridpack),
args = cms.vstring(os.environ['PWD']+"/" + options.gridpack),
nEvents = cms.untracked.uint32(options.nEvents),
#generateConcurrently = cms.untracked.bool(True),
numberOfParameters = cms.uint32(1),
outputFile = cms.string('cmsgrid_final.lhe'),
scriptName = cms.FileInPath('GeneratorInterface/LHEInterface/data/run_generic_tarball_cvmfs.sh')
)
random.seed = os.urandom(1000)
process.RandomNumberGeneratorService.externalLHEProducer.initialSeed = random.randint(0,999999999)
process.RandomNumberGeneratorService.generator.initialSeed = random.randint(0,999999999)
process.ProductionFilterSequence = cms.Sequence(process.generator)
# Path and EndPath definitions
process.lhe_step = cms.Path(process.externalLHEProducer)
process.generation_step = cms.Path(process.pgen)
process.nanoAOD_step = cms.Path(process.nanogenSequence)
process.genfiltersummary_step = cms.EndPath(process.genFilterSummary)
process.endjob_step = cms.EndPath(process.endOfProcess)
process.NANOAODGENoutput_step = cms.EndPath(process.NANOAODGENoutput)
# Schedule definition
process.schedule = cms.Schedule(process.lhe_step,process.generation_step,process.genfiltersummary_step,process.nanoAOD_step,process.endjob_step,process.NANOAODGENoutput_step)
from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask
associatePatAlgosToolsTask(process)
# filter all path with the production filter sequence
for path in process.paths:
if path in ['lhe_step']: continue
getattr(process,path).insert(0, process.ProductionFilterSequence)
# customisation of the process.
# Automatic addition of the customisation function from PhysicsTools.NanoAOD.nanogen_cff
from PhysicsTools.NanoAOD.nanogen_cff import customizeNanoGEN
#call to customisation function customizeNanoGEN imported from PhysicsTools.NanoAOD.nanogen_cff
process = customizeNanoGEN(process)
# Automatic addition of the customisation function from Configuration.DataProcessing.Utils
from Configuration.DataProcessing.Utils import addMonitoring
#call to customisation function addMonitoring imported from Configuration.DataProcessing.Utils
process = addMonitoring(process)
# End of customisation functions
# Customisation from command line
# Add early deletion of temporary data products to reduce peak memory need
from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete
process = customiseEarlyDelete(process)
# End adding early deletion
#!/bin/bash
set -e
BASE=$PWD
RELEASE_BASE=$CMSSW_BASE
export SCRAM_ARCH=slc7_amd64_gcc700
source /cvmfs/cms.cern.ch/cmsset_default.sh
cd $RELEASE_BASE
eval `scram runtime -sh`
cd $BASE
splits=($(echo $4 | tr "=" " "))
gp=${splits[1]}
echo $gp
splits=($(echo $5 | tr "=" " "))
config=${splits[1]}
source /cvmfs/cms.cern.ch/cmsset_default.sh
cmsrel CMSSW_10_6_30_patch1
cd CMSSW_10_6_30_patch1/src; cmsenv; cd -
echo $CMSSW_BASE
xrdcp -f root://eoscms.cern.ch//store/group/offcomp_upgrade-sw/gpizzati/gps/${gp} .
ls ./${gp}
#tar -xzvf CMSSW_nano.tgz
echo "cmsRun -e -j FrameworkJobReport.xml ${config} jobNum="$1" "$2" "$3" gridpack="$gp" "
cmsRun -e -j FrameworkJobReport.xml ${config} jobNum=$1 $2 $3 gridpack=${gp}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment