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_CDF                0          
 
   28set_variable   BACKGROUND                         
 
   30set_variable   RMAX_M                  999        
 
   31set_variable   absorptionLengthFactor  1.0        
 
   32set_variable   scatteringLengthFactor  1.0        
 
   33set_variable:  TTS_NS                  PHYSICS_TTS_NS     2.0
 
   34set_variable   EXECUTOR                "nohup"
 
   37# Method to print usage of script.
 
   44        "-d <debug level>                                                                      \n"\
 
   45        "-W <working directory PDF and CDF tables>                                             \n"\
 
   46        "-P create  PDF tables                                                                 \n"\
 
   47        "-M merge   PDF tables                                                                 \n"\
 
   48        "-C convert PDF tables to CDF tables                                                   \n"\
 
   49        "-c clean   PDF tables                                                                 \n"\
 
   50        "-B parallel running of jobs in background                                             \n"\
 
   51        "-E execute command to be evaluated (standard: nohup, example: echo, using -B as well) \n"\
 
   52        "-w download files from GIT server (e.g. \"http://sftp.km3net.de/data/latest/\")       \n"\
 
   53        "-R <maximal distance between muon and PMT>                                            \n"\
 
   54        "Note that the elongated EM shower PDF is created at option -M.                        \n"\
 
   55        "Script to generate the PDF/CDFs and merge them;                                       \n"\
 
   56        "standard example: JMakePDF.sh -W \${JPP_DATA} -PMCc                                   \n"\
 
   57        "print all necessary programs: JMakePDF.sh -W \${JPP_DATA} -E \"echo\" -PMCB"
 
   61# Parse command line options.
 
   63while getopts "d:W:PMCcBE:w:hA:S:R:" option; do
 
   65        d) set_variable DEBUG       $OPTARG;;
 
   66        W) set_variable WORKDIR     $OPTARG;;
 
   67        P) set_variable MAKE_PDF    1;;
 
   68        M) set_variable MERGE_PDF   1;;
 
   69        C) set_variable MAKE_CDF    1;;
 
   70        c) set_variable CLEAN       1;;
 
   71        B) set_variable BACKGROUND  \&;;
 
   72        E) set_variable EXECUTOR    $OPTARG;;
 
   73        w) set_variable WGET        $OPTARG;;
 
   75        A) set_variable absorptionLengthFactor  $OPTARG;;
 
   76        S) set_variable scatteringLengthFactor  $OPTARG;;
 
   77        R) set_variable RMAX_M      $OPTARG;;
 
   81# check whether script is already running
 
   83BUFFER=`get_pid $script`
 
   86if [[ -n "${BUFFER/ */}" ]]; then
 
   87    notice "${script} already running <${BUFFER}>"
 
   91check_variable ROOTSYS JPP_DIR WORKDIR
 
   95if [[ ! -d $WORKDIR ]]; then
 
   96    fatal "Directory $WORKDIR does not exist."
 
  102if [[ -n $WGET ]]; then
 
  104    (rm -f *.dat) >& /dev/null
 
  105    wget -A dat -r -l 1 -nd -q $WGET 
 
  109if (( $MAKE_PDF )); then
 
  111    check_process JMakePDF JMakePDG pgrep
 
  115        if [[ ! -f $WORKDIR/J1p.dat ]]; then
 
  116            eval $EXECUTOR JMakePDF -F1 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J1p.dat -d $DEBUG $BACKGROUND
 
  118        if [[ ! -f $WORKDIR/J2p.dat ]]; then
 
  119            eval $EXECUTOR JMakePDF -F2 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J2p.dat -d $DEBUG $BACKGROUND
 
  122        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 \
 
  123            11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
 
  124            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 \
 
  125            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 \
 
  126            170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 360.0 410.0; do
 
  128            if (( $R <= $RMAX_M )); then
 
  130                if [[ ! -f $WORKDIR/J3p.dat ]]; then
 
  131                    eval $EXECUTOR JMakePDF -F3 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J3p-$R.dat -d $DEBUG $BACKGROUND
 
  133                if [[ ! -f $WORKDIR/J4p.dat ]]; then
 
  134                    eval $EXECUTOR JMakePDF -F4 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J4p-$R.dat -d $DEBUG $BACKGROUND
 
  139        if [[ ! -f $WORKDIR/J5p.dat ]]; then
 
  140            eval $EXECUTOR JMakePDF -F5 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J5p.dat -d $DEBUG $BACKGROUND
 
  143        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 \
 
  144                     11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
 
  145                     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 \
 
  146                     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 \
 
  147                     170.0 190.0 210.0 230.0 250.0; do
 
  149            if (( $R <= $RMAX_M )); then
 
  151                if [[ ! -f $WORKDIR/J6p.dat ]]; then
 
  152                    eval $EXECUTOR JMakePDF -F6 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J6p-$R.dat -d $DEBUG $BACKGROUND
 
  157        let "DMAX_M = ${RMAX_M}*1.5"
 
  159        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 \
 
  160            120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
 
  162            if (( $D <= $DMAX_M )); then
 
  163                if [[ ! -f $WORKDIR/J12p.dat ]]; then
 
  164                    eval $EXECUTOR JMakePDG -F12 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J12p-$D.dat -d $DEBUG $BACKGROUND
 
  169        if [[ ! -f $WORKDIR/J13p.dat ]]; then
 
  170            eval $EXECUTOR JMakePDG -F13 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J13p.dat -d $DEBUG $BACKGROUND
 
  173        let "DMAX_M = ${RMAX_M}*1.5"
 
  175        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 \
 
  176            120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 \
 
  177            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
 
  179            if (( $D <= $DMAX_M )); then
 
  180                if [[ ! -f $WORKDIR/J14p.dat ]]; then
 
  181                    eval $EXECUTOR JMakePDG -F14 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J14p-$D.dat -d $DEBUG $BACKGROUND
 
  186        if [[ ! -f $WORKDIR/J23p.dat ]]; then
 
  187            eval $EXECUTOR JMakePD0 -F23 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J23p.dat -d $DEBUG $BACKGROUND
 
  189        if [[ ! -f $WORKDIR/J24p.dat ]]; then
 
  190            eval $EXECUTOR JMakePD0 -F24 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J24p.dat -d $DEBUG $BACKGROUND
 
  193        if [[ "$BACKGROUND" != "" ]]; then
 
  200if (( $MERGE_PDF )); then
 
  202    check_process JMergePDF pgrep
 
  204    if [[ ! -f $WORKDIR/J3p.dat ]]; then
 
  206        FILE_LIST=(`echo $WORKDIR/J3p-*.dat`)
 
  208        eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J3p.dat  -d $DEBUG $BACKGROUND
 
  211    if [[ ! -f $WORKDIR/J4p.dat ]]; then
 
  213        FILE_LIST=(`echo $WORKDIR/J4p-*.dat`)
 
  215        eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J4p.dat  -d $DEBUG $BACKGROUND
 
  218    if [[ ! -f $WORKDIR/J6p.dat ]]; then
 
  220        FILE_LIST=(`echo $WORKDIR/J6p-*.dat`)
 
  222        eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J6p.dat  -d $DEBUG $BACKGROUND
 
  225    if [[ ! -f $WORKDIR/J12p.dat ]]; then
 
  227        FILE_LIST=(`echo $WORKDIR/J12p-*.dat`)
 
  229        eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J12p.dat -d $DEBUG $BACKGROUND
 
  232    if [[ ! -f $WORKDIR/J14p.dat ]]; then
 
  234        FILE_LIST=(`echo $WORKDIR/J14p-*.dat`)
 
  236        eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J14p.dat -d $DEBUG  $BACKGROUND
 
  239    if [[ "$BACKGROUND" != "" ]]; then
 
  243    if [[ ! -f $WORKDIR/J113p.dat ]]; then
 
  245        eval $EXECUTOR JMakePDE -F $WORKDIR/J%p.dat -o $WORKDIR/J113p.dat -T $TTS_NS -d $DEBUG $BACKGROUND
 
  248    if [[ "$BACKGROUND" != "" ]]; then
 
  254if (( $MAKE_CDF )); then
 
  256    check_process JMakeCDF JMakeCDG pgrep
 
  258    if [[ ! -f $WORKDIR/I1p.dat ]]; then
 
  259        eval $EXECUTOR JMakeCDF -f $WORKDIR/J1p.dat  -e 1e-5 -o $WORKDIR/I1p.dat  -d $DEBUG $BACKGROUND
 
  261    if [[ ! -f $WORKDIR/I2p.dat ]]; then
 
  262        eval $EXECUTOR JMakeCDF -f $WORKDIR/J2p.dat  -e 1e-4 -o $WORKDIR/I2p.dat  -d $DEBUG $BACKGROUND
 
  264    if [[ ! -f $WORKDIR/I5p.dat ]]; then
 
  265        eval $EXECUTOR JMakeCDF -f $WORKDIR/J5p.dat  -e 1e-5 -o $WORKDIR/I5p.dat  -d $DEBUG $BACKGROUND
 
  267    if [[ ! -f $WORKDIR/I6p.dat ]]; then
 
  268        eval $EXECUTOR JMakeCDF -f $WORKDIR/J6p.dat  -e 1e-5 -o $WORKDIR/I6p.dat  -d $DEBUG $BACKGROUND
 
  270    if [[ ! -f $WORKDIR/I12p.dat ]]; then
 
  271        eval $EXECUTOR JMakeCDG -f $WORKDIR/J12p.dat -e 1e-5 -o $WORKDIR/I12p.dat -d $DEBUG $BACKGROUND
 
  273    if [[ ! -f $WORKDIR/I13p.dat ]]; then
 
  274        eval $EXECUTOR JMakeCDG -f $WORKDIR/J13p.dat -e 1e-5 -o $WORKDIR/I13p.dat -d $DEBUG $BACKGROUND
 
  276    if [[ ! -f $WORKDIR/I14p.dat ]]; then
 
  277        eval $EXECUTOR JMakeCDG -f $WORKDIR/J14p.dat -e 1e-5 -o $WORKDIR/I14p.dat -d $DEBUG $BACKGROUND
 
  280    if [[ "$BACKGROUND" != "" ]]; then
 
  286    if ( rm -f $WORKDIR/J*p-*.dat ); then; fi