diff --git a/scripts/view14/generate_eps b/scripts/view14/generate_eps index c9fa64857b85962c207db05437d3d5a1e7c97e9f..492bd3f379f40df6dd59e7508a1429a8a20eac7e 100755 --- a/scripts/view14/generate_eps +++ b/scripts/view14/generate_eps @@ -1,25 +1,25 @@ #!/bin/bash #trignometry -sin () -{ - echo "scale=5;s($1)" | bc -l -} - -add () -{ - echo "scale=5;$1 + $2" | bc -l -} - -cos () -{ - echo "scale=5;c($1)" | bc -l -} - -tan () -{ - echo "scale=5;s($1)/c($1)" | bc -l -} +#sin () +#{ +# echo "scale=5;s($1)" | bc -l +#} +# +#add () +#{ +# echo "scale=5;$1 + $2" | bc -l +#} +# +#cos () +#{ +# echo "scale=5;c($1)" | bc -l +#} +# +#tan () +#{ +# echo "scale=5;s($1)/c($1)" | bc -l +#} function print_the_help { diff --git a/scripts/view15/generate_eps b/scripts/view15/generate_eps new file mode 100755 index 0000000000000000000000000000000000000000..09ac01ad1e9c6dbf8dd642b07f157cf979c446c2 --- /dev/null +++ b/scripts/view15/generate_eps @@ -0,0 +1,166 @@ +#!/bin/bash + +#trignometry +#sin () +#{ +# echo "scale=5;s($1)" | bc -l +#} +# +#add () +#{ +# echo "scale=5;$1 + $2" | bc -l +#} +# +#cos () +#{ +# echo "scale=5;c($1)" | bc -l +#} +# +#tan () +#{ +# echo "scale=5;s($1)/c($1)" | bc -l +#} + + +function print_the_help { + echo "USAGE: $0 -i <PRIM_FILE> " + echo " OPTIONS: " + echo " -t,--tag filename tag (default: view1)" + exit +} + +FILE_TAG="view15" +INPUT_FILE="../../g4_0000.prim" + + +POSITIONAL=() +while [[ $# -gt 0 ]] +do + key="$1" + + case $key in + -h|--help) + shift # past argument + print_the_help + ;; + -t|--tag) + FILE_TAG="$2" + shift # past argument + shift # past value + ;; + -i|--input) + INPUT_FILE="$2" + shift # past argument + shift # past value + ;; + *) # unknown option + #POSITIONAL+=("$1") # save it in an array for later + echo "unknown option $1" + print_the_help + shift # past argument + ;; + esac +done +set -- "${POSITIONAL[@]}" # restore positional parameters + +# units are mm + +echo "view15 produces a series of slightly rotated XY slices a different z locations. Along beamline" + +# slice at z = 2m +# note the offset has to change with sign of the direction to cut in the opposite direction. +#dawncut 0 0 1 10005 ${INPUT_FILE} ${FILE_TAG}b_temp0.prim +#dawncut 0 0 -1 -1000 ${FILE_TAG}b_temp0.prim ${FILE_TAG}b.prim +#dawn ${FILE_TAG}b.prim +#ps2pdf ${FILE_TAG}b.eps ${FILE_TAG}b_full.pdf +#gs -o ${FILE_TAG}b.pdf -sDEVICE=pdfwrite \ +# -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ +# -f ${FILE_TAG}b_full.pdf +#pdftoppm ${FILE_TAG}b.pdf ${FILE_TAG}b -png -singlefile -cropbox + +echo "done ..." + + +original_file_tag="${FILE_TAG}" + +make_slice(){ + local zpos="$1" + local tagnum=$(printf "%04d" ${zpos}) + local FILE_TAG="${original_file_tag}a${tagnum}" + local z1=$(add ${zpos} 100) + local z2=$(add ${zpos} -100) + #dawncut 0 0 1 ${z1}1 ${INPUT_FILE} ${FILE_TAG}_temp0.prim + #dawncut 0 0 -1 -${z2}0 ${FILE_TAG}_temp0.prim ${FILE_TAG}.prim + ../../bin/dawn_tweak -z ${zpos}0 --draw 5 + #cp ${INPUT_FILE} ${FILE_TAG}.prim + dawncut -1 0 0 0 ${INPUT_FILE} ${FILE_TAG}.prim + dawn -d ${FILE_TAG}.prim + ps2pdf ${FILE_TAG}.eps ${FILE_TAG}_full.pdf + gs -o ${FILE_TAG}.pdf -sDEVICE=pdfwrite \ + -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ + -f ${FILE_TAG}_full.pdf + pdftoppm ${FILE_TAG}.pdf ${FILE_TAG} -png -singlefile -cropbox + rm "${FILE_TAG}_temp0.prim" + rm "${FILE_TAG}.prim" +} + +for zzz in $(seq 150 50 2000) ; +do + make_slice ${zzz} +done + +wait + + + +#dawncut 0 1 0 10 ${INPUT_FILE} ${FILE_TAG}c_temp0.prim +#dawncut 0 -1 0 0 ${FILE_TAG}c_temp0.prim ${FILE_TAG}c.prim +#dawn -d ${FILE_TAG}c.prim +#ps2pdf ${FILE_TAG}c.eps ${FILE_TAG}c_full.pdf +#gs -o ${FILE_TAG}c.pdf -sDEVICE=pdfwrite \ +# -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ +# -f ${FILE_TAG}c_full.pdf +#pdftoppm ${FILE_TAG}c.pdf ${FILE_TAG}c -png -singlefile -cropbox +# +## slice at z = -1m +#dawncut 0 0 1 -1000 ${INPUT_FILE} ${FILE_TAG}d_temp0.prim +#dawncut 0 0 -1 1001 ${FILE_TAG}d_temp0.prim ${FILE_TAG}d.prim +#dawn -d ${FILE_TAG}d.prim +#ps2pdf ${FILE_TAG}d.eps ${FILE_TAG}d_full.pdf +#gs -o ${FILE_TAG}d.pdf -sDEVICE=pdfwrite \ +# -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ +# -f ${FILE_TAG}d_full.pdf +#pdftoppm ${FILE_TAG}d.pdf ${FILE_TAG}d -png -singlefile -cropbox +# +## slice at z = -2m +#dawncut 0 0 1 -2000 ${INPUT_FILE} ${FILE_TAG}e_temp0.prim +#dawncut 0 0 -1 2001 ${FILE_TAG}e_temp0.prim ${FILE_TAG}e.prim +#dawn -d ${FILE_TAG}e.prim +#ps2pdf ${FILE_TAG}e.eps ${FILE_TAG}e_full.pdf +#gs -o ${FILE_TAG}e.pdf -sDEVICE=pdfwrite \ +# -c "[/CropBox [50 175 550 675] /PAGES pdfmark" \ +# -f ${FILE_TAG}e_full.pdf +#pdftoppm ${FILE_TAG}e.pdf ${FILE_TAG}e -png -singlefile -cropbox + + +#https://geant4.kek.jp/~tanaka/DAWN/About_DAWNCUT.html +# % dawncut a b c d input-file [output-file] +# +# input-file : Source DAWN-format file describing a 3D scene. +# +# output-file: Output DAWN-format file describing a plane-clipped +# 3D scene. The default output stream is stdout. +# +# a, b, c, d : Parameters a, b, c, and d are double values to +# define a clipping plane described with the following +# equation: +# +# ax + by + cz + d = 0. +# +# Vector (a,b,c) defines the normal vector of +# the clipping plane. +# 3D scene data in the half space at the front side +# of the clipping plane are clipped out and erased. +# The normal vector (a,b,c) needs not be a unit vector. +# If it is a unit vector, parameter "d" gives distance +# between the clipping plane and origin (0,0,0).