From 659103dd28a91ef0c2c86f2f29c790eb2cd5098b Mon Sep 17 00:00:00 2001 From: cosbyc Date: Fri, 6 Jun 2025 18:00:25 -0500 Subject: [PATCH] add summer24 --- campaigns/Run3Summer24wmLHEGS/run.sh | 206 +++++++++++++++++++++ campaigns/Run3Summer24wmLHEGS/setup_env.sh | 40 ++++ firsttime.sh | 3 +- 3 files changed, 248 insertions(+), 1 deletion(-) create mode 100755 campaigns/Run3Summer24wmLHEGS/run.sh create mode 100755 campaigns/Run3Summer24wmLHEGS/setup_env.sh diff --git a/campaigns/Run3Summer24wmLHEGS/run.sh b/campaigns/Run3Summer24wmLHEGS/run.sh new file mode 100755 index 0000000..75edfd9 --- /dev/null +++ b/campaigns/Run3Summer24wmLHEGS/run.sh @@ -0,0 +1,206 @@ +# Run private production using Run3Summer24 settings. +# Local example: +# source run.sh MyMCName /path/to/fragment.py 1000 1 1 filelist:/path/to/pileup/list.txt +# +# Batch example: +# python crun.py MyMCName /path/to/fragment.py --outEOS /store/user/myname/somefolder --keepMini --nevents_job 10000 --njobs 100 --env +# See crun.py for full options, especially regarding transfer of outputs. +# Make sure your gridpack is somewhere readable, e.g. EOS or CVMFS. +# Make sure to run setup_env.sh first to create a CMSSW tarball (have to patch the DR step to avoid taking forever to uniqify the list of 300K pileup files) +echo $@ + +if [ -z "$1" ]; then + echo "Argument 1 (name of job) is mandatory." + return 1 +fi +NAME=$1 + +if [ -z $2 ]; then + echo "Argument 2 (fragment path) is mandatory." + return 1 +fi +FRAGMENT=$2 +echo "Input arg 2 = $FRAGMENT" +FRAGMENT=$(readlink -e $FRAGMENT) +echo "After readlink fragment = $FRAGMENT" + +if [ -z "$3" ]; then + NEVENTS=100 +else + NEVENTS=$3 +fi + +if [ -z "$4" ]; then + JOBINDEX=1 +else + JOBINDEX=$4 +fi + +if [ -z "$5" ]; then + MAX_NTHREADS=1 +else + MAX_NTHREADS=1 +fi +RSEED=$((JOBINDEX * MAX_NTHREADS * 4 + 1001 + $RANDOM)) # Space out seeds; Madgraph concurrent mode adds idx(thread) to random seed. The extra *4 is a paranoia factor. + +if [ -z "$6" ]; then + PILEUP_FILELIST="dbs:/Neutrino_E-10_gun/Run3Summer21PrePremix-Summer23_130X_mcRun3_2023_realistic_v13-v1/PREMIX" +else + PILEUP_FILELIST="filelist:$6" +fi + +echo "Fragment=$FRAGMENT" +echo "Job name=$NAME" +echo "NEvents=$NEVENTS" +echo "Random seed=$RSEED" +echo "Pileup filelist=$PILEUP_FILELIST" + +TOPDIR=$PWD + +export SCRAM_ARCH=el8_amd64_gcc12 + +source /cvmfs/cms.cern.ch/cmsset_default.sh +if [ -r CMSSW_14_0_19/src ] ; then + echo release CMSSW_14_0_19 already exists +else + scram p CMSSW CMSSW_14_0_19 +fi +cd CMSSW_14_0_19/src +eval `scram runtime -sh` + +mv ../../Configuration . +scram b +cd ../.. + +# wmLHE +mkdir -pv $CMSSW_BASE/src/Configuration/GenProduction/python +cp $FRAGMENT $CMSSW_BASE/src/Configuration/GenProduction/python/fragment.py +if [ ! -f "$CMSSW_BASE/src/Configuration/GenProduction/python/fragment.py" ]; then + echo "Fragment copy failed" + exit 1 +fi +cd $CMSSW_BASE/src +scram b +cd $TOPDIR + +#cat $CMSSW_BASE/src/Configuration/GenProduction/python/fragment.py + +cmsDriver.py Configuration/GenProduction/python/fragment.py \ + --era Run3_2024 \ + --customise Configuration/DataProcessing/Utils.addMonitoring \ + --beamspot DBrealistic \ + --step LHE,GEN,SIM \ + --geometry DB:Extended \ + --conditions 140X_mcRun3_2024_realistic_v26 \ + --customise_commands process.RandomNumberGeneratorService.externalLHEProducer.initialSeed=${RSEED}\\nprocess.source.numberEventsInLuminosityBlock="cms.untracked.uint32(1000)" \ + --datatier GEN-SIM,LHE \ + --eventcontent RAWSIM,LHE \ + --python_filename Run3Summer24wmLHE_${NAME}_cfg.py \ + --nThreads $(( $MAX_NTHREADS < 8 ? $MAX_NTHREADS : 8 )) \ + --fileout file:Run3Summer24wmLHEGS_$NAME_$JOBINDEX.root \ + --number $NEVENTS \ + --number_out $NEVENTS \ + --no_exec \ + --mc +cmsRun "Run3Summer24wmLHE_${NAME}_cfg.py" +if [ ! -f "Run3Summer24wmLHEGS_$NAME_$JOBINDEX.root" ]; then + echo "Run3Summer24wmLHEGS_$NAME_$JOBINDEX.root not found. Exiting." + return 1 +fi + +# DIGIPremix +cd $TOPDIR +cmsDriver.py \ + --era Run3_2024 \ + --customise Configuration/DataProcessing/Utils.addMonitoring \ + --procModifiers premix_stage2 \ + --datamix PreMix \ + --step DIGI,DATAMIX,L1,DIGI2RAW,HLT:2024v14 \ + --geometry DB:Extended \ + --conditions 140X_mcRun3_2024_realistic_v26 \ + --datatier GEN-SIM-RAW \ + --eventcontent PREMIXRAW \ + --python_filename "Run3Summer24DRPremix0_${NAME}_cfg.py" \ + --filein "file:Run3Summer24wmLHEGS_$NAME_$JOBINDEX.root" \ + --fileout "file:Run3Summer24DRPremix0_$NAME_$JOBINDEX.root" \ + --number $NEVENTS \ + --number_out $NEVENTS \ + --pileup_input "dbs:/Neutrino_E-10_gun/RunIIISummer24PrePremix-Premixlib2024_140X_mcRun3_2024_realistic_v26-v1/PREMIX" \ + --no_exec \ + --nThreads $(( $MAX_NTHREADS < 8 ? $MAX_NTHREADS : 8 )) \ + --mc +cmsRun "Run3Summer24DRPremix0_${NAME}_cfg.py" +if [ ! -f "Run3Summer24DRPremix0_$NAME_$JOBINDEX.root" ]; then + echo "Run3Summer24DRPremix0_$NAME_$JOBINDEX.root not found. Exiting." + return 1 +fi + +#RECO +cmsDriver.py \ + --era Run3_2024 \ + --customise Configuration/DataProcessing/Utils.addMonitoring \ + --step RAW2DIGI,L1Reco,RECO,RECOSIM \ + --geometry DB:Extended \ + --conditions 140X_mcRun3_2024_realistic_v26 \ + --datatier AODSIM \ + --eventcontent AODSIM \ + --python_filename "Run3Summer24DRPremix_${NAME}_cfg.py" \ + --filein "file:Run3Summer24DRPremix0_$NAME_$JOBINDEX.root" \ + --fileout "file:Run3Summer24RECO_$NAME_$JOBINDEX.root" \ + --number $NEVENTS \ + --number_out $NEVENTS \ + --nThreads $(( $MAX_NTHREADS < 8 ? $MAX_NTHREADS : 8 )) \ + --no_exec \ + --mc +cmsRun "Run3Summer24DRPremix_${NAME}_cfg.py" +if [ ! -f "Run3Summer24RECO_$NAME_$JOBINDEX.root" ]; then + echo "Run3Summer24RECO_$NAME_$JOBINDEX.root not found. Exiting." + return 1 +fi + +# MINIAOD +cmsDriver.py \ + --era Run3_2024 \ + --customise Configuration/DataProcessing/Utils.addMonitoring \ + --step PAT \ + --geometry DB:Extended \ + --conditions 140X_mcRun3_2024_realistic_v26 \ + --datatier MINIAODSIM \ + --eventcontent MINIAODSIM \ + --python_filename "Run3Summer24MiniAOD_${NAME}_cfg.py" \ + --filein "file:Run3Summer24RECO_$NAME_$JOBINDEX.root" \ + --fileout "file:Run3Summer24MiniAOD_$NAME_$JOBINDEX.root" \ + --nThreads $(( $MAX_NTHREADS < 8 ? $MAX_NTHREADS : 8 )) \ + --number $NEVENTS \ + --number_out $NEVENTS \ + --no_exec \ + --mc + +cmsRun "Run3Summer24MiniAOD_${NAME}_cfg.py" +if [ ! -f "Run3Summer24MiniAOD_$NAME_$JOBINDEX.root" ]; then + echo "Run3Summer24MiniAOD_$NAME_$JOBINDEX.root not found. Exiting." + return 1 +fi + +#NanoAODv12 +cmsDriver.py \ + --scenario pp \ + --era Run3_2024 \ + --customise Configuration/DataProcessing/Utils.addMonitoring \ + --step NANO \ + --conditions 140X_mcRun3_2024_realistic_v26 \ + --datatier NANOAODSIM \ + --eventcontent NANOAODSIM \ + --python_filename "Run3Summer24NanoAODv12_${NAME}_cfg.py" \ + --filein "file:Run3Summer24MiniAOD_$NAME_$JOBINDEX.root" \ + --fileout "file:Run3Summer24NanoAODv12_$NAME_$JOBINDEX.root" \ + --number $NEVENTS \ + --number_out $NEVENTS \ + --no_exec \ + --nThreads $(( $MAX_NTHREADS < 8 ? $MAX_NTHREADS : 8 )) \ \ + --mc +cmsRun "Run3Summer24NanoAODv12_${NAME}_cfg.py" +if [ ! -f "Run3Summer24NanoAODv12_$NAME_$JOBINDEX.root" ]; then + echo "Run3Summer24NanoAODv12_$NAME_$JOBINDEX.root not found. Exiting." + return 1 +fi diff --git a/campaigns/Run3Summer24wmLHEGS/setup_env.sh b/campaigns/Run3Summer24wmLHEGS/setup_env.sh new file mode 100755 index 0000000..2405511 --- /dev/null +++ b/campaigns/Run3Summer24wmLHEGS/setup_env.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Some old stuff to ensure this is run on SLC6 +#export SYSTEM_RELEASE=`cat /etc/redhat-release` +#if { [[ $SYSTEM_RELEASE == *"release 7"* ]]; }; then +# echo "Running setup_env.sh on SLC6." +# if { [[ $(hostname -s) = lxplus* ]]; }; then +# ssh -Y lxplus6 "cd $PWD; source setup_env.sh;" +# elif { [[ $(hostname -s) = cmslpc* ]]; }; then +# ssh -Y cmslpc-sl6 "cd $PWD; source setup_env.sh;" +# else +# echo "Not on cmslpc or lxplus, not sure what to do." +# return 1 +# fi +# return 1 +#fi + +if [ -d env ]; then + rm -rf env +fi + +mkdir env +cd env + +export SCRAM_ARCH=el8_amd64_gcc12 + +source /cvmfs/cms.cern.ch/cmsset_default.sh +scram project -n "CMSSW_14_0_19" CMSSW_14_0_19 +scram p CMSSW CMSSW_14_0_19 +cd CMSSW_14_0_19/src +eval `scram runtime -sh` + +mv ../../Configuration . +scram b +cd ../.. + +tar -czf env.tar.gz ./CMSSW* +mv env.tar.gz .. +cd .. + +eval `scram unsetenv -sh` \ No newline at end of file diff --git a/firsttime.sh b/firsttime.sh index 71d7989..70c56ec 100644 --- a/firsttime.sh +++ b/firsttime.sh @@ -6,7 +6,8 @@ fi TOPDIR=$PWD #CAMPAIGNS=( "RunIIFall18GS" "RunIIFall18GSBParking" "RunIIFall18wmLHEGS" ) # CAMPAIGNS=( "RunIISummer20UL16wmLHE" "RunIISummer20UL16APVwmLHE" "RunIISummer20UL17wmLHE" "RunIISummer20UL18wmLHE" "NANOGEN" ) -CAMPAIGNS=( "Run3Summer22wmLHE" "Run3Summer22EEwmLHE" "Run3Summer23wmLHE" "Run3Summer23BPixwmLHE" ) +#CAMPAIGNS=( "Run3Summer22wmLHE" "Run3Summer22EEwmLHE" "Run3Summer23wmLHE" "Run3Summer23BPixwmLHE" ) +CAMPAIGNS=( "Run3Summer24wmLHEGS" ) #CAMPAIGNS=( "RunIISummer20UL16wmLHE_pfnano" "RunIISummer20UL16APVwmLHE_pfnano" "RunIISummer20UL17wmLHE_pfnano" "RunIISummer20UL18wmLHE_pfnano" "NANOGEN" ) #check is the host is cmslpc or lxplus