5 # utility script to produce PDF and CDF tables.
 
    9 # ------------------------------------------------------------------------------------------
 
   11 #                 Utility script to produce PDF and CDF tables.
 
   13 # ------------------------------------------------------------------------------------------
 
   15 if [ -z $JPP_DIR ]; then
 
   16     echo "Variable JPP_DIR undefined."
 
   20 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   23 set_variable   WORKDIR                 $JPP_DATA  
 
   24 set_variable   MAKE_PDF                0          
 
   25 set_variable   MERGE_PDF               0          
 
   26 set_variable   MAKE_CDF                0          
 
   28 set_variable   BACKGROUND                         
 
   30 set_variable   RMAX_M                  999        
 
   31 set_variable   absorptionLengthFactor  1.0        
 
   32 set_variable   scatteringLengthFactor  1.0        
 
   33 set_variable:  TTS_NS                  PHYSICS_TTS_NS     2.0
 
   34 set_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.
 
   63 while 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
 
   83 BUFFER=`get_pid $script`
 
   84 BUFFER=${BUFFER/${$}/}
 
   86 if [[ -n "${BUFFER/ */}" ]]; then
 
   87     notice "${script} already running <${BUFFER}>"
 
   91 check_variable ROOTSYS JPP_DIR WORKDIR
 
   95 if [[ ! -d $WORKDIR ]]; then
 
   96     fatal "Directory $WORKDIR does not exist."
 
   99 status "Start $script"
 
  102 if [[ -n $WGET ]]; then
 
  104     (rm -f *.dat) >& /dev/null
 
  105     wget -A dat -r -l 1 -nd -q $WGET 
 
  109 if (( $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
 
  200 if (( $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
 
  254 if (( $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
 
  285 if (( $CLEAN )); then
 
  286     if ( rm -f $WORKDIR/J*p-*.dat ); then; fi