4 # 2 - number of chunks processed
6 # source /usr/local/grid/AliRoot/HEAD0108/TPC/scripts/tpcCalibTrain.sh `pwd`
7 # source /lustre/alice/marin/soft64/AliRoot/v4-17-Rev-18/TPC/scripts/tpcCalibTrain.sh `pwd`
8 # work directory for test /lustre/alice/marin/rec/testRec1
11 #export balice=/u/miranov/.balice
12 #export balice=/lustre/alice/marin/soft64/setvar0417rev18.sh
13 export balice=/lustre/alice/marin/soft64/setvartrunk021209.sh
15 export aliensetup=$HOME/alienSetup.sh
19 #export PASS0_DIR=/usr/local/grid/AliRoot/HEAD0108
20 #export PASS0_DIR=/lustre/alice/marin/soft64/AliRoot/v4-17-Rev-18
21 export PASS0_DIR=/lustre/alice/marin/soft64/AliRoot/trunk021209
22 #export PASS0_DIR=$ALICE_ROOT
32 if [ ! -n length ]; then
33 echo \############################
34 echo Directory was not specified. Exiting
35 echo \############################
38 if [ ! -r $workdir/lists/esd.list ] ; then
39 echo \############################
40 echo File esd list does not exist. Exiting
41 echo \############################
44 if [ ! -r $workdir/lists/run.list ] ; then
45 echo \############################
46 echo File run list does not exist. Exiting
47 echo \############################
55 chgrp -R alice $workdir
56 chmod -R g+rwx $workdir
57 chmod -R o+rx $workdir
58 mkdirhier $workdir/calibNoDrift
59 mkdirhier $workdir/calibNoRefit
60 mkdirhier $workdir/calibQA
64 # copy predefined Config files
66 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibNoDrift/CalibrateTPC.C
67 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C | grep -v AddCalibCalib\(task\) > calibNoRefit/CalibrateTPC.C
68 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibQA/CalibrateTPC.C
69 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoDrift.C calibNoDrift/ConfigOCDB.C
70 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoRefit.C calibNoRefit/ConfigOCDB.C
71 cp $ALICE_ROOT/TPC/macros/ConfigOCDBQA.C calibQA/ConfigOCDB.C
72 cp lists/*.list calibNoDrift/
73 cp lists/*.list calibNoRefit/
74 cp lists/*.list calibQA/
75 ln -sf $balice calibNoDrift/balice.sh
76 ln -sf $balice calibNoRefit/balice.sh
77 ln -sf $balice calibQA/balice.sh
78 ln -sf $aliensetup calibNoDrift/alienSetup.sh
79 ln -sf $aliensetup calibNoRefit/alienSetup.sh
80 ln -sf $aliensetup calibQA/alienSetup.sh
84 echo \##################################################
85 echo Info Making calibNoDrift workspace and submit jobs
86 echo \##################################################
89 cd $workdir/calibNoDrift
90 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
91 bgroupNoDrift=/recalib/`pwd | xargs basename`
94 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoDrift " $nChunks
95 nJobsNoDriftSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
97 echo \############################
98 echo Info $nJobsNoDriftSub submitted
99 echo \############################
101 echo \##################################################
102 echo Info Making calibNoRefit workspace and submit jobs
103 echo \##################################################
105 cd $workdir/calibNoRefit
106 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
107 bgroupNoRefit=/recalib/`pwd | xargs basename`
110 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoRefit " $nChunks
111 nJobsNoRefitSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
113 echo \############################
114 echo Info $nJobsNoRefitSub submitted
115 echo \############################
117 nJobsNoDriftRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
119 nJobsNoRefitRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
123 export totalTime=5400
125 export restTime=$totalTime
127 while [ $restTime -gt 0 ];do
128 nJobsNoDriftRun=`bjobs -g $bgroupNoDrift -W | grep submitCalibJob.sh | grep -c calibNoDrift`
129 let ratioNoDriftRunSub=100*nJobsNoDriftRun/nJobsNoDriftSub
130 if [ $nJobsNoDriftSub -eq 0 ]; then
131 let ratioNoDriftRunSub=0
134 # nJobsGrNoDrift=`bjobs -g $bgroupNoDrift`
136 # Finding Jobs that crashed but still in queue To be debugged, does not work properly
138 # for a in `bjobs -g /recalib/calibNoDrift| gawk '{print $1}'` ; do
139 # iszombie=`bpeek $a | grep "segmentation violation"| gawk '{print $2}'`;
140 # echo Status $iszombie , $comp
141 # if [ "x$iszombie" == "x$comp" ]; then
142 # echo The jobs id $a needs to be killed
149 echo \############################
150 echo Info $nJobsNoDriftSub calibNoDrift jobs submitted $nJobsNoDriftRun $nJobsGrNoDrift still running $ratioNoDriftRunSub %
151 echo \############################
153 nJobsNoRefitRun=`bjobs -g $bgroupNoRefit -W | grep submitCalibJob.sh | grep -c calibNoRefit`
154 let ratioNoRefitRunSub=100*nJobsNoRefitRun/nJobsNoRefitSub
155 if [ $nJobsNoRefitSub -eq 0 ] ; then
156 let ratioNoRefitRunSub=0
160 # nJobsGrNoRefit=`bjobs -g $bgroupNoRefit`
162 # Finding Jobs that crashed but still in queue To be debugged does not work properly
163 # for a in `bjobs -g /recalib/calibNoRefit| gawk '{print $1}'` ; do
164 # iszombie=`bpeek $a | grep "segmentation violation"| gawk '{print $2}'`;
165 # echo Status $iszombie , $comp
166 # if [ "x$iszombie" == "x$comp" ]; then
167 # echo The jobs id $a needs to be killed
174 echo \############################
175 echo Info $nJobsNoRefitSub calibNoRefit jobs submitted $nJobsNoRefitRun $nJobsGrNoRefit still running $ratioNoRefitRunSub %
176 echo \############################
178 echo Sleeping $timeSleep , time to go $restTime
179 let restTime=restTime-timeSleep
182 if [ $ratioNoDriftRunSub -le 10 ]; then
183 if [ $ratioNoRefitRunSub -le 10 ]; then
193 ##############################################
194 # Submit merging when all calib jobs are done
195 ##############################################
198 cd $workdir/calibNoDrift
199 bgroupMgNoDrift=/mergecalib/`pwd | xargs basename`
200 bgadd $bgroupMgNoDrift
201 echo $bgroupMgNoDrift
202 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoDrift"
204 cd $workdir/calibNoRefit
205 bgroupMgNoRefit=/mergecalib/`pwd | xargs basename`
206 bgadd $bgroupMgNoRefit
207 echo $bgroupMgNoRefit
208 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoRefit"
210 nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
211 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
214 export totalTime=3600
216 export restTime=$totalTime
218 while [ $restTime -gt 0 ];do
219 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
220 let ratioNoDriftMergeRunSub=100*nJobsNoDriftMergeRun/nJobsNoDriftMergeSub
221 if [ $nJobsNoDriftMergeSub -eq 0 ] ; then
222 let ratioNoDriftMergeRunSub=0
226 echo \############################
227 echo Info $nJobsNoDriftMergeSub jobs submitted for merging, $nJobsNoDriftMergeRun running $ratioNoDriftMergeRunSub % left
228 echo \############################
231 echo Sleeping $timeSleep , time to go $restTime
232 let restTime=restTime-timeSleep
235 if [ $ratioNoDriftMergeRunSub -le 10 ]; then
244 echo \############################
246 echo \############################
248 #nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
249 #nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
252 #export totalTime=3600
254 #export restTime=$totalTime
256 #while [ $restTime -ge 0 ];do
257 # nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
259 # echo \############################
260 # echo Info $nJobsNoDriftMergeRun jobs for merging
261 # echo \############################
264 # echo Sleeping $timeSleep , time to go $restTime
265 # let restTime=restTime-timeSleep
268 # if [ $nJobsNoDriftMergeRun -ge 0 ]; then
285 cd $workdir/calibNoDrift
286 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
288 cd $workdir/calibNoRefit
289 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
291 nJobsNoDriftMergeCalibSub=`bjobs -W | grep -c CalibFileMerger`
292 nJobsNoDriftMergeCalibRun=`bjobs -W | grep -c CalibFileMerger`
294 cd $workdir/calibNoDrift
295 find `pwd`/* | grep err > errRec.log
296 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
298 cd $workdir/calibNoRefit
299 find `pwd`/* | grep err > errRec.log
300 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
305 echo \############################
306 echo Step 7 running tpcCalibTrain script done
307 echo \############################
314 #$ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
315 #$ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list alice-t3 20