21d4a8d1 |
1 | #!/bin/sh |
2 | ############################################################################# |
3 | # rec.sh. Front-end script to run reconstruction from the grid chunks |
4 | # Usage: |
5 | # ./rec.sh <run_number> |
6 | ############################################################################# |
7 | # |
8 | # modification history |
9 | # version 1.0 2008/03/04 02:12 Marco Meoni |
10 | |
11 | # SET THE FOLLOWING PARAMETERS IF NEEDED: |
12 | # --------------------------------------- |
13 | YEAR=08 |
14 | ALIENBIN=$ALIEN_ROOT/bin |
15 | DIALOG=${DIALOG=dialog} |
16 | PATH=$PATH:$ALIEN_ROOT/api/bin |
17 | #LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/alien/api/lib |
18 | # --------------------------------------- |
19 | |
20 | RUNNUM=$1 |
21 | |
22 | if [ -z $RUNNUM ]; then |
23 | echo "Please provide a run number..." |
24 | exit |
25 | fi |
26 | |
27 | [ -e $ALIENBIN/alien ] || { echo "Cannot find AliEn client: missing ALIEN_ROOT environment variable and/or AliEn installation..."; exit 1; } |
28 | |
29 | VERSION=1.0 |
30 | TITLE="Standalone reconstruction of Grid rawdata chunks. v$VERSION" |
31 | ALIEN="$ALIENBIN/alien login -exec" |
32 | |
33 | # Retrieve the list of chunks from AliEn....... |
34 | BASEDIR="/alice/data/20"$YEAR |
35 | PATTERN=$YEAR"0000"$RUNNUM"*0.root" |
36 | |
37 | $ALIEN " find $BASEDIR $PATTERN" > collection.tmp |
38 | [ $(stat -c%s collection.tmp) -eq 0 ] && { echo "No chunks found for the given run"; exit 1; } |
39 | list=`cat collection.tmp | awk '{printf("%s %s %s ",$1," .","0");}'` |
40 | rm -f collection.tmp |
41 | |
42 | totChunks=`echo $list | wc -w`; totChunks=`echo \($totChunks / 3\) | bc` |
43 | |
44 | tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$ |
45 | trap "rm -f $tempfile" 0 1 2 5 15 |
46 | |
47 | $DIALOG --clear --no-cancel --title "$TITLE" \ |
48 | --ok-label OK --checklist "$totChunks chunks available. Select chunks for reconstruction" 18 74 10 \ |
49 | $list 2> $tempfile |
50 | |
51 | CHUNKS=`cat $tempfile`" ." |
52 | echo "Selected chunks:" |
53 | echo $CHUNKS |
54 | echo |
55 | |
56 | alien-token-init |
57 | . /tmp/gclient_env_$UID |
58 | |
59 | echo $CHUNKS | while read -d " " filename; do |
60 | filename=${filename//\"/} |
61 | CHUNK=`echo $filename | cut -d "/" -f 8 | cut -d "." -f 1,2 | cut -c 12-14,16-` |
62 | |
63 | echo "Running AliRoot reconstruction for chunk $filename. Outputs will be stored in "$RUNNUM"/"$CHUNK"." |
64 | rm -rf $RUNNUM"/"$CHUNK |
65 | mkdir -p $RUNNUM"/"$CHUNK |
66 | cd $RUNNUM"/"$CHUNK |
67 | aliroot -b -q ../../rec.C\(\"alien://$filename\"\) 2>&1 | tee rec.log |
68 | cd ../.. |
69 | done |