Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 07:50:27

0001 #!/bin/bash
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 #solid=Torus
0026 solid=Torus_s_EMFcoil_holder_ring_mod26_seg1
0027 
0028 #solid=Orb
0029 #solid=Box
0030 #solid=Tet
0031 #solid=Tubs
0032 #solid=Cons
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