4 if [ -z $JPP_DIR ]; then
 
    5     echo "Variable JPP_DIR undefined."
 
    9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   11 set_variable:  DEBUG       ACOUSTICS_DEBUG        2
 
   12 set_variable:  WORKDIR     ACOUSTICS_WORKDIR      ./
 
   13 #set_variable   FORMULA     "[0] + [1] * log(1.0 + 0.5*(x-[2])*(x-[2])/([3]*[3]))"  
 
   14 set_variable   FORMULA     "[0] + [1] * ((x-[2])*(x-[2])/([3]*[3]))"
 
   15 set_variable   MINIMAL_DZ  0.01                   
 
   16 set_variable:  FORMAT      GRAPHICS_FORMAT        gif
 
   17 set_variable+  BATCH       GRAPHICS_BATCH         -B
 
   20     usage "$script <string identifier> <floor[-floor]> [<detector file>]"
 
   23 if (( $# < 2 || $# > 3 )); then
 
   24     fatal "Wrong number of arguments."
 
   27 set_variable  STRING              $argv[1]
 
   28 set_variable  FLOORS              $argv[2]
 
   30 for (( FLOOR = ${FLOORS%%-*}; $FLOOR <= ${FLOORS##*-}; FLOOR += 1 )); do
 
   35     set_variable  MODULE_TXT          $WORKDIR/modulez_${STRING}_${FLOOR}.txt
 
   36     set_variable  MODULE_ROOT         $WORKDIR/modulez_${STRING}_${FLOOR}.root
 
   37     set_variable  G1_TXT              $WORKDIR/g1.txt
 
   38     set_variable  G1_ROOT             $WORKDIR/g1.root
 
   40     if [[ ! -f $MODULE_TXT ]] then
 
   41         fatal "No file $MODULE_TXT."
 
   48     sort -g  -k 2,2 $MODULE_TXT | tail -1 | read X ZMAX RMS
 
   49     sort -gr -k 2,2 $MODULE_TXT | tail -1 | read X ZMIN RMS
 
   51     echo $X $ZMIN > $G1_TXT; 
 
   62         END { print XMIN, XMAX }
 
   64         if ( $1 < XMIN ) { XMIN = $1 }
 
   65         if ( $1 > XMAX ) { XMAX = $1 }
 
   67         ' $MODULE_TXT | read XMIN XMAX
 
   69     if (( $X > $XMIN && $X < $XMAX )); then
 
   71         let "DZ = 0.5*($ZMAX - $ZMIN)"
 
   73         if (( $ZMAX - $ZMIN < $MINIMAL_DZ )); then
 
   74             set_variable OPTION "-= p1 = 0.0; p2 = 0.0; p3 = 1.0"
 
   80             -f ${MODULE_ROOT}:\.\*                    \
 
   81             -o $WORKDIR/fit.root                      \
 
   90         set_array    P2   `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
 
   94         printf "nominal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR 0.0 `JPrintFit -f $WORKDIR/fit.root:\.\* -x "0.0"`
 
   95         printf "optimal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR $X  `JPrintFit -f $WORKDIR/fit.root:\.\* -x "$X"`
 
   97         mv $WORKDIR/fit.root $MODULE_ROOT
 
  101         echo   "Optimum value at limit; -> no fit."
 
  102         printf "nominal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR 0.0 `awk -v X=0.0 '{ if ($1 == X) { print $2 }}' $MODULE_TXT`
 
  103         printf "optimal %4d %2d %7.3f %7.3f\n" $STRING $FLOOR $X  $ZMIN
 
  107     if (( $# == 3 )); then
 
  109         set_variable  DETECTOR        $argv[3]
 
  111         if (( $ZMAX - $ZMIN >= $MINIMAL_DZ )); then
 
  113             set_variable  MODULE          `getModule -a $DETECTOR -L "$STRING $FLOOR"`
 
  115             JEditDetector -a $DETECTOR -M "$MODULE add 0.0 0.0 $X" -o $DETECTOR
 
  118             echo "No update of detector $DETECTOR; z-range ($ZMAX-$ZMIN) < $MINIMAL_DZ."
 
  126         -f ${MODULE_ROOT}:\.\*                            \
 
  131         -T "($STRING,$FLOOR)"                             \
 
  132         -o $WORKDIR/modulez_${STRING}_${FLOOR}.$FORMAT    $BATCH
 
  134     rm -f  $MODULE_ROOT $G1_TXT $G1_ROOT
 
  138 if [[ "$FLOORS" == "1-18" ]]; then
 
  140     echo -n "Creating graphics for string $STRING.."
 
  145         $WORKDIR/modulez_${STRING}_*.$FORMAT    \
 
  146         $WORKDIR/modulez_${STRING}.$FORMAT      >& /dev/null
 
  148     echo " -> $WORKDIR/modulez_${STRING}.$FORMAT"
 
  150     rm -f $WORKDIR/modulez_${STRING}_*.$FORMAT