8 # ------------------------------------------------------------------------------------------
 
   10 #    Utility script to determine muon energy correction base on Monte Carlo simulations.
 
   12 # ------------------------------------------------------------------------------------------
 
   14 if [ -z $JPP_DIR ]; then
 
   15     echo "Variable JPP_DIR undefined."
 
   19 source $JPP_DIR/setenv.sh $JPP_DIR
 
   24 set_variable   WORKDIR            ${TMPDIR:-/tmp}/
 
   25 set_variable   NUMBER_OF_RUNS     10
 
   26 set_variable   NUMBER_OF_BINS     40
 
   27 set_variable   RANGE_LOGE         3.0 6.5
 
   28 set_variable:  FORMAT             GRAPHICS_FORMAT        gif
 
   29 set_variable+  BATCH              GRAPHICS_BATCH         -B
 
   32     usage "$script <working directory> <option>"\
 
   33           "\nPossible options: run fit interpolate"
 
   36 if (( $# != 2 )); then
 
   37     fatal "Wrong number of arguments."
 
   40 set_variable   WORKDIR            $argv[1]
 
   41 set_variable   OPTION             $argv[2]
 
   43 if [[ $OPTION != "run" && $OPTION != "fit" && $OPTION != "interpolate" ]]; then
 
   44     fatal "Invalid option $OPTION."
 
   49 if [[ $OPTION == "run" ]]; then
 
   51     set_variable  DETECTOR     $WORKDIR/detector.detx
 
   53     if [[ ! -f $DETECTOR ]]; then
 
   54         JDetector.sh $DETECTOR
 
   57     for (( i = 1; $i <= $NUMBER_OF_RUNS; ++i )); do
 
   58         JSirene.sh                 $DETECTOR  $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz  $WORKDIR/sirene_${i}.root
 
   59         JTriggerEfficiency.sh      $DETECTOR  $DETECTOR  $WORKDIR/sirene_${i}.root     $WORKDIR/trigger_efficiency_${i}.root
 
   60         JARCAMuonReconstruction.sh $DETECTOR  $WORKDIR/trigger_efficiency_${i}.root    $WORKDIR/%_${i}.root                   $JPP_DATA/PMT_parameters.txt
 
   64 if [[ $OPTION == "fit" || $OPTION == "interpolate" ]]; then
 
   66     if ( ! reuse_file $WORKDIR/energy_correction.root ); then
 
   68         set_array  INPUT_FILES  `ls $WORKDIR/jchain.arca_*.root`
 
   70         if (( ${#INPUT_FILES} == 0 )); then
 
   71             fatal "No input file in directory $WORKDIR"
 
   76         set_array  INPUT_FILES  `ls $WORKDIR/energy_correction.root`
 
   79     if   [[ $OPTION == "fit" ]]; then
 
   82             -f "$INPUT_FILES[*]"                      \
 
   83             -o $WORKDIR/energy_correction.root        \
 
   84             -F "[0] + [1]*x + [2]*x*x + [3]*x*x*x"    \
 
   93     elif [[ $OPTION == "interpolate" ]]; then
 
   96             -f "$INPUT_FILES[*]"                      \
 
   97             -o $WORKDIR/energy_correction.root        \
 
  104         -f  $WORKDIR/energy_correction.root:h2    \
 
  106         -< "E_{true} [GeV]"                      \
 
  112         -o ExE.$FORMAT                            $BATCH
 
  115     set_variable  YMAX    `JPrintResult -f $WORKDIR/energy_correction.root:h1 -F "GetMaximum + 0.5"`
 
  118         -f  $WORKDIR/energy_correction.root:h1    \
 
  120         -> "log(E_{fit}/GeV)"                    \
 
  121         -\^ "log(E_{true}/GeV)"                   \
 
  125     echo result stored in $WORKDIR/energy_correction.root