4 # 2 - number of chunks processed
5 # 3 - cosmic or collisions
7 # /usr/local/grid/AliRoot/HEAD0108/TPC/scripts/tpcCalibTrain.sh `pwd` 20 0 >train.log
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=/u/miranov/.balice
14 #export balice=/lustre/alice/marin/soft64/setvar0417rev20.sh
15 #export balice=/lustre/alice/marin/soft64/setvartrunk021209.sh
17 export aliensetup=$HOME/alienSetup.sh
32 echo IsCosmic $isCosmic
36 if [ ! -n length ]; then
37 echo \############################
38 echo Directory was not specified. Exiting
39 echo \############################
42 if [ ! -r $workdir/lists/esd.list ] ; then
43 echo \############################
44 echo File esd list does not exist. Exiting
45 echo \############################
48 if [ ! -r $workdir/lists/run.list ] ; then
49 echo \############################
50 echo File run list does not exist. Exiting
51 echo \############################
59 #chgrp -R alice $workdir
60 #chmod -R g+rwx $workdir
61 #chmod -R o+rx $workdir
62 mkdirhier $workdir/calibNoDrift
63 mkdirhier $workdir/calibNoRefit
64 mkdirhier $workdir/calibQA
68 # copy predefined Config files
71 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibNoDrift/CalibrateTPC.C
72 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C | grep -v AddCalibCalib\(task\) > calibNoRefit/CalibrateTPC.C
73 cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibQA/CalibrateTPC.C
75 if [ $isCosmic -eq 1 ] ; then
76 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C|grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoDrift/CalibrateTPC.C
78 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v AddCalibCalib\(task\) | grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoRefit/CalibrateTPC.C
80 cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibQA/CalibrateTPC.C
83 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoDrift.C calibNoDrift/ConfigOCDB.C
84 cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoRefit.C calibNoRefit/ConfigOCDB.C
85 cp $ALICE_ROOT/TPC/macros/ConfigOCDBQA.C calibQA/ConfigOCDB.C
86 cp lists/*.list calibNoDrift/
87 cp lists/*.list calibNoRefit/
88 cp lists/*.list calibQA/
89 ln -sf $balice calibNoDrift/balice.sh
90 ln -sf $balice calibNoRefit/balice.sh
91 ln -sf $balice calibQA/balice.sh
92 ln -sf $aliensetup calibNoDrift/alienSetup.sh
93 ln -sf $aliensetup calibNoRefit/alienSetup.sh
94 ln -sf $aliensetup calibQA/alienSetup.sh
98 echo \##################################################
99 echo Info Making calibNoDrift workspace and submit jobs
100 echo \##################################################
103 cd $workdir/calibNoDrift
104 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
105 bgroupNoDrift=/recalib/`pwd | xargs basename`
108 bkill -g $bgroupNoDrift -r 0
109 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoDrift " $nChunks
110 nJobsNoDriftSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
112 echo \############################
113 echo Info $nJobsNoDriftSub submitted
114 echo \############################
116 echo \##################################################
117 echo Info Making calibNoRefit workspace and submit jobs
118 echo \##################################################
120 cd $workdir/calibNoRefit
121 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
122 bgroupNoRefit=/recalib/`pwd | xargs basename`
125 bkill -g $bgroupNoRefit -r 0
126 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoRefit " $nChunks
127 nJobsNoRefitSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
129 echo \############################
130 echo Info $nJobsNoRefitSub submitted
131 echo \############################
133 nJobsNoDriftRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
135 nJobsNoRefitRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
139 export totalTime=1800
141 export restTime=$totalTime
143 while [ $restTime -gt 0 ];do
144 nJobsNoDriftRun=`bjobs -g $bgroupNoDrift -W | grep submitCalibJob.sh | grep -c calibNoDrift`
145 let ratioNoDriftRunSub=100*nJobsNoDriftRun/nJobsNoDriftSub
146 if [ $nJobsNoDriftSub -eq 0 ]; then
147 let ratioNoDriftRunSub=0
150 echo \############################
151 echo Info $nJobsNoDriftSub calibNoDrift jobs submitted $nJobsNoDriftRun $nJobsGrNoDrift still running $ratioNoDriftRunSub %
152 echo \############################
154 nJobsNoRefitRun=`bjobs -g $bgroupNoRefit -W | grep submitCalibJob.sh | grep -c calibNoRefit`
155 let ratioNoRefitRunSub=100*nJobsNoRefitRun/nJobsNoRefitSub
156 if [ $nJobsNoRefitSub -eq 0 ] ; then
157 let ratioNoRefitRunSub=0
164 echo \############################
165 echo Info $nJobsNoRefitSub calibNoRefit jobs submitted $nJobsNoRefitRun $nJobsGrNoRefit still running $ratioNoRefitRunSub %
166 echo \############################
168 echo Sleeping $timeSleep , time to go $restTime
169 let restTime=restTime-timeSleep
172 if [ $ratioNoDriftRunSub -le 4 ]; then
173 if [ $ratioNoRefitRunSub -le 4 ]; then
183 ##############################################
184 # Submit merging when all calib jobs are done
185 ##############################################
188 cd $workdir/calibNoDrift
189 bgroupMgNoDrift=/mergecalib/`pwd | xargs basename`
190 bgadd $bgroupMgNoDrift
191 echo $bgroupMgNoDrift
192 bkill -g $bgroupMgNoDrift -r 0
193 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoDrift"
195 cd $workdir/calibNoRefit
196 bgroupMgNoRefit=/mergecalib/`pwd | xargs basename`
197 bgadd $bgroupMgNoRefit
198 echo $bgroupMgNoRefit
199 bkill -g $bgroupMgNoRefit -r 0
200 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoRefit"
202 nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
203 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
206 export totalTime=1800
208 export restTime=$totalTime
210 while [ $restTime -gt 0 ];do
211 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
212 let ratioNoDriftMergeRunSub=100*nJobsNoDriftMergeRun/nJobsNoDriftMergeSub
213 if [ $nJobsNoDriftMergeSub -eq 0 ] ; then
214 let ratioNoDriftMergeRunSub=0
218 echo \############################
219 echo Info $nJobsNoDriftMergeSub jobs submitted for merging, $nJobsNoDriftMergeRun running $ratioNoDriftMergeRunSub % left
220 echo \############################
223 echo Sleeping $timeSleep , time to go $restTime
224 let restTime=restTime-timeSleep
227 if [ $ratioNoDriftMergeRunSub -le 4 ]; then
236 echo \############################
238 echo \############################
240 #nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
241 #nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
249 cd $workdir/calibNoDrift
250 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
252 cd $workdir/calibNoRefit
253 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
255 nJobsNoDriftMergeCalibSub=`bjobs -W | grep -c CalibFileMerger`
256 nJobsNoDriftMergeCalibRun=`bjobs -W | grep -c CalibFileMerger`
258 cd $workdir/calibNoDrift
259 find `pwd`/* | grep err > errRec.log
260 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
262 cd $workdir/calibNoRefit
263 find `pwd`/* | grep err > errRec.log
264 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
269 echo \############################
271 echo \############################
273 cd $workdir/calibNoDrift
274 test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
277 runLow=$(cat ../lists/run.list | sort | head -1)
278 runHig=$(cat ../lists/run.list | sort | tail -1)
281 runL=$(echo $runLow | sed 's|^0*||')
282 runH=$(echo $runHig | sed 's|^0*||')
284 aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
285 cd $workdir/calibNoRefit
286 aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
291 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
292 bgroupQA=/recalib/`pwd | xargs basename`
295 bkill -g $bgroupQA -r 0
296 $ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupQA " $nChunks
297 nJobsQASub=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
299 echo \############################
300 echo Info $nJobsQASub JobsQA submitted
301 echo \############################
303 nJobsQARun=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
307 export totalTime=1800
309 export restTime=$totalTime
311 while [ $restTime -gt 0 ];do
312 nJobsQARun=`bjobs -g $bgroupQA -W | grep submitCalibJob.sh | grep -c calibQA`
313 let ratioQARunSub=100*nJobsQARun/nJobsQASub
314 if [ $nJobsQASub -eq 0 ]; then
318 echo \############################
319 echo Info $nJobsQASub calibQA jobs submitted $nJobsQARun still running $ratioQARunSub %
320 echo \############################
324 echo Sleeping $timeSleep , time to go $restTime
325 let restTime=restTime-timeSleep
328 if [ $ratioQARunSub -le 4 ]; then
337 ##############################################
338 # Submit merging when the QA jobs are done
339 ##############################################
341 echo \############################
342 echo Going to Merge individual directories
343 echo \############################
347 bgroupMgQA=/mergecalibQA/`pwd | xargs basename`
350 bkill -g $bgroupQA -r 0
351 $ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgQA"
354 echo \####################################
355 echo Waiting for calibQA merging to finish
356 echo \####################################
359 nJobsQAMergeSub=`bjobs -W | grep -c CalibFileMerger`
360 nJobsQAMergeRun=`bjobs -W | grep -c CalibFileMerger`
363 export totalTime=1800
365 export restTime=$totalTime
367 while [ $restTime -gt 0 ];do
368 nJobsQAMergeRun=`bjobs -W | grep -c CalibFileMerger`
369 let ratioQAMergeRunSub=100*nJobsQAMergeRun/nJobsQAMergeSub
370 if [ $nJobsQAMergeSub -eq 0 ] ; then
371 let ratioQAMergeRunSub=0
375 echo \############################
376 echo Info $nJobsQAMergeSub jobs submitted for merging, $nJobsQAMergeRun running $ratioQAMergeRunSub % left
377 echo \############################
380 echo Sleeping $timeSleep , time to go $restTime
381 let restTime=restTime-timeSleep
384 if [ $ratioQAMergeRunSub -le 4 ]; then
395 echo \#####################################
396 echo Going to do the last Merge in calibQA
397 echo \#####################################
401 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
407 echo \#####################################
408 echo Last Merge in calibQA is done
409 echo \#####################################
415 echo \##################################
416 echo MakeOCDB in the calibQA directory
417 echo \##################################
418 # Step to be verified
421 test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
424 runLow=$(cat ../lists/run.list | sort | head -1)
425 runHig=$(cat ../lists/run.list | sort | tail -1)
428 runL=$(echo $runLow | sed 's|^0*||')
429 runH=$(echo $runHig | sed 's|^0*||')
431 aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
436 echo \#####################################
437 echo Starting validation of calibQA
438 echo \#####################################