3 # \author mdejong, bofearraigh
 
    7 # ------------------------------------------------------------------------------------------
 
    9 #  Utility script to plot fit results of track reconstruction chain for Monte Carlo data.
 
   11 # ------------------------------------------------------------------------------------------
 
   14 if [ -z $JPP_DIR ]; then
 
   15     echo "Variable JPP_DIR undefined."
 
   20 source $JPP_DIR/setenv.sh $JPP_DIR
 
   23 # list of applications in the processing chain
 
   25 APPLICATIONS=(prefit simplex gandalf energy start)
 
   27 set_variable:  DEBUG               RECONSTRUCTION_DEBUG               1
 
   28 set_variable:  NUMBER_OF_EVENTS    RECONSTRUCTION_NUMBER_OF_EVENTS    $((2**31))
 
   30 set_variable:  PALETTE             GRAPHICS_PALETTE                   57
 
   31 set_variable:  FORMAT              GRAPHICS_FORMAT                    gif
 
   32 set_variable+  BATCH               GRAPHICS_BATCH                     -B
 
   35 set_variable   PRIMARY                                                muon
 
   36 set_variable   WORKDIR                                                ./
 
   39     usage "$script <input file> [option [primary [working directory]]]"\
 
   40           "\nWhere option can be N, E, LINE, LOGE."\
 
   41           "\nNote that if more than one input file is specified, all other arguments must be provided."
 
   45     4)  set_variable WORKDIR      $4;&
 
   46     3)  set_variable PRIMARY      $3;&
 
   47     2)  set_variable OPTION       $2;&
 
   48     1)  set_array    INPUT_FILES  $1;;
 
   49     0)  fatal "Wrong number of arguments";;
 
   50     *)  set_array    INPUT_FILES  ${argv[1,-4]}
 
   51         set_variable OPTION       ${argv[-3]}
 
   52         set_variable PRIMARY      ${argv[-2]}
 
   53         set_variable WORKDIR      ${argv[-1]}
 
   56 # Number of prefits as a function of application (0 = all)
 
   58 typeset -A NUMBER_OF_FIT
 
   68 # Fit application identifier
 
   70 typeset -A ENUMERATION
 
   80     E)     set_variable  LABEL   "E [GeV]";
 
   82            set_variable  LOGX    -XX;
 
   83            set_variable  LOGY    -YY;
 
   84            set_variable  E_E     "log10(E_{fit}/E_{#mu})";;
 
   85     LINE)  set_variable  LABEL   "E [GeV]";
 
   89            set_variable  E_E     "E_{fit} - E_{#mu} [GeV]";;
 
   90     LOGE)  set_variable  LABEL   "E [GeV]";
 
   92            set_variable  LOGX    -XX;
 
   93            set_variable  LOGY    -YY;
 
   94            set_variable  E_E     "log10(E_{fit}/E_{#mu})";;
 
   95     N)     set_variable  LABEL   "number of modules";
 
   97            set_variable  LOGX    -XX;
 
   98            set_variable  LOGY    -YY;
 
   99            set_variable  E_E     "log10(E_{fit}/E_{#mu})";;
 
  100     *) fatal "Invalid option $OPTION"
 
  106 for APP in $APPLICATIONS[*]; do
 
  108     set_variable  OUTPUT_FILE    ${WORKDIR}/postfit\[${APP}\].root
 
  110     if [[ -f $OUTPUT_FILE ]]; then
 
  118 for APP in $APPLICATIONS[*]; do
 
  120     set_variable  OUTPUT_FILE    $WORKDIR/postfit\[${APP}\].root
 
  122     if [[ ! -f $OUTPUT_FILE ]]; then
 
  125             -f"${INPUT_FILES[*]}"         \
 
  127             -n ${NUMBER_OF_EVENTS}        \
 
  128             -N ${NUMBER_OF_FIT[${APP}]}   \
 
  129             -A ${ENUMERATION[${APP}]}     \
 
  139         -f $WORKDIR/postfit\[prefit\].root:hx          \
 
  140         -f $WORKDIR/postfit\[simplex\].root:hx         \
 
  141         -f $WORKDIR/postfit\[gandalf\].root:hx         \
 
  143         -\^ "number of events [a.u.]"                  \
 
  146         -o $WORKDIR/angle.$FORMAT                      $BATCH
 
  151     QUANTILES="0.33 0.5 0.66"
 
  153     for APP in prefit simplex gandalf; do
 
  156             -f $WORKDIR/postfit\[${APP}\].root:h2      \
 
  158             -o $WORKDIR/quantiles\[${APP}\].root
 
  162         -f $WORKDIR/quantiles\[prefit\].root:h21       \
 
  163         -f $WORKDIR/quantiles\[simplex\].root:h21      \
 
  164         -f $WORKDIR/quantiles\[gandalf\].root:h21      \
 
  166         -\^ "resolution (reco muon) [deg]"             \
 
  170         -o $WORKDIR/resolution.$FORMAT                 $BATCH
 
  176         -f $WORKDIR/postfit\[energy\].root:E_0         \
 
  177         -f $WORKDIR/postfit\[energy\].root:E_1         \
 
  178         -f $WORKDIR/postfit\[energy\].root:E_2         \
 
  179         -\^ "number of events [a.u.]"                  \
 
  180         -> "E_{#mu} [GeV]"   $LOGX                    \
 
  182         -o $WORKDIR/energy.$FORMAT                     $BATCH
 
  188         -f $WORKDIR/postfit\[energy\].root:ExE         \
 
  193         -f $WORKDIR/pdf.root:ExE                       \
 
  194         -O COLZ -p $PALETTE                            \
 
  195         -> "E_{#mu} [GeV]"   $LOGX                    \
 
  196         -< "E_{fit} [GeV]"   $LOGY                    \
 
  199         -o $WORKDIR/ee.$FORMAT                         $BATCH
 
  205         -f $WORKDIR/postfit\[energy\].root:E_E         \
 
  206         -o $WORKDIR/fit.root                           \
 
  207         -F "[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2]))"   \
 
  208         -@ "p0 = 0.8*GetMaximum"                       \
 
  213         -f $WORKDIR/fit.root:E_E                       \
 
  215         -T "" -o $WORKDIR/er.$FORMAT                   $BATCH
 
  221         -f $WORKDIR/postfit\[energy\].root:Va          \
 
  222         -O COLZ -p $PALETTE                            \
 
  226         -Z -T "" -o $WORKDIR/ha.$FORMAT                $BATCH
 
  233         -f $WORKDIR/postfit\[energy\].root:Vb          \
 
  234         -O COLZ -p $PALETTE                            \
 
  238         -Z -T "" -o $WORKDIR/hb.$FORMAT                $BATCH
 
  244         -f $WORKDIR/postfit\[start\].root:hz0          \
 
  245         -f $WORKDIR/postfit\[start\].root:hz1          \
 
  247         -\^ "number of events [a.u.]"                  \
 
  249         -o $WORKDIR/z.$FORMAT                          $BATCH