]>
Commit | Line | Data |
---|---|---|
a45764d9 | 1 | #!/bin/bash |
2 | ||
3 | # Script to run: | |
4 | # 1. reconstruction | |
e6844064 | 5 | # 2. calibration |
a45764d9 | 6 | # |
7 | # Files assumed to be in working directory: | |
054d9070 | 8 | # recCPass1.C - reconstruction macro |
a45764d9 | 9 | # runCalibTrain.C - calibration/filtering macro |
10 | # Arguments (run locally): | |
11 | # 1 - raw data file name | |
12 | # 2 - number of events to be processed | |
13 | # 3 - run number | |
e6844064 | 14 | |
a45764d9 | 15 | # example: |
e6844064 | 16 | # runCPass1.sh raw.root 50 104892 |
a45764d9 | 17 | |
18 | #ALIEN setting | |
19 | # $1 = raw input filename | |
25e2b4b3 | 20 | runNum=`echo $1 | cut -d "/" -f 6 | sed 's/^0*//'` |
e6844064 | 21 | |
22 | if [ $# -eq 1 ]; then | |
23 | # alien Setup | |
24 | nEvents=99999999 | |
25 | ocdbPath="raw://" | |
26 | triggerOptions="?Trigger=kCalibBarrel" | |
27 | fi | |
28 | ||
29 | if [ $# -ge 4 ]; then | |
30 | # local setup | |
31 | nEvents=$2 | |
32 | runNum=$3 | |
33 | ocdbPath=$4 | |
34 | triggerOptions="?Trigger=kCalibBarrel" | |
a6168b42 | 35 | fi |
e6844064 | 36 | |
37 | if [ $# -eq 5 ]; then | |
38 | # local setup in case we specify the trigger mask | |
39 | triggerOptions=$5 | |
5cebce24 | 40 | fi |
41 | ||
42 | CHUNKNAME="$1" | |
43 | ||
44 | if [ "${CHUNKNAME:0:1}" = "/" ]; then | |
45 | FILENAME=${CHUNKNAME##*/} | |
46 | ||
47 | if [ -f "$FILENAME" ]; then | |
48 | # locally downloaded chunk | |
49 | CHUNKNAME="`pwd`/$FILENAME" | |
50 | else | |
51 | # one chunk from alien (nodownload option to the collection) | |
52 | CHUNKNAME="alien://$CHUNKNAME" | |
53 | fi | |
54 | fi | |
a6168b42 | 55 | |
5cebce24 | 56 | if [ -f "wn.xml" ]; then |
57 | # several chunks accessed remotely | |
58 | CHUNKNAME="collection://wn.xml" | |
a45764d9 | 59 | fi |
60 | ||
5cebce24 | 61 | echo "* ************************" |
62 | echo "* runCPass1.sh $*" | |
63 | echo "* Chunk name: $CHUNKNAME" | |
64 | echo "* Run number: $runNum" | |
e6844064 | 65 | echo "* nEvents: $nEvents" |
66 | echo "* runNum: $runNum" | |
67 | echo "* ocdbPath: $ocdbPath" | |
68 | echo "* triggerOptions: $triggerOptions" | |
5cebce24 | 69 | echo "* ************************" |
a45764d9 | 70 | |
e6844064 | 71 | mkdir Barrel OuterDet |
72 | ||
a45764d9 | 73 | if [ -f Run0_999999999_v3_s0.root ]; then |
5cebce24 | 74 | echo "* TPC correction file found" |
75 | ||
a45764d9 | 76 | mkdir -p TPC/Calib/Correction |
77 | mv Run0_999999999_v3_s0.root TPC/Calib/Correction/ | |
5cebce24 | 78 | |
e6844064 | 79 | for DIR in Barrel OuterDet; do |
80 | mkdir -p $DIR/TPC/Calib/Correction | |
81 | ln -s ../../../../TPC/Calib/Correction/Run0_999999999_v3_s0.root $DIR/TPC/Calib/Correction/Run0_999999999_v3_s0.root | |
82 | done | |
a45764d9 | 83 | fi |
84 | ||
5cebce24 | 85 | echo "* PATH: $PATH" |
86 | echo "* LD_LIBRARY_PATH: $LD_LIBRARY_PATH" | |
87 | echo | |
a45764d9 | 88 | |
5cebce24 | 89 | if [ "$2" == "OCDB" ]; then |
90 | export OCDB_SNAPSHOT_CREATE="kTRUE" | |
91 | export OCDB_SNAPSHOT_FILENAME="OCDB.root" | |
a45764d9 | 92 | |
5cebce24 | 93 | echo "* Running AliRoot to generate the OCDB based on $CHUNKNAME" |
a45764d9 | 94 | |
5cebce24 | 95 | echo "OCDB/recCPass1.C" >&2 |
96 | time aliroot -l -b -q recCPass1.C\(\"$CHUNKNAME\"\) &> rec.log | |
97 | exitcode=$? | |
98 | echo "Exit code: $exitcode" | |
99 | ||
100 | echo "* Reconstruction ran in fake mode to create OCDB.root, exiting quickly now" | |
101 | touch OCDB.generating.job | |
a45764d9 | 102 | |
5cebce24 | 103 | if [ -f OCDB.root ]; then |
104 | echo "* OCDB.root was indeed produced" | |
105 | else | |
106 | echo "* Error: OCDB.root was NOT generated !!!" | |
107 | exit 1 | |
108 | fi | |
a45764d9 | 109 | |
5cebce24 | 110 | exit $exitcode |
111 | fi | |
112 | ||
e6844064 | 113 | for COMMON_FILE in wn.xml localOCDBaccessConfig.C AddTaskTPCCalib.C OCDB.root QAtrain_duo.C; do |
114 | if [ -f $COMMON_FILE ]; then | |
115 | ln -s ../$COMMON_FILE Barrel/$COMMON_FILE | |
116 | ln -s ../$COMMON_FILE OuterDet/$COMMON_FILE | |
117 | fi | |
118 | done | |
5cebce24 | 119 | |
e6844064 | 120 | for BARREL_FILE in recCPass1.C runCalibTrain.C; do |
121 | ln -s ../$BARREL_FILE Barrel/$BARREL_FILE | |
122 | done | |
5cebce24 | 123 | |
e6844064 | 124 | for OUTER_FILE in recCPass1_OuterDet.C; do |
125 | ln -s ../$OUTER_FILE OuterDet/$OUTER_FILE | |
126 | done | |
5cebce24 | 127 | |
128 | #################################### Barrel ####################################### | |
129 | ||
383fa54e | 130 | cd Barrel |
a45764d9 | 131 | |
5cebce24 | 132 | echo "* Running AliRoot to reconstruct barrel of $CHUNKNAME" |
d74ff87e | 133 | |
02d883e6 | 134 | echo executing aliroot -l -b -q "recCPass1.C(\"$CHUNKNAME\",$nEvents,\"$ocdbPath\",\"$triggerOptions\")" |
135 | time aliroot -l -b -q "recCPass1.C(\"$CHUNKNAME\",$nEvents,\"$ocdbPath\",\"$triggerOptions\")" &> ../rec.log | |
5cebce24 | 136 | exitcode=$? |
137 | echo "Exit code: $exitcode" | |
383fa54e | 138 | |
5cebce24 | 139 | if [ $exitcode -ne 0 ]; then |
140 | exit $exitcode | |
141 | fi | |
383fa54e | 142 | |
5cebce24 | 143 | mv syswatch.log ../syswatch_rec_Barrel.log |
144 | ||
145 | echo "* Running AliRoot to make calibration..." | |
146 | ||
e6844064 | 147 | echo executing aliroot -l -b -q "runCalibTrain.C($runNum,\"AliESDs.root\",\"$ocdbPath\")" |
5cebce24 | 148 | time aliroot -l -b -q "runCalibTrain.C($runNum,\"AliESDs.root\",\"$ocdbPath\")" &> ../calib.log |
149 | exitcode=$? | |
150 | echo "Exit code: $exitcode" | |
151 | ||
152 | if [ $exitcode -ne 0 ]; then | |
153 | exit $exitcode | |
383fa54e | 154 | fi |
d74ff87e | 155 | |
5cebce24 | 156 | mv syswatch.log ../syswatch_calib.log |
157 | ||
158 | if [ -f QAtrain_duo.C ]; then | |
159 | echo "* Running the QA train (barrel) ..." | |
160 | ||
3de30698 | 161 | echo executing aliroot -b -q "QAtrain_duo.C(\"_barrel\",$runNum,\"wn.xml\",0,\"$ocdbPath\")" |
162 | time aliroot -b -q "QAtrain_duo.C(\"_barrel\",$runNum,\"wn.xml\",0,\"$ocdbPath\")" &> ../qa_barrel.log | |
e6844064 | 163 | |
5cebce24 | 164 | exitcode=$? |
165 | echo "Exit code: $exitcode" | |
d74ff87e | 166 | |
5cebce24 | 167 | if [ $exitcode -ne 0 ]; then |
168 | exit $exitcode | |
169 | fi | |
66c736ae | 170 | |
5cebce24 | 171 | for file in *.stat; do |
172 | mv $file ../$file.qa_barrel | |
173 | done | |
174 | fi | |
175 | ||
fcb0741e | 176 | mv AliESDs.root ../AliESDs_Barrel.root |
177 | mv AliESDfriends.root ../AliESDfriends_Barrel.root | |
178 | ||
179 | for file in AliESDfriends_v1.root QAresults_barrel.root EventStat_temp_barrel.root AODtpITS.root; do | |
5cebce24 | 180 | if [ -f "$file" ]; then |
181 | mv "$file" ../ | |
182 | fi | |
66c736ae | 183 | done |
d74ff87e | 184 | |
5cebce24 | 185 | #################################### Outer ####################################### |
186 | ||
187 | cd ../OuterDet | |
188 | ||
189 | echo "* Running AliRoot to reconstruct outer of $CHUNKNAME" | |
190 | ||
5cebce24 | 191 | echo executing aliroot -l -b -q "recCPass1_OuterDet.C(\"$CHUNKNAME\", $nEvents, \"$ocdbPath\")" |
192 | time aliroot -l -b -q "recCPass1_OuterDet.C(\"$CHUNKNAME\", $nEvents, \"$ocdbPath\")" &> ../rec_Outer.log | |
193 | exitcode=$? | |
194 | echo "Exit code: $exitcode" | |
195 | ||
196 | if [ $exitcode -ne 0 ]; then | |
197 | exit $exitcode | |
198 | fi | |
199 | ||
200 | mv syswatch.log ../syswatch_rec_Outer.log | |
201 | ||
202 | if [ -f QAtrain_duo.C ]; then | |
203 | echo "* Running the QA train (outer) ..." | |
204 | ||
3de30698 | 205 | echo executing aliroot -b -q "QAtrain_duo.C(\"_outer\",$runNum,\"wn.xml\",0,\"$ocdbPath\")" |
206 | time aliroot -b -q "QAtrain_duo.C(\"_outer\",$runNum,\"wn.xml\",0,\"$ocdbPath\")" &> ../qa_outer.log | |
e6844064 | 207 | |
5cebce24 | 208 | exitcode=$? |
209 | echo "Exit code: $exitcode" | |
210 | ||
211 | if [ $exitcode -ne 0 ]; then | |
212 | exit $exitcode | |
213 | fi | |
214 | ||
215 | for file in *.stat ; do | |
216 | mv $file ../$file.qa_outer | |
217 | done | |
218 | fi | |
219 | ||
383fa54e | 220 | mv AliESDs.root ../AliESDs_Outer.root |
5cebce24 | 221 | mv AliESDfriends.root ../AliESDfriends_Outer.root |
9e160db9 | 222 | |
5cebce24 | 223 | for file in QAresults_outer.root EventStat_temp_outer.root; do |
224 | if [ -f "$file" ]; then | |
225 | mv "$file" ../ | |
226 | fi | |
227 | done | |
9e160db9 | 228 | |
e6844064 | 229 | exit $exitcode |