Adding a reminder for coders
[u/mrichter/AliRoot.git] / prod / cosmic / recpointqa.sh
1 #!/bin/sh 
2 #############################################################################
3 # recpoints.sh. Front-end script to run reconstruction from the grid chunks
4 # Usage:
5 #    ./recpoints.sh <run_number> <pass_number>
6 #############################################################################
7 #
8 # modification history
9 # version 1.0  March 2010 
10 # author Yves Schutz CERN
11 #
12
13 # SET THE FOLLOWING PARAMETERS IF NEEDED: 
14 # ---------------------------------------
15 # ---------------------------------------
16 kill -9 `ps | grep aliroot | awk '{print $1}'`
17
18 export RUNNUM=$1
19 export PASS=$2
20 export DET=$3
21 PROGRAM=aliroot
22
23 [ -z $RUNNUM ] && { echo "Please provide a run number..."; exit 1; }
24 [ -z $PASS ] && { echo "Please provide a pass number..."; exit 1; }
25 [ -z $DET ] && { echo "Please provide a detector name..."; exit 1; }
26
27 [ ! -e "$HOME/.globus/usercert.pem" ] && { echo "FAILED: There is no certificate in $HOME/.globus"; exit 1; }
28
29 alien-token-init 
30 source /tmp/gclient_env_$UID;
31
32 [ ! "$?" -eq "0" ] && { echo "FAILED: Token creation failed"; exit 1; }
33
34 VERSION=1.0
35 TITLE="Standalone QA checking of Grid recpoints chunks. v$VERSION"
36
37 # Retrieve the list of chunks from AliEn.......
38 export BASEDIR="/alice/data/20*"
39 PATTERN="$RUNNUM/ESDs/pass${PASS}/*${RUNNUM}*/${DET}.RecPoints.root"
40 aliensh -c "gbbox find $BASEDIR $PATTERN" > collection.tmp
41
42 [ `ls -al collection.tmp | awk '{print $5}'` -eq 0 ] && { echo "No chunks found for the given run"; exit 1; }
43 rm -r collection.tmp2
44 #
45 for ifile in `cat collection.tmp | grep root` ; do printf $ifile" "\|" "0" " >> collection.tmp2 ; done
46 list=`cat collection.tmp2`
47 [ -e collection.tmp2 ] && { rm -f collection.tmp2 ; } 
48 totChunks=`cat collection.tmp | wc -l`
49 rm -f collection.tmp
50
51 tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
52 trap "rm -f $tempfile" 0 1 2 5 15
53 dialog --clear --no-cancel --title "$TITLE" \
54         --ok-label OK --checklist "$totChunks chunks available for run $RUNNUM (only the first 500 are shown). Select chunks for reconstruction" 18 80 10 \
55         $list 2> $tempfile
56
57 CHUNKS=`cat $tempfile`
58 echo "Selected chunks:"
59 echo $CHUNKS
60
61  
62 for filename in $CHUNKS; do
63     filename="${filename//\"}"
64     set -- "${filename%  /pass${PASS}*}" 
65     set -- "${1##*/pass${PASS}/}"
66     CHUNK="${1/\/${DET}*}"
67     echo "Running QA for chunk $filename. Outputs will be stored in "$RUNNUM"/"$CHUNK
68     [ -d $RUNNUM"/"$CHUNK ] && echo $RUNNUM"/"$CHUNK "exists" || mkdir -p $RUNNUM"/"$CHUNK
69     cd $RUNNUM"/"$CHUNK
70     [ -f ${DET}.QA.${RUNNUM}.root ] && rm ${DET}.QA.${RUNNUM}.root
71     [ -f QAImageQA.${RUNNUM}.ps ] && rm QAImageQA.${RUNNUM}.ps
72     [ -f QA.root ] && rm QA.root
73     [ -f ${DET}.RecPoints.root ] && echo "file ${DET}.RecPoints.root already there" || alien_cp alien://$filename .
74     filename="${filename/${DET}.RecPoints/galice}"
75     [ -f galice.root ] && echo "file galice.root already there" || alien_cp alien://$filename .
76     filename="${filename/galice/AliESDs}"
77     [ -f AliESDs.root ] && echo "file AliESDs.root already there" || alien_cp alien://$filename .
78 $PROGRAM -b<<EOF
79   .L $ALICE_ROOT/prod/cosmic/recpointqa.C++
80   recpointqa()
81   .q 
82 EOF
83 cd ..
84 done
85 #ls */Merged.QA.Data.root > merged.list
86 #outfile="Merged.QA.Data."$RUNNUM".root"
87 #$PROGRAM -b <<EOF
88 #.L $ALICE_ROOT/test/cosmic/MergeQAMerged.C
89 #MergeQAMerged("$outfile", "merged.list") ; 
90 #.q
91 #EOF
92 #rm -f merged.list
93 #$PROGRAM -b -q $ALICE_ROOT/test/cosmic/qasummary.C 
94 #$PROGRAM -b  $ALICE_ROOT/test/QA/menuQA.C
95 #cd ..