#!/bin/sh
#
# ========================================================================
#
# *
# * This file is part of MARS, the MAGIC Analysis and Reconstruction
# * Software. It is distributed to you in the hope that it can be a useful
# * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
# * It is distributed WITHOUT ANY WARRANTY.
# *
# * Permission to use, copy, modify and distribute this software and its
# * documentation for any purpose is hereby granted without fee,
# * provided that the above copyright notice appear in all copies and
# * that both that copyright notice and this permission notice appear
# * in supporting documentation. It is provided "as is" without express
# * or implied warranty.
# *
#
#
#   Author(s): Daniela Dorner  08/2005 <mailto:dorner@astro.uni-wuerzburg.de>
#
#   Copyright: MAGIC Software Development, 2000-2006
#
#
# ========================================================================
#
# This script produces the qualityplots in the web by executing the macro 
# plotdb.C 
# 
# After checking, if the script is already running, the plots are produced 
# (ps and root file). Then they are moved to the webdirectory and there png 
# files are produced from the ps file. 
#

source `dirname $0`/sourcefile
printprocesslog "INFO starting $0"
program=doqualityplots

set -C

cd $mars

scriptlog=$runlogpath/$program-$datetime.log
date >> $scriptlog 2>&1

# check if script is already running
lockfile=$lockpath/lock-$program.txt
checklock  >> $scriptlog 2>&1

# producing the plots with the values from the database 
echo "producing plots: " >> $scriptlog 2>&1
printprocesslog "INFO producing data quality plots"
check0=`root -q -b $macrospath/plotdb.C+\(\) | tee -a $scriptlog | intgrep`

case $check0 in 
    1)   echo " check0=$check0 -> everything ok -> move files" >> $scriptlog 2>&1
         printprocesslog "INFO plots successfully produced"
         ;;
    *)   echo " check0=$check0 -> ERROR -> couldn't create plots -> exit" >> $scriptlog 2>&1
         printprocesslog "ERROR producing plots failed"
         finish >> $scriptlog 2>&1
         ;;
esac

# making files available in the web
printprocesslog "INFO moving files to web"
webpath=/www/htdocs/datacenter/datacheck
name=plotdb
psfile=$webpath/$name.ps

echo "moving files: " >> $scriptlog 2>&1
mv -v $name.{root,ps} $webpath  >> $scriptlog 2>&1

echo "creating temporary dir for pstoimg..." >> $scriptlog 2>&1
tempwebplotspath=$webpath/tempqualityplots
makedir $tempwebplotspath >> $scriptlog 2>&1

echo "producing png files: " >> $scriptlog 2>&1
pstoimg -antialias -flip r270 -density 100 -tmp $tempwebplotspath -type png -multipage $psfile >> $scriptlog 2>&1

echo "removing temporary dir..." >> $scriptlog 2>&1
rmdir -v $tempwebplotspath >> $scriptlog 2>&1

# second part
# making plots for all datasets
printprocesslog "INFO producing plots for datasets"
datasets=`find $datapath/ganymed -name ganymed*.root | grep -v summary`

for dataset in ${datasets[@]}
do 
   printprocesslog "INFO producing plots for dataset $dataset"
   nr=`echo $dataset | cut -d/ -f6`
   nr2=`echo $nr | cut -c 1-5`
   outpath=`dirname $dataset`
   webpath=`echo $outpath | sed -e 's/magic\/data/www\/htdocs\/datacenter/'`
   plotlog=$outpath/plotdb$nr.log
   datasetfile=$datasetpath/$nr2/dataset$nr.txt
   makedir $outpath >> $scriptlog 2>&1
   rm -v $plotlog >> $scriptlog 2>&1
   check1=`root -q -b $macrospath/plotdb.C+\("\"$datasetfile\""\) 2>>$plotlog | tee -a $scriptlog | intgrep`
   echo " check1: "$check1 >> $scriptlog 2>&1
   newpsfile=$outpath/plotdb$nr.ps
   newrootfile=$outpath/plotdb$nr.root
   mv -v plotdb.ps $newpsfile >> $scriptlog 2>&1
   mv -v plotdb.root $newrootfile >> $scriptlog 2>&1
   cp -v $newrootfile $webpath >> $scriptlog 2>&1
   check1=
done

finish >> $scriptlog 2>&1

