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
16 # runCPass1.sh raw.root 50 104892
19 # $1 = raw input filename
20 runNum=`echo $1 | cut -d "/" -f 6 | sed 's/^0*//'`
26 triggerOptions="?Trigger=kCalibBarrel"
34 triggerOptions="?Trigger=kCalibBarrel"
38 # local setup in case we specify the trigger mask
44 if [ "${CHUNKNAME:0:1}" = "/" ]; then
45 FILENAME=${CHUNKNAME##*/}
47 if [ -f "$FILENAME" ]; then
48 # locally downloaded chunk
49 CHUNKNAME="`pwd`/$FILENAME"
51 # one chunk from alien (nodownload option to the collection)
52 CHUNKNAME="alien://$CHUNKNAME"
56 if [ -f "wn.xml" ]; then
57 # several chunks accessed remotely
58 CHUNKNAME="collection://wn.xml"
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 "* ************************"
73 if [ -f Run0_999999999_v3_s0.root ]; then
74 echo "* TPC correction file found"
76 mkdir -p TPC/Calib/Correction
77 mv Run0_999999999_v3_s0.root TPC/Calib/Correction/
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
86 echo "* LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
89 if [ "$2" == "OCDB" ]; then
90 export OCDB_SNAPSHOT_CREATE="kTRUE"
91 export OCDB_SNAPSHOT_FILENAME="OCDB.root"
93 echo "* Running AliRoot to generate the OCDB based on $CHUNKNAME"
95 echo "OCDB/recCPass1.C" >&2
96 time aliroot -l -b -q recCPass1.C\(\"$CHUNKNAME\"\) &> rec.log
98 echo "Exit code: $exitcode"
100 echo "* Reconstruction ran in fake mode to create OCDB.root, exiting quickly now"
101 touch OCDB.generating.job
103 if [ -f OCDB.root ]; then
104 echo "* OCDB.root was indeed produced"
106 echo "* Error: OCDB.root was NOT generated !!!"
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
120 for BARREL_FILE in recCPass1.C runCalibTrain.C; do
121 ln -s ../$BARREL_FILE Barrel/$BARREL_FILE
124 for OUTER_FILE in recCPass1_OuterDet.C; do
125 ln -s ../$OUTER_FILE OuterDet/$OUTER_FILE
128 #################################### Barrel #######################################
132 echo "* Running AliRoot to reconstruct barrel of $CHUNKNAME"
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
137 echo "Exit code: $exitcode"
139 if [ $exitcode -ne 0 ]; then
143 mv syswatch.log ../syswatch_rec_Barrel.log
145 echo "* Running AliRoot to make calibration..."
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
150 echo "Exit code: $exitcode"
152 if [ $exitcode -ne 0 ]; then
156 mv syswatch.log ../syswatch_calib.log
158 if [ -f QAtrain_duo.C ]; then
159 echo "* Running the QA train (barrel) ..."
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
165 echo "Exit code: $exitcode"
167 if [ $exitcode -ne 0 ]; then
171 for file in *.stat; do
172 mv $file ../$file.qa_barrel
176 mv AliESDs.root ../AliESDs_Barrel.root
177 mv AliESDfriends.root ../AliESDfriends_Barrel.root
179 for file in AliESDfriends_v1.root QAresults_barrel.root EventStat_temp_barrel.root AODtpITS.root; do
180 if [ -f "$file" ]; then
185 #################################### Outer #######################################
189 echo "* Running AliRoot to reconstruct outer of $CHUNKNAME"
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
194 echo "Exit code: $exitcode"
196 if [ $exitcode -ne 0 ]; then
200 mv syswatch.log ../syswatch_rec_Outer.log
202 if [ -f QAtrain_duo.C ]; then
203 echo "* Running the QA train (outer) ..."
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
209 echo "Exit code: $exitcode"
211 if [ $exitcode -ne 0 ]; then
215 for file in *.stat ; do
216 mv $file ../$file.qa_outer
220 mv AliESDs.root ../AliESDs_Outer.root
221 mv AliESDfriends.root ../AliESDfriends_Outer.root
223 for file in QAresults_outer.root EventStat_temp_outer.root; do
224 if [ -f "$file" ]; then