File indexing completed on 2025-08-05 08:12:42
0001
0002 verbose_mode=false
0003 events=1000000
0004 nfiles=1000
0005 density=10000
0006 dosubmit=false
0007 triggertype="MB"
0008 triggervalue="0."
0009 configfile="MB.in"
0010 configdir="$(pwd)/../config_files"
0011 condor_testfile="condor_blank.job"
0012 minseg=0
0013 user=`id -u -n`
0014 make_condor_jobs()
0015 {
0016 for i in $(seq 0 ${nfiles}); do
0017 j=$(( i + minseg ))
0018 condor_file="$(pwd)/condor_file_dir/condor_"$triggertype"_"$j".job"
0019 condor_out_file=$(pwd)"/condor_file_dir/condor_"$triggertype"_"$j".out"
0020 condor_err_file=$(pwd)"/condor_file_dir/condor_"$triggertype"_"$j".err"
0021 condor_log_file=$(pwd)"/condor_file_dir/condor_"$triggertype"_"$j".log"
0022 if [ "$vebose_mode" = true ]; then
0023 echo "Producing condor job file " $condor_file
0024 fi
0025 IFS=$'\n' read -d '' -r -a blanklines < $condor_testfile
0026 echo "${blanklines[0]}" > $condor_file
0027 echo "${blanklines[1]}"$(pwd)"/Herwig_run.sh" >> $condor_file
0028 echo "${blanklines[2]}"$configfile $density $j $triggervalue "/sphenix/tg/tg01/jets/sgross/HerwigHepMC/Herwig_"$triggertype"/Herwig_"$triggertype>> $condor_file
0029 echo "${blanklines[3]}"$condor_out_file >> $condor_file
0030 echo "${blanklines[4]}"$condor_err_file >> $condor_file
0031 echo "${blanklines[5]}"$condor_log_file >> $condor_file
0032 echo "${blanklines[6]} /sphenix/tg/tg01/jets/sgross/HerwigHepMC/Herwig_"$triggertype >>$condor_file
0033 echo "${blanklines[7]}" >> $condor_file
0034 echo "${blanklines[8]}" >> $condor_file
0035 echo "${blanklines[9]}" " " $user >> $condor_file
0036 echo "${blanklines[10]}" >> $condor_file
0037 echo "${blanklines[11]}" >> $condor_file
0038 echo "${blanklines[12]}" >> $condor_file
0039 echo "${blanklines[13]}" >> $condor_file
0040 done
0041 }
0042 submit_condor_jobs(){
0043
0044 for n in $(seq 0 ${nfiles}); do
0045 i="condor_file_dir/condor_"$triggertype"_"$n".job"
0046 condor_submit $i
0047 done
0048 }
0049 has_argument(){
0050 [[ ("$1" == *=* && -n ${1
0051 }
0052
0053 extract_argument() {
0054 echo "${2:-${1#*=}}"
0055 }
0056
0057 set_config()
0058 {
0059
0060 if [ "$triggertype" = "MB" ]; then
0061 configfile="${configdir}/Herwig_MB.run"
0062 elif [ "$triggertype" = "Jet10" ]; then
0063 configfile="${configdir}/Herwig_Jet10.run"
0064 triggervalue="10"
0065 elif [ "$triggertype" = "Jet20" ]; then
0066 configfile="${configdir}/Herwig_Jet20.run"
0067 triggervalue="20"
0068 elif [ "$triggertype" = "Jet30" ]; then
0069 configfile="${configdir}/Herwig_Jet30.run"
0070 triggervalue="30"
0071 elif [ "$triggertype" = "PhotonJet5" ]; then
0072 configfile="${configdir}/Herwig_PhotonJet5.run"
0073 elif [ "$triggertype" = "PhotonJet10" ]; then
0074 configfile="${configdir}/Herwig_PhotonJet10.run"
0075 elif [ "$triggertype" = "PhotonJet20" ]; then
0076 configfile="${configdir}/Herwig_PhotonJet20.run"
0077 else
0078 configfile="${configdir}/Herwig_MB.run"
0079 fi
0080 }
0081
0082 find_config()
0083 {
0084 if [[ "$configfile" == *"Herwig_"* ]];then
0085 filetag="Herwig_"
0086 triggertype="${configfile#*$filetag}"
0087 else
0088 triggertype="$configfile"
0089 fi
0090 if [[ "$triggertype" == *".run"* ]];then
0091 filetype=".run"
0092 triggertype="${triggertype%$filetype*}"
0093 fi
0094 }
0095 handle_options(){
0096 while [ $
0097 case $1 in
0098 -h | --help)
0099 echo "Options for Herwig job creation script"
0100 echo "$0 [OPTIONS]"
0101 echo "This script runs Herwig to create HepMC files given an input configuration"
0102 echo " "
0103 echo " -h, --help Display this help message"
0104 echo " -v, --verbose Enable verbose job creation (Default false) "
0105 echo " -N, --events Number of events to generate (Default 1M) "
0106 echo " -n, --perfile Number of events per file (Default 1k) "
0107 echo " -s, --submit Make and submit condor jobs (Default false)"
0108 echo " -t, --trigger Input type (MB, Jet10, Jet20, Jet30, PhotonJet5, PhotonJet10, PhotonJet20) (Default MB)"
0109 echo " -j, --jetcut Add a Jet cut filter [Integer GeV] (Default None) "
0110 echo " -i, --input Specify new input file (Default blank)"
0111 echo " -f, --first Specify a first segment number (Default 0)"
0112 exit 0
0113 ;;
0114 -v | --verbose)
0115 verbose_mode=true
0116 shift
0117 ;;
0118 -n | --perfile*)
0119 if has_argument $@; then
0120 density=$(extract_argument $@)
0121 nfiles=$(( events / density ))
0122 fi
0123 shift
0124 shift
0125 ;;
0126 -N | --events*)
0127 if has_argument $@; then
0128 events=$(extract_argument $@)
0129 nfiles=$(( events / density ))
0130 if [ "$verbose_mode" = true ]; then
0131 echo "Run " $events " events"
0132 echo " This will generate " $nfiles " output hepmc files"
0133 fi
0134 nfiles=$(( nfiles - 1 ))
0135 fi
0136 shift
0137 shift
0138 ;;
0139 -s | --submit)
0140 dosubmit=true
0141 shift
0142 ;;
0143 -t | --trigger*)
0144 if has_argument $@; then
0145 triggertype=$(extract_argument $@)
0146 set_config
0147 if [ "$verbose_mode" = true ]; then
0148 echo "Trigger type: " $triggertype
0149 echo "Config file: " $configfile
0150 echo "Config dir: " $configdir
0151 fi
0152 fi
0153 shift
0154 shift
0155 ;;
0156 -j | --jetcut*)
0157 if has_argument $@; then
0158 triggervalue=$(extract_argument $@)
0159 if [ "$verbose_mode" = true ]; then
0160 echo "Jet cut value: " $triggervalue
0161 fi
0162 fi
0163 shift
0164 shift
0165 ;;
0166 -i | --input*)
0167 if has_argument $@; then
0168 configfile=$(extract_argument $@)
0169 find_config
0170 if [ "$verbose_mode" = true ]; then
0171 echo "Trigger type: " $triggertype
0172 echo "Config file: " $configfile
0173 fi
0174 fi
0175 shift
0176 shift
0177 ;;
0178 -f | --first*)
0179 if has_argument $@; then
0180 minseg=$(extract_argument $@)
0181 if [ "$verbose_mode" = true ]; then
0182 echo "First segement number: " $minseg
0183 fi
0184 fi
0185 shift
0186 shift
0187 ;;
0188 *)
0189 echo "Invalid option: $1 "
0190 exit 1
0191 ;;
0192 esac
0193 done
0194 }
0195
0196 handle_options "$@"
0197 if [ ! -d "/sphenix/tg/tg01/jets/sgross/HerwigHepMC/Herwig_"$triggertype ]; then
0198 mkdir -p "/sphenix/tg/tg01/jets/sgross/HerwigHepMC/Herwig_"$triggertype;
0199 fi
0200 make_condor_jobs
0201 if [ "$dosubmit" = true ]; then
0202 submit_condor_jobs
0203 fi
0204