Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:49:35

0001 #!/bin/bash
0002 usage(){ cat << EOU
0003 gxr.sh : G4CXRenderTest
0004 =============================================================================================================
0005 
0006 ::
0007 
0008     cd ~/opticks/g4cx   # gx
0009     ./gxr.sh
0010     ./gxr.sh run
0011     ./gxr.sh dbg
0012     ./gxr.sh grab
0013     ./gxr.sh grablog
0014     ./gxr.sh analog
0015 
0016 
0017 analog delta times more than 2% of total
0018 --------------------------------------------------
0019 
0020 See bin/log.py for logfile analysis with time filtering
0021 
0022 EOU
0023 }
0024 
0025 msg="=== $BASH_SOURCE :"
0026 
0027 case $(uname) in
0028   Linux)  defarg="run"  ;;
0029   Darwin) defarg="ls"  ;;
0030 esac
0031 
0032 arg=${1:-$defarg}
0033 
0034 case $arg in
0035   fold) QUIET=1 ;;
0036   analog)  QUIET=1 ;;
0037 esac
0038 
0039 
0040 
0041 
0042 bin=G4CXRenderTest
0043 log=$bin.log
0044 gxrdir=$(dirname $BASH_SOURCE)
0045 
0046 source $gxrdir/../bin/COMMON.sh
0047 
0048 ## bin/COMMON sources bin/GEOM_.sh and bin/OPTICKS_INPUT_PHOTON.sh
0049 ## BUT the content of those is very user specific so have moved
0050 ## geometry to $HOME/.opticks/GEOM/GEOM.sh
0051 ## THIS KINDA THING IS IN USERLAND BUT COULD SUGGEST
0052 ## INPUT PHOTONS ALSO CONFIGURED IN THE SAME GEOM.sh FILE
0053 ## OR FILES THAT THAT FILE SOURCES
0054 
0055 
0056 eye=-0.4,0,0
0057 moi=-1
0058 export EYE=${EYE:-$eye}
0059 export MOI=${MOI:-$moi}
0060 
0061 
0062 # HMM could do loglevels in COMMON.sh ?
0063 # NO : WHAT LOGGING TO SWITCH ON DEPENDS ON EACH SCRIPT
0064 # SO IT SHOULD BE THERE
0065 
0066 loglevels()
0067 {
0068     export Dummy=INFO
0069     #export SGeoConfig=INFO
0070     export SEventConfig=INFO
0071     export SEvt=INFO          # lots of AddGenstep output, messing with timings
0072     #export Ctx=INFO
0073     export QSim=INFO
0074     export QBase=INFO
0075     export SSim=INFO
0076     export SBT=INFO
0077     export IAS_Builder=INFO
0078     #export QEvt=INFO
0079     export CSGOptiX=INFO
0080     export G4CXOpticks=INFO
0081     export CSGFoundry=INFO
0082     #export GInstancer=INFO
0083     #export X4PhysicalVolume=INFO
0084     #export U4VolumeMaker=INFO
0085     export Frame=INFO
0086 }
0087 loglevels
0088 
0089 
0090 
0091 if [ "run" == "$arg" ]; then
0092     echo $msg run $bin log $log
0093     if [ -f "$log" ]; then
0094        rm $log
0095     fi
0096 
0097     $bin
0098     [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 1
0099 fi
0100 
0101 if [ "dbg" == "$arg" ]; then
0102     case $(uname) in
0103         Linux) gdb $bin -ex r  ;;
0104         Darwin) lldb__ $bin ;;
0105     esac
0106     [ $? -ne 0 ] && echo $BASH_SOURCE dbg error && exit 2
0107 fi
0108 
0109 
0110 if [ "grablog" == "$arg" ]; then
0111     scp P:opticks/g4cx/$log .
0112 fi
0113 
0114 if [ "analog" == "$arg" ]; then
0115     echo $msg analog log $log
0116     if [ -f "$log" ]; then
0117         LOG=$log $gxrdir/../bin/log.sh
0118     fi
0119 fi
0120 
0121 
0122 # FOLD is not an input to C++ running, but it is used by the below : ls ana grab jpg
0123 export FOLD=/tmp/$USER/opticks/$GEOM/$bin
0124 name=cx$MOI.jpg
0125 path=$FOLD/$name
0126 
0127 if [ "ls" == "$arg" ]; then
0128    echo $msg FOLD $FOLD
0129    echo $msg date $(date)
0130    ls -alst $FOLD
0131 fi
0132 
0133 if [ "ana" == "$arg" ]; then
0134     export CFBASE=$FOLD
0135     ${IPYTHON:-ipython} --pdb -i tests/$bin.py
0136     [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 3
0137 fi
0138 
0139 if [ "grab" == "$arg" ]; then
0140     source ../bin/rsync.sh $FOLD
0141     open $path
0142 fi
0143 
0144 if [ "jpg" == "$arg" ]; then
0145     mkdir -p $(dirname $path)
0146     scp P:$path $path
0147     open $path
0148 fi
0149 
0150 exit 0
0151