File indexing completed on 2026-04-10 07:50:27
0001
0002 usage(){ cat << EOU
0003 U4Mesh_test2.sh
0004 ================
0005
0006 Expands on U4Mesh_test.sh with addition of dependency
0007 on j/PMTSim to provide access to complex solids::
0008
0009 ~/opticks/u4/tests/U4Mesh_test2.sh
0010
0011
0012 GEOM=wpcosolidDeadWater ~/opticks/u4/tests/U4Mesh_test2.sh
0013
0014 GEOM=xjfcSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0015 GEOM=xjacSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0016
0017 GEOM=sjclSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0018 GEOM=sjfxSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0019 GEOM=sjrcSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0020 GEOM=sjrfSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0021
0022 GEOM=facrSolid ~/opticks/u4/tests/U4Mesh_test2.sh
0023
0024
0025 Compare two geometries::
0026
0027 AGEOM=sjclSub BGEOM=sjclDown ~/opticks/u4/tests/U4Mesh_test2.sh ana
0028
0029
0030 EOU
0031 }
0032
0033 cd $(dirname $(realpath $BASH_SOURCE))
0034 name=U4Mesh_test2
0035 BASE=/tmp/$name
0036 bin=$BASE/$name
0037
0038 if [ -n "$AGEOM" -a -n "$BGEOM" ]; then
0039 script=${name}_cf.py
0040 AFOLD=$BASE/$AGEOM
0041 BFOLD=$BASE/$BGEOM
0042 export AFOLD
0043 export BFOLD
0044 elif [ -n "$GEOM" ]; then
0045 script=$name.py
0046 FOLD=$BASE/$GEOM
0047 mkdir -p $FOLD
0048 export FOLD
0049 else
0050 echo $BASH_SOURCE : ERROR GEOM is not defined
0051 exit 1
0052 fi
0053
0054 opticks-
0055 clhep-
0056 g4-
0057
0058 vars="BASH_SOURCE name BASE FOLD bin GEOM AGEOM BGEOM AFOLD BFOLD script"
0059
0060 export JUNO_SIMPLIFY_CALIB_ANCHOR=1
0061
0062
0063 defarg="info_build_run_ana"
0064 arg=${1:-$defarg}
0065
0066 if [ "${arg/info}" != "$arg" ]; then
0067 for var in $vars ; do printf "%20s : %s \n" "$var" "${!var}" ; done
0068 fi
0069
0070 if (( $(g4-major-version-number) < 11 )); then
0071 cc_std="c++11"
0072 else
0073 cc_std="c++17"
0074 fi
0075 if [ "${arg/build}" != "$arg" ]; then
0076 gcc \
0077 $name.cc \
0078 -I.. \
0079 -g -std=$cc_std -lstdc++ \
0080 -I$HOME/opticks/sysrap \
0081 -I$(clhep-prefix)/include \
0082 -I$(g4-prefix)/include/Geant4 \
0083 -L$(g4-prefix)/lib \
0084 -L$(g4-prefix)/lib64 \
0085 -L$(clhep-prefix)/lib \
0086 -lG4global \
0087 -lG4geometry \
0088 -lG4graphics_reps \
0089 -lCLHEP \
0090 -I$HOME/j/PMTSim \
0091 -L$OPTICKS_PREFIX/lib \
0092 -L$OPTICKS_PREFIX/lib64 \
0093 -lPMTSim_standalone \
0094 -o $bin
0095 [ $? -ne 0 ] && echo $BASH_SOURCE build error && exit 1
0096 fi
0097
0098 if [ "${arg/run}" != "$arg" ]; then
0099 $bin
0100 [ $? -ne 0 ] && echo $BASH_SOURCE run error && exit 2
0101 fi
0102
0103 if [ "${arg/dbg}" != "$arg" ]; then
0104 source dbg__.sh
0105 [ $? -ne 0 ] && echo $BASH_SOURCE dbg error && exit 3
0106 fi
0107
0108 if [ "${arg/grab}" != "$arg" ]; then
0109 [ -z "$FOLD" ] && echo $BASH_SOURCE grab error no FOLD $FOLD && exit 2
0110 source ../../bin/rsync.sh $FOLD
0111 [ $? -ne 0 ] && echo $BASH_SOURCE grab error && exit 2
0112 fi
0113
0114 if [ "${arg/ana}" != "$arg" ]; then
0115 ${PYTHON:-python} $script
0116 [ $? -ne 0 ] && echo $BASH_SOURCE ana error && exit 4
0117 fi
0118
0119 if [ "${arg/pdb}" != "$arg" ]; then
0120 ${IPYTHON:-ipython} --pdb -i $script
0121 [ $? -ne 0 ] && echo $BASH_SOURCE pdb error && exit 4
0122 fi
0123
0124 if [ "$arg" == "pvcap" -o "$arg" == "pvpub" -o "$arg" == "mpcap" -o "$arg" == "mppub" ]; then
0125 export CAP_BASE=$FOLD/figs
0126 export CAP_REL=U4Mesh_test2
0127 export CAP_STEM=U4Mesh_test2_${GEOM}
0128 case $arg in
0129 pvcap) source pvcap.sh cap ;;
0130 mpcap) source mpcap.sh cap ;;
0131 pvpub) source pvcap.sh env ;;
0132 mppub) source mpcap.sh env ;;
0133 esac
0134
0135 if [ "$arg" == "pvpub" -o "$arg" == "mppub" ]; then
0136 source epub.sh
0137 fi
0138 fi
0139
0140
0141 exit 0
0142
0143