File indexing completed on 2026-04-10 07:50:27
0001
0002 usage(){ cat << EOU
0003 U4Mesh_test.sh
0004 ================
0005
0006 Instanciates G4Orb and persists as U4Mesh into /tmp/U4Mesh_test::
0007
0008 ~/o/u4/tests/U4Mesh_test.sh
0009 SOLID=Tubs ~/o/u4/tests/U4Mesh_test.sh ana
0010
0011
0012 ~/o/u4/tests/U4Mesh_test.sh view
0013
0014
0015 EOU
0016 }
0017
0018 cd $(dirname $BASH_SOURCE)
0019 name=U4Mesh_test
0020 export FOLD=/tmp/$name
0021 mkdir -p $FOLD
0022 bin=$FOLD/$name
0023
0024
0025
0026 solid=Torus_s_EMFcoil_holder_ring_mod26_seg1
0027
0028
0029
0030
0031
0032
0033
0034
0035 export U4Mesh__NumberOfRotationSteps_DUMP=1
0036
0037 method=2
0038 title="U4Mesh_test.sh method:$method"
0039
0040 if [ "$method" == "0" ]; then
0041
0042 key=U4Mesh__NumberOfRotationSteps_entityType_G4Torus
0043 export $key=480
0044 title="$title key:$key:${!key} "
0045
0046 elif [ "$method" == "1" ]; then
0047
0048 key=U4Mesh__NumberOfRotationSteps_solidName_$solid
0049 export $key=480
0050 title="$title key:$key:${!key} "
0051
0052 elif [ "$method" == "2" ]; then
0053
0054 pfx=U4Mesh__NumberOfRotationSteps_solidName_STARTING_pfx_1
0055 val=U4Mesh__NumberOfRotationSteps_solidName_STARTING_val_1
0056
0057 export $pfx=Torus_s_EMFcoil_holder_ring
0058 export $val=240
0059 title="$title pfx:$pfx:${!pfx} val:$val:${!val} "
0060 fi
0061
0062
0063 export TITLE="$title"
0064
0065 vv="title TITLE method"
0066 for v in $vv ; do printf "%30s : %s\n" "$v" "${!v}" ; done
0067
0068
0069
0070
0071
0072 get-cmake-prefix(){ echo $CMAKE_PREFIX_PATH | tr ":" "\n" | grep $1 ; }
0073
0074 if [ "$(uname)" == "Darwin" ]; then
0075 g4-prefix(){ get-cmake-prefix g4 ; }
0076 g4-libdir(){ echo $(g4-prefix)/lib ; }
0077 clhep-prefix(){ get-cmake-prefix clhep ; }
0078 else
0079 g4-prefix(){ get-cmake-prefix Geant4 ; }
0080 g4-libdir(){ echo $(g4-prefix)/lib64 ; }
0081 clhep-prefix(){ get-cmake-prefix CLHEP ; }
0082 fi
0083
0084 CLHEP_PREFIX=$(clhep-prefix)
0085 G4_PREFIX=$(g4-prefix)
0086 G4_LIBDIR=$(g4-libdir)
0087
0088 if [ "$(uname)" == "Darwin" ]; then
0089 export DYLD_LIBRARY_PATH=$CLHEP_PREFIX/lib:$G4_LIBDIR
0090 fi
0091
0092
0093 allsolid="Orb Box Tet Tubs Cons Torus"
0094
0095 export SOLID=${SOLID:-$solid}
0096
0097
0098 vars="BASH_SOURCE name FOLD bin SOLID CLHEP_PREFIX G4_PREFIX"
0099
0100 defarg="info_build_run_ana"
0101 arg=${1:-$defarg}
0102
0103
0104 [ "${arg/info}" != "$arg" ] && for var in $vars ; do printf "%20s : %s \n" "$var" "${!var}" ; done
0105
0106
0107 if [ "${arg/build}" != "$arg" ]; then
0108 gcc $name.cc \
0109 -I.. \
0110 -std=c++17 -lstdc++ \
0111 -I$HOME/opticks/sysrap \
0112 -I$CLHEP_PREFIX/include \
0113 -I$G4_PREFIX/include/Geant4 \
0114 -L$G4_LIBDIR \
0115 -L$CLHEP_PREFIX/lib \
0116 -lG4global \
0117 -lG4geometry \
0118 -lG4graphics_reps \
0119 -lCLHEP \
0120 -o $bin
0121 [ $? -ne 0 ] && echo $BASH_SOURCE build error && exit 1
0122 fi
0123
0124 if [ "${arg/run}" != "$arg" ]; then
0125 $bin
0126 [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 2
0127 fi
0128
0129 if [ "${arg/all}" != "$arg" ]; then
0130 for solid in $allsolid ; do echo $BASH_SOURCE : $solid && SOLID=$solid $bin ; done
0131 [ $? -ne 0 ] && echo $BASH_SOURCE all error && exit 2
0132 fi
0133
0134 if [ "${arg/ana}" != "$arg" ]; then
0135 ${IPYTHON:-ipython} --pdb -i $name.py
0136 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 3
0137 fi
0138
0139 if [ "${arg/view}" != "$arg" ]; then
0140
0141 export FOLD=/data/blyth/opticks/U4TreeCreateTest/stree/mesh
0142 export SOLID=HamamatsuR12860sMask_virtual0xa0b8450
0143
0144 ${IPYTHON:-ipython} --pdb -i $name.py
0145 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 3
0146 fi
0147
0148
0149
0150 exit 0
0151