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 
   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 
   81 # check whether script is already running 
   86 if [[ -
n "${BUFFER/ */}" ]]; 
then 
   87     notice 
"${script} already running <${BUFFER}>" 
   91 check_variable ROOTSYS JPP_DIR 
WORKDIR 
   96     fatal 
"Directory $WORKDIR does not exist." 
   99 status 
"Start $script" 
  102 if [[ -
n $WGET ]]; 
then 
  105     wget -
A dat,
txt,
root,evt.gz -
r -l 1 -nd -q $WGET 
 
  109 if (( $MAKE_PDF )); 
then 
  111     check_process JMakePDF JMakePDG pgrep
 
  116             eval $EXECUTOR JMakePDF -
F1 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
o $WORKDIR/J1p.dat -
d $DEBUG $BACKGROUND
 
  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; 
do 
  128             if (( $R <= $RMAX_M )); 
then 
  131                     eval $EXECUTOR JMakePDF -F3 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
R $R -
o $WORKDIR/J3p-$R.dat -
d $DEBUG $BACKGROUND
 
  134                     eval $EXECUTOR JMakePDF -F4 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
R $R -
o $WORKDIR/J4p-$R.dat -
d $DEBUG $BACKGROUND
 
  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 
  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 
  164                     eval $EXECUTOR JMakePDG -F12 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
D $D -
o $WORKDIR/J12p-$D.dat -
d $DEBUG $BACKGROUND
 
  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 
  181                     eval $EXECUTOR JMakePDG -F14 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
D $D -
o $WORKDIR/J14p-$D.dat -
d $DEBUG $BACKGROUND
 
  187             eval $EXECUTOR JMakePD0 -F23 -
A $absorptionLengthFactor -S $scatteringLengthFactor -
o $WORKDIR/J23p.dat -
d $DEBUG $BACKGROUND
 
  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
 
  208         eval $EXECUTOR JMergePDF -
f${^FILE_LIST} -
o $WORKDIR/J3p.dat  -
d $DEBUG $BACKGROUND
 
  215         eval $EXECUTOR JMergePDF -
f${^FILE_LIST} -
o $WORKDIR/J4p.dat  -
d $DEBUG $BACKGROUND
 
  222         eval $EXECUTOR JMergePDF -
f${^FILE_LIST} -
o $WORKDIR/J6p.dat  -
d $DEBUG $BACKGROUND
 
  229         eval $EXECUTOR JMergePDG -
f${^FILE_LIST} -
o $WORKDIR/J12p.dat -
d $DEBUG $BACKGROUND
 
  236         eval $EXECUTOR JMergePDG -
f${^FILE_LIST} -
o $WORKDIR/J14p.dat -
d $DEBUG  $BACKGROUND
 
  239     if [[ 
"$BACKGROUND" != 
"" ]]; 
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
 
  259         eval $EXECUTOR JMakeCDF -
f $WORKDIR/J1p.dat  -e 1e-5 -
o $WORKDIR/I1p.dat  -
d $DEBUG $BACKGROUND
 
  262         eval $EXECUTOR JMakeCDF -
f $WORKDIR/J2p.dat  -e 1e-4 -
o $WORKDIR/I2p.dat  -
d $DEBUG $BACKGROUND
 
  265         eval $EXECUTOR JMakeCDF -
f $WORKDIR/J5p.dat  -e 1e-5 -
o $WORKDIR/I5p.dat  -
d $DEBUG $BACKGROUND
 
  268         eval $EXECUTOR JMakeCDF -
f $WORKDIR/J6p.dat  -e 1e-5 -
o $WORKDIR/I6p.dat  -
d $DEBUG $BACKGROUND
 
  271         eval $EXECUTOR JMakeCDG -
f $WORKDIR/J12p.dat -e 1e-5 -
o $WORKDIR/I12p.dat -
d $DEBUG $BACKGROUND
 
  274         eval $EXECUTOR JMakeCDG -
f $WORKDIR/J13p.dat -e 1e-5 -
o $WORKDIR/I13p.dat -
d $DEBUG $BACKGROUND
 
  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 
const JPolynome F1
Integral. 
 
do case $option in d set_variable DEBUG $OPTARG
 
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
 
then usage $script< directory A >< directoryB > nIn each there should be a file detector datx and tripod txt
 
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
 
double absorptionLengthFactor
Scaling of absorption and scattering length. 
 
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
 
static const double C
Physics constants. 
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
 
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
 
then JCookie sh JDataQuality D $DETECTOR_ID R
 
fi set_variable FILENAME $WORKDIR
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
 
double scatteringLengthFactor
 
then usage $script(input file)+< output file >" fi if (( $ fatal "Wrong number of arguments." fi set_array INPUT_FILES $argv[1
 
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
 
do echo Generating $dir eval D
 
do JPlot2D f $WORKDIR canberra[${EMITTER}] root
 
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
 
#define DEBUG(A)
Message macros.