Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:12:42

0001 #! /bin/bash
0002 verbose_mode=false
0003 events=1000000
0004 nfiles=1000
0005 density=10000 #events / file
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 #set for me right now
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         #if submit just get all files in the expected job type
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#*=}) || ( ! -z "$2" && "$2" != -*) ]]
0051 }
0052 
0053 extract_argument() {
0054         echo "${2:-${1#*=}}"
0055 }
0056 
0057 set_config()
0058 {
0059         #Need to use the .run files, can ammend to use the .in files  but that adds unnecessary computational time
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" #use as default value
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 [ $# -gt 0 ]; do
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