Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
206 changes: 206 additions & 0 deletions campaigns/Run3Summer24wmLHEGS/run.sh
Original file line number Diff line number Diff line change
@@ -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
40 changes: 40 additions & 0 deletions campaigns/Run3Summer24wmLHEGS/setup_env.sh
Original file line number Diff line number Diff line change
@@ -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`
4 changes: 3 additions & 1 deletion firsttime.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ TOPDIR=$PWD
#CAMPAIGNS=( "RunIIFall18GS" "RunIIFall18GSBParking" "RunIIFall18wmLHEGS" )
# CAMPAIGNS=( "RunIISummer20UL16wmLHE" "RunIISummer20UL16APVwmLHE" "RunIISummer20UL17wmLHE" "RunIISummer20UL18wmLHE" "NANOGEN" )
#CAMPAIGNS=( "Run3Summer22wmLHE" "Run3Summer22EEwmLHE" "Run3Summer23wmLHE" "Run3Summer23BPixwmLHE" )
CAMPAIGNS=( "Run3Summer23GS" )

CAMPAIGNS=( "Run3Summer22wmLHE" "Run3Summer22EEwmLHE" "Run3Summer23wmLHE" "Run3Summer23BPixwmLHE" "Run3Summer24wmLHEGS" )

#CAMPAIGNS=( "RunIISummer20UL16wmLHE_pfnano" "RunIISummer20UL16APVwmLHE_pfnano" "RunIISummer20UL17wmLHE_pfnano" "RunIISummer20UL18wmLHE_pfnano" "NANOGEN" )

#check is the host is cmslpc or lxplus
Expand Down