5# utility script to produce PDF and CDF tables.
 
    9# ------------------------------------------------------------------------------------------
 
   11#                 Utility script to produce PDF and CDF tables.
 
   13# ------------------------------------------------------------------------------------------
 
   15if [ -z $JPP_DIR ]; then
 
   16    echo "Variable JPP_DIR undefined."
 
   20source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   23set_variable   WORKDIR                 $JPP_DATA  
 
   24set_variable   MAKE_PDF                0          
 
   25set_variable   MERGE_PDF               0          
 
   26set_variable   MAKE_ZDF                0          
 
   27set_variable   MAKE_CDF                0          
 
   29set_variable   BACKGROUND                         
 
   31set_variable   RMAX_M                  999        
 
   32set_variable   absorptionLengthFactor  1.0        
 
   33set_variable   scatteringLengthFactor  1.0        
 
   34set_variable:  TTS_NS                  PHYSICS_TTS_NS     2.0
 
   35set_variable   EXECUTOR                "nohup"
 
   38# Method to print usage of script.
 
   45              "-d <debug level>                                                                      \n"\
 
   46              "-W <working directory PDF and CDF tables>                                             \n"\
 
   47              "-P create  PDF tables                                                                 \n"\
 
   48              "-M merge   PDF tables                                                                 \n"\
 
   49              "-Z create  PDF table for elongated shower                                             \n"\
 
   50              "-C convert PDF tables to CDF tables                                                   \n"\
 
   51              "-c clean   PDF tables                                                                 \n"\
 
   52              "-B parallel running of jobs in background                                             \n"\
 
   53              "-E execute command to be evaluated (standard: nohup, example: echo, using -B as well) \n"\
 
   54              "-w download files from GIT server (e.g. \"http://sftp.km3net.de/data/latest/\")       \n"\
 
   55              "-R <maximal distance between muon and PMT>                                            \n"\
 
   56          "Note that the elongated EM shower PDF is created at option -M.                        \n"\
 
   57          "Script to generate the PDF/CDFs and merge them;                                       \n"\
 
   58          "standard example: JMakePDF.sh -W \${JPP_DATA} -PMCc                                   \n"\
 
   59              "print all necessary programs: JMakePDF.sh -W \${JPP_DATA} -E \"echo\" -PMCB"
 
   63# Parse command line options.
 
   65while getopts "d:W:PMZCcBE:w:hA:S:R:" option; do
 
   67            d) set_variable DEBUG       $OPTARG;;
 
   68            W) set_variable WORKDIR     $OPTARG;;
 
   69            P) set_variable MAKE_PDF    1;;
 
   70            M) set_variable MERGE_PDF   1;;
 
   71            Z) set_variable MAKE_ZDF    1;;
 
   72            C) set_variable MAKE_CDF    1;;
 
   73            c) set_variable CLEAN       1;;
 
   74            B) set_variable BACKGROUND  \&;;
 
   75            E) set_variable EXECUTOR    $OPTARG;;
 
   76            w) set_variable WGET        $OPTARG;;
 
   78            A) set_variable absorptionLengthFactor  $OPTARG;;
 
   79            S) set_variable scatteringLengthFactor  $OPTARG;;
 
   80            R) set_variable RMAX_M      $OPTARG;;
 
   84# check whether script is already running
 
   86BUFFER=`get_pid $script`
 
   89if [[ -n "${BUFFER/ */}" ]]; then
 
   90    notice "${script} already running <${BUFFER}>"
 
   94check_variable ROOTSYS JPP_DIR WORKDIR
 
   98if [[ ! -d $WORKDIR ]]; then
 
   99    fatal "Directory $WORKDIR does not exist."
 
  102status "Start $script"
 
  105if [[ -n $WGET ]]; then
 
  107    (rm -f *.dat) >& /dev/null
 
  108    wget -A dat -r -l 1 -nd -q $WGET 
 
  112if (( $MAKE_PDF )); then
 
  114    check_process JMakePDF JMakePDG pgrep
 
  118        if [[ ! -f $WORKDIR/J1p.dat ]]; then
 
  119                eval $EXECUTOR JMakePDF -F1 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J1p.dat -d $DEBUG $BACKGROUND
 
  121        if [[ ! -f $WORKDIR/J2p.dat ]]; then
 
  122                eval $EXECUTOR JMakePDF -F2 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J2p.dat -d $DEBUG $BACKGROUND
 
  125            for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
 
  126                         11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
 
  127                         22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
 
  128                         55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
 
  129                         170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 360.0 410.0; do
 
  131                if (( $R <= $RMAX_M )); then
 
  133                        if [[ ! -f $WORKDIR/J3p.dat ]]; then
 
  134                            eval $EXECUTOR JMakePDF -F3 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J3p-$R.dat -d $DEBUG $BACKGROUND
 
  136                        if [[ ! -f $WORKDIR/J4p.dat ]]; then
 
  137                            eval $EXECUTOR JMakePDF -F4 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J4p-$R.dat -d $DEBUG $BACKGROUND
 
  142            if [[ ! -f $WORKDIR/J5p.dat ]]; then
 
  143                eval $EXECUTOR JMakePDF -F5 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J5p.dat -d $DEBUG $BACKGROUND
 
  146            for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
 
  147                     11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
 
  148                     22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
 
  149                             55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
 
  150                             170.0 190.0 210.0 230.0 250.0; do
 
  152                if (( $R <= $RMAX_M )); then
 
  154                        if [[ ! -f $WORKDIR/J6p.dat ]]; then
 
  155                            eval $EXECUTOR JMakePDF -F6 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J6p-$R.dat -d $DEBUG $BACKGROUND
 
  160            let "DMAX_M = ${RMAX_M}*1.5"
 
  162            for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
 
  163                         120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
 
  165                if (( $D <= $DMAX_M )); then
 
  166                        if [[ ! -f $WORKDIR/J12p.dat ]]; then
 
  167                            eval $EXECUTOR JMakePDG -F12 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J12p-$D.dat -d $DEBUG $BACKGROUND
 
  172            if [[ ! -f $WORKDIR/J13p.dat ]]; then
 
  173                eval $EXECUTOR JMakePDG -F13 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J13p.dat -d $DEBUG $BACKGROUND
 
  176            let "DMAX_M = ${RMAX_M}*1.5"
 
  178            for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
 
  179                         120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 \
 
  180                         340.0 370.0 400.0 430.0 460.0 490.0 520.0 550.0 600.0 650.0 700.0 750.0 800.0; do
 
  182                if (( $D <= $DMAX_M )); then
 
  183                        if [[ ! -f $WORKDIR/J14p.dat ]]; then
 
  184                            eval $EXECUTOR JMakePDG -F14 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J14p-$D.dat -d $DEBUG $BACKGROUND
 
  189        if [[ ! -f $WORKDIR/J23p.dat ]]; then
 
  190                eval $EXECUTOR JMakePD0 -F23 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J23p.dat -d $DEBUG $BACKGROUND
 
  192        if [[ ! -f $WORKDIR/J24p.dat ]]; then
 
  193                eval $EXECUTOR JMakePD0 -F24 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J24p.dat -d $DEBUG $BACKGROUND
 
  196            if [[ "$BACKGROUND" != "" ]]; then
 
  203if (( $MERGE_PDF )); then
 
  205    check_process JMergePDF pgrep
 
  207    if [[ ! -f $WORKDIR/J3p.dat ]]; then
 
  209            FILE_LIST=(`echo $WORKDIR/J3p-*.dat`)
 
  211            eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J3p.dat  -d $DEBUG $BACKGROUND
 
  214    if [[ ! -f $WORKDIR/J4p.dat ]]; then
 
  216            FILE_LIST=(`echo $WORKDIR/J4p-*.dat`)
 
  218            eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J4p.dat  -d $DEBUG $BACKGROUND
 
  221    if [[ ! -f $WORKDIR/J6p.dat ]]; then
 
  223            FILE_LIST=(`echo $WORKDIR/J6p-*.dat`)
 
  225            eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J6p.dat  -d $DEBUG $BACKGROUND
 
  228    if [[ ! -f $WORKDIR/J12p.dat ]]; then
 
  230            FILE_LIST=(`echo $WORKDIR/J12p-*.dat`)
 
  232            eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J12p.dat -d $DEBUG $BACKGROUND
 
  235    if [[ ! -f $WORKDIR/J14p.dat ]]; then
 
  237            FILE_LIST=(`echo $WORKDIR/J14p-*.dat`)
 
  239            eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J14p.dat -d $DEBUG $BACKGROUND
 
  242    if [[ "$BACKGROUND" != "" ]]; then
 
  247if (( $MAKE_ZDF )); then
 
  249    if [[ ! -f $WORKDIR/J113p.dat ]]; then
 
  251            eval $EXECUTOR JMakePDE -F $WORKDIR/J%p.dat -o $WORKDIR/J113p.dat -T $TTS_NS -d $DEBUG $BACKGROUND
 
  254    if [[ "$BACKGROUND" != "" ]]; then
 
  259if (( $MAKE_CDF )); then
 
  261    check_process JMakeCDF JMakeCDG pgrep
 
  263    if [[ ! -f $WORKDIR/I1p.dat ]]; then
 
  264            eval $EXECUTOR JMakeCDF -f $WORKDIR/J1p.dat  -e 1e-5 -o $WORKDIR/I1p.dat  -d $DEBUG $BACKGROUND
 
  266    if [[ ! -f $WORKDIR/I2p.dat ]]; then
 
  267            eval $EXECUTOR JMakeCDF -f $WORKDIR/J2p.dat  -e 1e-4 -o $WORKDIR/I2p.dat  -d $DEBUG $BACKGROUND
 
  269    if [[ ! -f $WORKDIR/I5p.dat ]]; then
 
  270            eval $EXECUTOR JMakeCDF -f $WORKDIR/J5p.dat  -e 1e-5 -o $WORKDIR/I5p.dat  -d $DEBUG $BACKGROUND
 
  272    if [[ ! -f $WORKDIR/I6p.dat ]]; then
 
  273            eval $EXECUTOR JMakeCDF -f $WORKDIR/J6p.dat  -e 1e-5 -o $WORKDIR/I6p.dat  -d $DEBUG $BACKGROUND
 
  275    if [[ ! -f $WORKDIR/I12p.dat ]]; then
 
  276            eval $EXECUTOR JMakeCDG -f $WORKDIR/J12p.dat -e 1e-5 -o $WORKDIR/I12p.dat -d $DEBUG $BACKGROUND
 
  278    if [[ ! -f $WORKDIR/I13p.dat ]]; then
 
  279            eval $EXECUTOR JMakeCDG -f $WORKDIR/J13p.dat -e 1e-5 -o $WORKDIR/I13p.dat -d $DEBUG $BACKGROUND
 
  281    if [[ ! -f $WORKDIR/I14p.dat ]]; then
 
  282            eval $EXECUTOR JMakeCDG -f $WORKDIR/J14p.dat -e 1e-5 -o $WORKDIR/I14p.dat -d $DEBUG $BACKGROUND
 
  285    if [[ "$BACKGROUND" != "" ]]; then
 
  291    if ( rm -f $WORKDIR/J*p-*.dat ); then; fi