]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/CalibMacros/CPass1/runCPass1.sh
Merge remote-tracking branch 'origin/master' into TPCdev
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass1 / runCPass1.sh
1 #!/bin/bash
2
3 # Script to run:
4 #    1. reconstruction
5 #    2. calibration
6 #
7 # Files assumed to be in working directory:
8 # recCPass1.C          - reconstruction macro
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 
14
15 # example:
16 # runCPass1.sh raw.root  50  104892
17
18 #ALIEN setting
19 # $1 = raw input filename
20 runNum=`echo $1 | cut -d "/" -f 6 | sed 's/^0*//'`
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"
35 fi
36
37 if [ $# -eq 5 ]; then
38     # local setup in case we specify the trigger mask
39     triggerOptions=$5
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
55
56 if [ -f "wn.xml" ]; then
57     # several chunks accessed remotely
58     CHUNKNAME="collection://wn.xml"
59 fi
60
61 echo "* ************************"
62 echo "* runCPass1.sh $*"
63 echo "* Chunk name: $CHUNKNAME"
64 echo "* Run number: $runNum"
65 echo "* nEvents: $nEvents"
66 echo "* runNum: $runNum"
67 echo "* ocdbPath: $ocdbPath"
68 echo "* triggerOptions: $triggerOptions"
69 echo "* ************************"
70
71 mkdir Barrel OuterDet
72
73 if [ -f Run0_999999999_v3_s0.root ]; then
74     echo "* TPC correction file found"
75
76     mkdir -p TPC/Calib/Correction
77     mv Run0_999999999_v3_s0.root TPC/Calib/Correction/
78
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
83 fi
84
85 echo "* PATH: $PATH"
86 echo "* LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
87 echo
88
89 if [ "$2" == "OCDB" ]; then
90     export OCDB_SNAPSHOT_CREATE="kTRUE"
91     export OCDB_SNAPSHOT_FILENAME="OCDB.root"
92
93     echo "* Running AliRoot to generate the OCDB based on $CHUNKNAME"
94
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
102
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
109
110     exit $exitcode
111 fi
112
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
119
120 for BARREL_FILE in recCPass1.C runCalibTrain.C; do
121     ln -s ../$BARREL_FILE Barrel/$BARREL_FILE
122 done
123
124 for OUTER_FILE in recCPass1_OuterDet.C; do
125     ln -s ../$OUTER_FILE OuterDet/$OUTER_FILE
126 done
127
128 ####################################   Barrel   #######################################
129
130 cd Barrel
131
132 echo "* Running AliRoot to reconstruct barrel of $CHUNKNAME"
133
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
136 exitcode=$?
137 echo "Exit code: $exitcode"
138
139 if [ $exitcode -ne 0 ]; then
140     exit $exitcode
141 fi
142
143 mv syswatch.log ../syswatch_rec_Barrel.log
144
145 echo "* Running AliRoot to make calibration..."
146
147 echo executing aliroot -l -b -q "runCalibTrain.C($runNum,\"AliESDs.root\",\"$ocdbPath\")"
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
154 fi
155
156 mv syswatch.log ../syswatch_calib.log
157
158 if [ -f QAtrain_duo.C ]; then
159     echo "* Running the QA train (barrel) ..."
160
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
163
164     exitcode=$?
165     echo "Exit code: $exitcode"
166
167     if [ $exitcode -ne 0 ]; then
168         exit $exitcode
169     fi
170
171     for file in *.stat; do
172         mv $file ../$file.qa_barrel
173     done
174 fi
175
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
180     if [ -f "$file" ]; then
181         mv "$file" ../
182     fi
183 done
184
185 ####################################   Outer   #######################################
186
187 cd ../OuterDet
188
189 echo "* Running AliRoot to reconstruct outer of $CHUNKNAME"
190
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
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
207
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
220 mv AliESDs.root ../AliESDs_Outer.root
221 mv AliESDfriends.root ../AliESDfriends_Outer.root
222
223 for file in QAresults_outer.root EventStat_temp_outer.root; do
224     if [ -f "$file" ]; then
225         mv "$file" ../
226     fi
227 done
228
229 exit $exitcode