4 # 2 - number of chunks processed
5 # 3 - cosmic or collisions
7 # source /usr/local/grid/AliRoot/HEAD0108/TPC/scripts/tpcCalibTrain.sh `pwd`
8 # source /lustre/alice/marin/soft64/AliRoot/v4-17-Rev-18/TPC/scripts/tpcCalibTrain.sh `pwd`
9 # work directory for test /lustre/alice/marin/rec/testRec1
13 export balice=/lustre/alice/marin/soft64/setvar0417rev20.sh
14 #export balice=/lustre/alice/marin/soft64/setvartrunk021209.sh
16 export aliensetup=$HOME/alienSetup.sh
31 echo IsComic $isCosmic
35 if [ ! -n length ]; then
36 echo \############################
37 echo Directory was not specified. Exiting
38 echo \############################
41 if [ ! -r $workdir/lists/esd.list ] ; then
42 echo \############################
43 echo File esd list does not exist. Exiting
44 echo \############################
47 if [ ! -r $workdir/lists/run.list ] ; then
48 echo \############################
49 echo File run list does not exist. Exiting
50 echo \############################
58 chgrp -R alice $workdir
59 chmod -R g+rwx $workdir
60 chmod -R o+rx $workdir
61 mkdirhier $workdir/calibNoDrift
62 mkdirhier $workdir/calibNoRefit
63 mkdirhier $workdir/calibQA
67 # copy predefined Config files
70 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibNoDrift/CalibrateTPC.C
71 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C | grep -v AddCalibCalib\(task\) > calibNoRefit/CalibrateTPC.C
72 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibQA/CalibrateTPC.C
74 if [ $isCosmic -eq 1 ] ; then
75 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C|grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoDrift/CalibrateTPC.C
77 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v AddCalibCalib\(task\) | grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoRefit/CalibrateTPC.C
79 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibQA/CalibrateTPC.C
82 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoDrift.C calibNoDrift/ConfigOCDB.C
83 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoRefit.C calibNoRefit/ConfigOCDB.C
84 cp $ALICE_ROOT/TPC/macros/ConfigOCDBQA.C calibQA/ConfigOCDB.C
85 cp lists/*.list calibNoDrift/
86 cp lists/*.list calibNoRefit/
87 cp lists/*.list calibQA/
88 ln -sf $balice calibNoDrift/balice.sh
89 ln -sf $balice calibNoRefit/balice.sh
90 ln -sf $balice calibQA/balice.sh
91 ln -sf $aliensetup calibNoDrift/alienSetup.sh
92 ln -sf $aliensetup calibNoRefit/alienSetup.sh
93 ln -sf $aliensetup calibQA/alienSetup.sh
97 echo \##################################################
98 echo Info Making calibNoDrift workspace and submit jobs
99 echo \##################################################
102 cd $workdir/calibNoDrift
103 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
104 bgroupNoDrift=/recalib/`pwd | xargs basename`
107 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoDrift " $nChunks
108 nJobsNoDriftSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
110 echo \############################
111 echo Info $nJobsNoDriftSub submitted
112 echo \############################
114 echo \##################################################
115 echo Info Making calibNoRefit workspace and submit jobs
116 echo \##################################################
118 cd $workdir/calibNoRefit
119 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
120 bgroupNoRefit=/recalib/`pwd | xargs basename`
123 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoRefit " $nChunks
124 nJobsNoRefitSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
126 echo \############################
127 echo Info $nJobsNoRefitSub submitted
128 echo \############################
130 nJobsNoDriftRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
132 nJobsNoRefitRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
136 export totalTime=5400
138 export restTime=$totalTime
140 while [ $restTime -gt 0 ];do
141 nJobsNoDriftRun=`bjobs -g $bgroupNoDrift -W | grep submitCalibJob.sh | grep -c calibNoDrift`
142 let ratioNoDriftRunSub=100*nJobsNoDriftRun/nJobsNoDriftSub
143 if [ $nJobsNoDriftSub -eq 0 ]; then
144 let ratioNoDriftRunSub=0
147 echo \############################
148 echo Info $nJobsNoDriftSub calibNoDrift jobs submitted $nJobsNoDriftRun $nJobsGrNoDrift still running $ratioNoDriftRunSub %
149 echo \############################
151 nJobsNoRefitRun=`bjobs -g $bgroupNoRefit -W | grep submitCalibJob.sh | grep -c calibNoRefit`
152 let ratioNoRefitRunSub=100*nJobsNoRefitRun/nJobsNoRefitSub
153 if [ $nJobsNoRefitSub -eq 0 ] ; then
154 let ratioNoRefitRunSub=0
161 echo \############################
162 echo Info $nJobsNoRefitSub calibNoRefit jobs submitted $nJobsNoRefitRun $nJobsGrNoRefit still running $ratioNoRefitRunSub %
163 echo \############################
165 echo Sleeping $timeSleep , time to go $restTime
166 let restTime=restTime-timeSleep
169 if [ $ratioNoDriftRunSub -le 10 ]; then
170 if [ $ratioNoRefitRunSub -le 10 ]; then
180 ##############################################
181 # Submit merging when all calib jobs are done
182 ##############################################
185 cd $workdir/calibNoDrift
186 bgroupMgNoDrift=/mergecalib/`pwd | xargs basename`
187 bgadd $bgroupMgNoDrift
188 echo $bgroupMgNoDrift
189 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoDrift"
191 cd $workdir/calibNoRefit
192 bgroupMgNoRefit=/mergecalib/`pwd | xargs basename`
193 bgadd $bgroupMgNoRefit
194 echo $bgroupMgNoRefit
195 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoRefit"
197 nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
198 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
201 export totalTime=3600
203 export restTime=$totalTime
205 while [ $restTime -gt 0 ];do
206 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
207 let ratioNoDriftMergeRunSub=100*nJobsNoDriftMergeRun/nJobsNoDriftMergeSub
208 if [ $nJobsNoDriftMergeSub -eq 0 ] ; then
209 let ratioNoDriftMergeRunSub=0
213 echo \############################
214 echo Info $nJobsNoDriftMergeSub jobs submitted for merging, $nJobsNoDriftMergeRun running $ratioNoDriftMergeRunSub % left
215 echo \############################
218 echo Sleeping $timeSleep , time to go $restTime
219 let restTime=restTime-timeSleep
222 if [ $ratioNoDriftMergeRunSub -le 10 ]; then
231 echo \############################
233 echo \############################
235 #nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
236 #nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
244 cd $workdir/calibNoDrift
245 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
247 cd $workdir/calibNoRefit
248 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
250 nJobsNoDriftMergeCalibSub=`bjobs -W | grep -c CalibFileMerger`
251 nJobsNoDriftMergeCalibRun=`bjobs -W | grep -c CalibFileMerger`
253 cd $workdir/calibNoDrift
254 find `pwd`/* | grep err > errRec.log
255 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
257 cd $workdir/calibNoRefit
258 find `pwd`/* | grep err > errRec.log
259 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
264 echo \############################
266 echo \############################
268 cd $workdir/calibNoDrift
269 test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
272 runLow=$(cat ../lists/run.list | sort | head -1)
273 runHig=$(cat ../lists/run.list | sort | tail -1)
276 runL=$(echo $runLow | sed 's|^0*||')
277 runH=$(echo $runHig | sed 's|^0*||')
279 aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
285 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
286 bgroupQA=/recalib/`pwd | xargs basename`
289 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupQA " $nChunks
290 nJobsQASub=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
292 echo \############################
293 echo Info $nJobsQASub JobsQA submitted
294 echo \############################
296 nJobsQARun=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
300 export totalTime=5400
302 export restTime=$totalTime
304 while [ $restTime -gt 0 ];do
305 nJobsQARun=`bjobs -g $bgroupQA -W | grep submitCalibJob.sh | grep -c calibQA`
306 let ratioQARunSub=100*nJobsQARun/nJobsQASub
307 if [ $nJobsQASub -eq 0 ]; then
311 echo \############################
312 echo Info $nJobsQASub calibQA jobs submitted $nJobsQARun still running $ratioQARunSub %
313 echo \############################
317 echo Sleeping $timeSleep , time to go $restTime
318 let restTime=restTime-timeSleep
321 if [ $ratioQARunSub -le 10 ]; then
330 ##############################################
331 # Submit merging when the QA jobs are done
332 ##############################################
334 echo \############################
335 echo Going to Merge individual directories
336 echo \############################
340 bgroupMgQA=/mergecalibQA/`pwd | xargs basename`
343 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgQA"
346 echo \####################################
347 echo Waiting for calibQA merging to finish
348 echo \####################################
351 nJobsQAMergeSub=`bjobs -W | grep -c CalibFileMerger`
352 nJobsQAMergeRun=`bjobs -W | grep -c CalibFileMerger`
355 export totalTime=3600
357 export restTime=$totalTime
359 while [ $restTime -gt 0 ];do
360 nJobsQAMergeRun=`bjobs -W | grep -c CalibFileMerger`
361 let ratioQAMergeRunSub=100*nJobsQAMergeRun/nJobsQAMergeSub
362 if [ $nJobsQAMergeSub -eq 0 ] ; then
363 let ratioQAMergeRunSub=0
367 echo \############################
368 echo Info $nJobsQAMergeSub jobs submitted for merging, $nJobsQAMergeRun running $ratioQAMergeRunSub % left
369 echo \############################
372 echo Sleeping $timeSleep , time to go $restTime
373 let restTime=restTime-timeSleep
376 if [ $ratioQAMergeRunSub -le 10 ]; then
387 echo \#####################################
388 echo Going to do the last Merge in calibQA
389 echo \#####################################
393 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
399 echo \#####################################
400 echo Last Merge in calibQA is done
401 echo \#####################################
407 echo \#####################################
408 echo Starting validation of calibQA
409 echo \#####################################
412 echo \##################################
413 echo MakeOCDB in the calibQA directory NEEDS TO BE IMPLEMENTED
414 echo \##################################
415 # Step to be verified
418 #test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
421 #runLow=$(cat ../lists/run.list | sort | head -1)
422 #runHig=$(cat ../lists/run.list | sort | tail -1)
425 #runL=$(echo $runLow | sed 's|^0*||')
426 #runH=$(echo $runHig | sed 's|^0*||')
428 #aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)