Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-27 07:02:38

0001 #!/bin/bash
0002 
0003 function print_the_help {
0004   echo "USAGE: ${0} -nevents <nevents> -p <particle> -e <energy>"
0005   echo "  OPTIONS: "
0006   echo "    -n,--nevents     number of events"
0007   echo "    -p,--particle    particle type"
0008   echo "    -e,--energy      particle energy"
0009   exit
0010 }
0011 
0012 POSITIONAL=()
0013 while [[ $# -gt 0 ]]
0014 do
0015   key="$1"
0016 
0017   case $key in
0018     -h|--help)
0019       shift # past argument
0020       print_the_help
0021       ;;
0022     -n|--nevents)
0023       nevents="$2"
0024       shift # past argument
0025       shift # past value
0026       ;;
0027     -p|--particle)
0028       particle="$2"
0029       shift # past argument
0030       shift # past value
0031       ;;
0032     -e|--energy)
0033       energy="$2"
0034       shift
0035       shift
0036       ;;
0037     *)    # unknown option
0038       #POSITIONAL+=("$1") # save it in an array for later
0039       echo "unknown option $1"
0040       print_the_help
0041       shift # past argument
0042       ;;
0043   esac
0044 done
0045 set -- "${POSITIONAL[@]}" # restore positional parameters
0046 
0047 if [[ ! -n  "${nevents}" ]] ; then
0048   nevents="1"
0049 fi
0050 
0051 if [[ ! -n  "${particle}" ]] ; then
0052   particle="e-"
0053 fi
0054 
0055 if [[ ! -n  "${energy}" ]] ; then
0056   energy="1*GeV"
0057 fi
0058 
0059 if [[ ! -n "${DETECTOR}" ]] ; then
0060   export DETECTOR="athena"
0061 fi
0062 
0063 if [[ ! -n "${DETECTOR_PATH}" ]] ; then
0064   export DETECTOR_PATH="/opt/detector/share/athena"
0065 fi
0066 
0067 compact_path=${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml
0068 
0069 echo "DETECTOR_PATH = ${DETECTOR_PATH}"
0070 echo "DETECTOR = ${DETECTOR}"
0071 
0072 # Run geant4 simulations
0073 output_dir="data/timing/${particle}/${energy/\*/}"
0074 output_file="sim_${nevents}.edm4hep.root"
0075 mkdir -p ${output_dir}
0076 timing_dir="results/timing/${particle}/${energy/\*/}"
0077 timing_file="time_${nevents}events.log"
0078 ddsim_file="npsim_${nevents}events.log"
0079 mkdir -p ${timing_dir}
0080 /usr/bin/time -v -o ${timing_dir}/time_${nevents}events.log \
0081   ddsim --runType batch \
0082       --printLevel WARNING \
0083       --filter.tracker edep0 \
0084       --numberOfEvents ${nevents} \
0085       --enableGun \
0086       --gun.energy "${energy}" \
0087       --gun.particle "${particle}" \
0088       --gun.thetaMin "45*deg" \
0089       --gun.thetaMax "135*deg" \
0090       --gun.distribution "cos(theta)" \
0091       --part.minimalKineticEnergy "1*TeV" \
0092       --compactFile ${compact_path} \
0093       --outputFile ${output_dir}/${output_file} \
0094     2>&1 > ${timing_dir}/${ddsim_file}
0095 echo "For ${nevents} events:"
0096 cat ${timing_dir}/${timing_file}
0097 
0098 if [[ "$?" -ne "0" ]] ; then
0099   echo "ERROR running npsim"
0100   exit 1
0101 fi
0102