File indexing completed on 2026-04-10 07:50:28
0001
0002 usage(){ cat << EOU
0003 U4Polycone_test.sh
0004 ===================
0005
0006 This compiles the needed parts of sysrap from source (not using libSysRap)
0007 in order to facilitate quick changes of compilation options.
0008
0009 Compilation options:
0010
0011 former -DWITH..SND
0012 reverted to the old inflexible snd.hh CSG node impl
0013 instead of the default more flexible sn.h impl
0014
0015 -DWITH_CHILD
0016 switches sn.h node impl to use child vector instead of left right nodes,
0017 this generalizes the node impl to n-ary instead of binary
0018
0019 EOU
0020 }
0021
0022 opt="-DWITH_CHILD"
0023
0024
0025 SDIR=$(cd $(dirname $BASH_SOURCE) && pwd)
0026
0027 name=U4Polycone_test
0028
0029 tmp=/tmp/$USER/opticks
0030 TMP=${TMP:-$tmp}
0031 export FOLD=$TMP/$name
0032 mkdir -p $FOLD
0033
0034 bin=$FOLD/$name
0035 script=$SDIR/$name.py
0036
0037 CUDA_PREFIX=/usr/local/cuda
0038
0039 defarg="info_build_run_pdb"
0040 arg=${1:-$defarg}
0041
0042 export sn__level=2
0043 export s_pool_level=2
0044
0045 get-cmake-prefix(){ echo $CMAKE_PREFIX_PATH | tr ":" "\n" | grep $1 ; }
0046 CLHEP_PREFIX=$(get-cmake-prefix CLHEP)
0047 GEANT4_PREFIX=$(get-cmake-prefix Geant4)
0048
0049 vars="BASH_SOURCE arg SDIR FOLD bin script opt"
0050
0051 if [ "${arg/info}" != "$arg" ]; then
0052 for var in $vars ; do printf "%20s : %s \n" "$var" "${!var}" ; done
0053 fi
0054
0055 if [ "${arg/build}" != "$arg" ]; then
0056
0057 gcc \
0058 $opt \
0059 $SDIR/$name.cc \
0060 $SDIR/../../sysrap/sn.cc \
0061 $SDIR/../../sysrap/s_pa.cc \
0062 $SDIR/../../sysrap/s_bb.cc \
0063 $SDIR/../../sysrap/s_tv.cc \
0064 $SDIR/../../sysrap/s_csg.cc \
0065 \
0066 $SDIR/../../sysrap/snd.cc \
0067 $SDIR/../../sysrap/scsg.cc \
0068 -I$SDIR/.. \
0069 -std=c++17 -lstdc++ -g \
0070 -I$HOME/opticks/sysrap \
0071 -I$CUDA_PREFIX/include \
0072 -I$OPTICKS_PREFIX/externals/glm/glm \
0073 -I$CLHEP_PREFIX/include \
0074 -I$GEANT4_PREFIX/include/Geant4 \
0075 -L$GEANT4_PREFIX/lib64 \
0076 -L$CLHEP_PREFIX/lib \
0077 -lG4global \
0078 -lG4geometry \
0079 -lG4graphics_reps \
0080 -lCLHEP \
0081 -lm \
0082 -o $bin
0083 [ $? -ne 0 ] && echo $BASH_SOURCE build error && exit 1
0084 fi
0085
0086 if [ "${arg/run}" != "$arg" ]; then
0087 $bin
0088 [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 2
0089 fi
0090
0091 if [ "${arg/dbg}" != "$arg" ]; then
0092 source dbg__.sh
0093 dbg__ $bin
0094 [ $? -ne 0 ] && echo $BASH_SOURCE dbg error && exit 2
0095 fi
0096
0097 if [ "${arg/pdb}" != "$arg" ]; then
0098 ${IPYTHON:-ipython} --pdb -i $script
0099 [ $? -ne 0 ] && echo $BASH_SOURCE pdb error && exit 3
0100 fi
0101
0102 if [ "${arg/ana}" != "$arg" ]; then
0103 ${PYTHON:-python} $script
0104 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 4
0105 fi
0106
0107 exit 0
0108
0109