]>
Commit | Line | Data |
---|---|---|
0c1bd98e | 1 | #! /bin/bash |
2 | # 1. Merge all the QAData files from a given Run | |
3 | # 2. Run rge QA Checker on the merged file | |
4 | PRODYEAR=$2 | |
5 | PRODCYCLE=$3 | |
6 | RUNNUMBER=$4 | |
7 | BASEDIR="" | |
8 | MODE="" | |
9 | XMLCOLL="QA"_$RUNNUMBER".xml" | |
10 | PATTERN="Merged.QA.Data.root" | |
11 | MERGEDOUT="Merged.QA.Data.$RUNNUMBER.root" | |
12 | dialog=/sw/bin/dialog | |
13 | Help(){ | |
14 | echo "Usage: MergeAndCheck.sh -h|s|r [xxxx, yyyy, zzzz]" | |
15 | echo " -h : get this list" | |
16 | echo " -s <production year> <production cycle> <run number> : processes MC data" | |
17 | echo " -r <year> <production cycle> <run number> : processes RAW data" | |
18 | echo " -c <run number> : processes RAW data only" | |
19 | } | |
20 | ||
21 | SetupAliEnEnv(){ | |
22 | echo "...............Setting up AliEn environment" | |
23 | if [ ! -e "$HOME/.globus/usercert.pem" ]; then | |
24 | echo "No grid certificate found in $HOME/.globus" | |
25 | exit 1 | |
26 | fi | |
27 | if [ ! -e "/tmp/gclient_env_$UID" ]; then | |
28 | alien-token-init | |
29 | if [ ! "$?" -eq "0" ]; then | |
30 | echo "alien-token-init failed" | |
31 | exit 1 | |
32 | fi | |
33 | else | |
34 | source /tmp/gclient_env_$UID | |
35 | fi | |
36 | } | |
37 | ||
38 | MakeXML(){ | |
39 | echo "...............Make XML for" $BASEDIR | |
40 | gbbox find -x MergedQACollection $BASEDIR $PATTERN > $XMLCOLL | |
41 | } | |
42 | ||
43 | Merge(){ | |
44 | echo "...............Make Merge of" $BASEDIR | |
45 | aliroot -b << EOF | |
46 | AliQAManager * qam = AliQAManager::QAManager($MODE) ; | |
47 | qam->MergeXML("$XMLCOLL", NULL, "$MERGEDOUT") | |
48 | .q | |
49 | EOF | |
50 | } | |
51 | ||
52 | Check(){ | |
53 | echo "...............Make Check of $MERGEDOUT" | |
54 | if [ -e "QA$RUNNUMBER.root" ] ; then | |
55 | rm QA$RUNNUMBER.root | |
56 | fi | |
57 | if [ -e "QA.root" ] ; then | |
58 | rm QA.root | |
59 | fi | |
60 | aliroot -b << EOF | |
61 | AliQAv1::SetQARefStorage("local://$ALICE_ROOT/QAref") ; | |
62 | AliQAChecker::Instance()->Run("$MERGEDOUT") | |
63 | .q | |
64 | EOF | |
65 | mv QA.root QA$RUNNUMBER.root | |
66 | } | |
67 | # Start | |
68 | if [ $# -eq 0 ] ; then | |
69 | Help | |
70 | exit 1 | |
71 | fi | |
72 | # help | |
73 | if [ "$1" == "-h" ] ; then | |
74 | Help | |
75 | exit 0 | |
76 | fi | |
77 | # run | |
78 | if [ "$1" == "-s" -o "$1" == "-r" ] ; then | |
79 | if [ $# -lt 4 ] ; then | |
80 | echo "Missing data !" | |
81 | Help | |
82 | exit 1 | |
83 | fi | |
84 | if [ "$1" == "-s" ] ; then | |
85 | BASEDIR="/alice/sim/"$PRODYEAR"/"$PRODCYCLE"/"$RUNNUMBER | |
86 | MODE="AliQAv1::kSIMMODE" | |
87 | fi | |
88 | if [ "$1" == "-r" ] ; then | |
89 | BASEDIR="/alice/data/"$PRODYEAR"/"$PRODCYCLE"/"$RUNNUMBER | |
90 | MODE="AliQAv1::kRECMODE" | |
91 | fi | |
92 | SetupAliEnEnv | |
93 | MakeXML | |
94 | Merge | |
95 | Check | |
96 | fi | |
97 | if [ "$1" == "-c" ] ; then | |
98 | if [ $# -lt 2 ] ; then | |
99 | echo "Missing data !" | |
100 | Help | |
101 | exit 1 | |
102 | fi | |
103 | RUNNUMBER=$2 | |
104 | MERGEDOUT="Merged.QA.Data.$RUNNUMBER.root" | |
105 | Check | |
106 | fi | |
107 | # Done | |
108 | if [ -e $XMLCOLL ] ; then | |
109 | rm $XMLCOLL | |
110 | fi | |
111 | exit 0 |