2 #############################################################################
3 # rawqa.sh. Front-end script to run reconstruction from the grid chunks
5 # ./rawqa.sh <run_number>
6 #############################################################################
9 # version 1.0 July 2008 adapated from rec.C by M. Meoni
10 # author Yves Schutz CERN
14 # SET THE FOLLOWING PARAMETERS IF NEEDED:
15 # ---------------------------------------
18 # ---------------------------------------
22 [ -z $RUNNUM ] && { echo "Please provide a run number..."; exit 1; }
24 [ ! -e "$HOME/.globus/usercert.pem" ] && { echo "FAILED: There is no certificate in $HOME/.globus"; exit 1; }
26 [ -e "/tmp/gclient_env_$UID" ] && { source /tmp/gclient_env_$UID; }
29 [ ! "$?" -eq "0" ] && { echo "FAILED: Token creation failed"; exit 1; }
32 TITLE="Standalone QA checking of Grid rawdata chunks. v$VERSION"
34 # Retrieve the list of chunks from AliEn.......
35 export BASEDIR="/alice/data/20"$YEAR
36 PATTERN="/raw/"$YEAR"0000"$RUNNUM"*0.root"
37 #aliensh -c "gbbox find $BASEDIR $PATTERN" | head --lines=-1 > collection.tmp
38 aliensh -c "gbbox find $BASEDIR $PATTERN" > collection.tmp
40 [ `ls -al collection.tmp | awk '{print $5}'` -eq 0 ] && { echo "No chunks found for the given run"; exit 1; }
43 for ifile in `cat collection.tmp | grep root` ; do printf $ifile" "\|" "0" " >> collection.tmp2 ; done
44 list=`cat collection.tmp2`
45 [ -e collection.tmp2 ] && { rm -f collection.tmp2 ; }
46 totChunks=`cat collection.tmp | wc -l`
49 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
50 trap "rm -f $tempfile" 0 1 2 5 15
51 dialog --clear --no-cancel --title "$TITLE" \
52 --ok-label OK --checklist "$totChunks chunks available for run $RUNNUM (only the first 500 are shown). Select chunks for reconstruction" 18 80 10 \
55 CHUNKS=`cat $tempfile`
56 echo "Selected chunks:"
60 #dialog --clear --no-cancel \
61 # --ok-label OK --radiolist "Program to run:" 15 20 5 "aliroot -b" \| on alieve \| off 2> $tempfile
62 PROGRAM=aliroot #`cat $tempfile`
64 for filename in $CHUNKS; do
65 filename=${filename//\"/}
66 CHUNK=`basename $filename | cut -d "." -f 1,2`
67 echo "Running QA for chunk $filename. Outputs will be stored in "$RUNNUM"/"$CHUNK"."
68 rm -rf $RUNNUM"/"$CHUNK
69 mkdir -p $RUNNUM"/"$CHUNK
71 $PROGRAM -q $ALICE_ROOT/test/cosmic/rawqa.C\(\"$filename\"\) 2>&1 | tee rawqa.log