7# ------------------------------------------------------------------------------------------
 
    9#          Utility script to compare two detectors and to create graphics output.
 
   11# ------------------------------------------------------------------------------------------
 
   13if [ -z $JPP_DIR ]; then
 
   14    echo "Variable JPP_DIR undefined."
 
   18source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   20set_variable   WORKDIR        ${TMPDIR:-/tmp}
 
   22set_variable:  TIME           PRECISION_TIME          0.01    # [ns]
 
   23set_variable:  ANGLE          PRECISION_ANGLE         0.01    # [deg]
 
   24set_variable:  POSITION       PRECISION_POSITION      0.01    # [m]
 
   25set_variable:  ORIENTATION    PRECISION_ORIENTATION   0.01    # [rad]
 
   26set_variable:  FORMAT         GRAPHICS_FORMAT         gif
 
   27set_variable+  BATCH          GRAPHICS_BATCH          -B
 
   30    usage "$script <detector file>  <detector file> [<lower floor>-<upper floor>]"\
 
   31          "\nIf the range of floors is specified, the first detector file is aligned to the second before the comparison."\
 
   32          "\nIn this, only modules within the given range of floors are used."
 
   36    3) set_variable  RANGE          $argv[3];&
 
   37    2) set_array     DETECTOR       $argv[1] $argv[2];;
 
   38    *) fatal "Wrong number of arguments."
 
   41if [[ "$RANGE" == [0-9]*"-"[0-9]* ]]; then
 
   43    JConvertDetectorFormat \
 
   45        -o ${TMPDIR:-/tmp}/detector.datx      \
 
   48    echo "" > ${TMPDIR:-/tmp}/tripod.txt 
 
   51        -a ${TMPDIR:-/tmp}/detector.datx      \
 
   54        -r "${RANGE%%-*} ${RANGE##*-}"        \
 
   55        -T ${TMPDIR:-/tmp}/tripod.txt         \
 
   58    DETECTOR[1]=${TMPDIR:-/tmp}/detector.datx
 
   60    rm -f ${TMPDIR:-/tmp}/tripod.txt 
 
   68    -p "position    = $POSITION"          \
 
   69    -p "orientation = $ORIENTATION"       \
 
   70    -o $WORKDIR/detector.root             \
 
   75HISTOGRAMS[X2]="#Deltax [m]"
 
   76HISTOGRAMS[Y2]="#Deltay [m]"
 
   77HISTOGRAMS[Z2]="#Deltaz [m]"
 
   78HISTOGRAMS[T2]="#Deltat [ns]"
 
   79HISTOGRAMS[RMS]="RMS [ns]"
 
   80HISTOGRAMS[R2]="angle [rad]"
 
   82for KEY VALUE in ${(@kv)HISTOGRAMS}; do
 
   85        -f $WORKDIR/detector.root:${KEY}  \
 
   91        -o ${KEY}.$FORMAT                 $BATCH
 
   95eval `JPrintDetector -a $DETECTOR[1] -O SUMMARY`
 
   99    for (( i = 1; $i <= ${#STRINGS}; ++i )); do
 
  101        set_variable STRING  $STRINGS[$i] 
 
  103        echo "Processing string $STRING $KEY"
 
  105        let "XMIN = $i - 1 - 0.5"
 
  106        let "XMAX = $i - 1 + 0.5"
 
  109            -f $WORKDIR/detector.root:${KEY}2            \
 
  112            -o ${TMPDIR:-/tmp}/py_\[${STRING}\].root     \
 
  117        -f${TMPDIR:-/tmp}/py_\[${^STRINGS}\].root:\.\*   \
 
  119        -\^ "#Delta${(L)KEY} [m]"                        \
 
  126        -o ${KEY}1.$FORMAT --!                           $BATCH