#!/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/2004 # # Copyright: MAGIC Software Development, 2000-2006 # # # ======================================================================== # # This script links a special callisto.rc for data, for which the # calibration with the standard callisto.rc failes. # # The sequences with failing calibration are searched by searching for the # reason of failure in the callisto.log Then the special callisto.rc is # linked to the directory of the sequence. # user=`whoami` program=makecallistolinks source /home/$user/Mars/datacenter/scripts/sourcefile set -C callistorcseq=callisto.rc callistorcnew=callisto_Dec04Jan05.rc scriptlogpath=$logpath/run/$program/`date +%Y/%m/%d` makedir $scriptlogpath scriptlog=$scriptlogpath/$program`date +%F`.log date >> $scriptlog 2>&1 # check if script is already running lockfile=$lockpath/lock-$program.txt checklock >> $scriptlog 2>&1 # reason why calibration with standard callisto.rc fails reason1="Pulse is too much to the right, cannot go beyond logain limits!" reason2="Pulse is too much to the left, cannot go below 0!" echo "reason: "$reason >> $scriptlog 2>&1 # find files containing reason files=`find $datapath/callisto/ -name callisto*.log` # make links for callisto.rc for which the callisto.log contains reason for file in $files do pulse=`cat $file | grep "$reason1\|$reason2"` >> $scriptlog 2>&1 sequ=`echo $file | cut -d/ -f6` if [ ! "$pulse" = "" ] then if ! ls -l $callistorcseq | grep $callistorcnew >> $scriptlog 2>&1 then # resetting the calibration echo "resetting the callisto for sequence $sequ" >> $scriptlog 2>&1 resetlogpath=$logpath/resetcallisto echo "resetlogpath: $resetlogpath" >> $scriptlog 2>&1 makedir $resetlogpath >> $scriptlog 2>&1 resetlog=$resetlogpath/reset-callisto-$sequ.log check1=`root -q -b $macrospath/resetcolumn.C+\("\"fCallisto\""\,"\"SequenceProcessStatus\""\,"\"$sequ\""\,"\"$sequ\""\,kFALSE\) | tee $resetlog | grep int | sed -e 's/(int)//'` case $check1 in 1) echo "check1=$check1 -> everything ok, callisto has been reset " >> $scriptlog 2>&1 ;; *) echo "check1=$check1 -> ERROR -> step could not be resetted -> continue " >> $scriptlog 2>&1 continue ;; esac #linking callisto.rc path=`dirname $file` >> $scriptlog 2>&1 ln -vfs $setuppath/callisto/$callistorcnew $path/$callistorcseq >> $scriptlog 2>&1 fi fi done rm -v $lockfile >> $scriptlog 2>&1 set +C date >> $scriptlog 2>&1