]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/scripts/tpcCalibTrain.sh
create a diroctory only if input is exitsting
[u/mrichter/AliRoot.git] / TPC / scripts / tpcCalibTrain.sh
CommitLineData
8f1b4e07 1#
2# parameters:
3# 1 - basedir
4# 2 - number of chunks processed
9ad02593 5# 3 - cosmic or collisions
8f1b4e07 6# Example:
6b0a14f2 7# /usr/local/grid/AliRoot/HEAD0108/TPC/scripts/tpcCalibTrain.sh `pwd` 20 0 >train.log
8f1b4e07 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
10
11
9ad02593 12
6b0a14f2 13export balice=/u/miranov/.balice
14#export balice=/lustre/alice/marin/soft64/setvar0417rev20.sh
9ad02593 15#export balice=/lustre/alice/marin/soft64/setvartrunk021209.sh
8f1b4e07 16source $balice
17export aliensetup=$HOME/alienSetup.sh
18source $aliensetup
19
8f1b4e07 20echo $ALICE_ROOT
21
22#
23#
24# Test setup
25#
26export workdir=$1
27export nChunks=$2
9ad02593 28export isCosmic=0
29if [ $# -eq 3 ]; then
30 isCosmic=$3
31fi
6b0a14f2 32echo IsCosmic $isCosmic
9ad02593 33
34
35
8f1b4e07 36if [ ! -n length ]; then
37 echo \############################
38 echo Directory was not specified. Exiting
39 echo \############################
40 return;
41fi;
42if [ ! -r $workdir/lists/esd.list ] ; then
43 echo \############################
44 echo File esd list does not exist. Exiting
45 echo \############################
46 return;
47fi;
48if [ ! -r $workdir/lists/run.list ] ; then
49 echo \############################
50 echo File run list does not exist. Exiting
51 echo \############################
52 return;
53fi;
54
55#
56# Make directories
57#
58cd $workdir
6b0a14f2 59#chgrp -R alice $workdir
60#chmod -R g+rwx $workdir
61#chmod -R o+rx $workdir
8f1b4e07 62mkdirhier $workdir/calibNoDrift
63mkdirhier $workdir/calibNoRefit
64mkdirhier $workdir/calibQA
65#
66#modify ConfigOCDB.C
67#
68# copy predefined Config files
69#
9ad02593 70
8f1b4e07 71cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibNoDrift/CalibrateTPC.C
72cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C | grep -v AddCalibCalib\(task\) > calibNoRefit/CalibrateTPC.C
73cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C calibQA/CalibrateTPC.C
9ad02593 74
75if [ $isCosmic -eq 1 ] ; then
76cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C|grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoDrift/CalibrateTPC.C
77
78cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v AddCalibCalib\(task\) | grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibNoRefit/CalibrateTPC.C
79
80cat $ALICE_ROOT/TPC/macros/CalibrateTPC.C |grep -v calibTimeGain\-\>SetIsCosmic\(kFALSE\)\; > calibQA/CalibrateTPC.C
81fi
82
8f1b4e07 83cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoDrift.C calibNoDrift/ConfigOCDB.C
84cp $ALICE_ROOT/TPC/macros/ConfigOCDBNoRefit.C calibNoRefit/ConfigOCDB.C
85cp $ALICE_ROOT/TPC/macros/ConfigOCDBQA.C calibQA/ConfigOCDB.C
86cp lists/*.list calibNoDrift/
87cp lists/*.list calibNoRefit/
88cp lists/*.list calibQA/
89ln -sf $balice calibNoDrift/balice.sh
90ln -sf $balice calibNoRefit/balice.sh
91ln -sf $balice calibQA/balice.sh
92ln -sf $aliensetup calibNoDrift/alienSetup.sh
93ln -sf $aliensetup calibNoRefit/alienSetup.sh
94ln -sf $aliensetup calibQA/alienSetup.sh
95# make workspaces
96#
97
98echo \##################################################
99echo Info Making calibNoDrift workspace and submit jobs
100echo \##################################################
101
102
103cd $workdir/calibNoDrift
104$ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
105bgroupNoDrift=/recalib/`pwd | xargs basename`
106bgadd $bgroupNoDrift
107echo $bgroupNoDrift
6b0a14f2 108bkill -g $bgroupNoDrift -r 0
8f1b4e07 109$ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoDrift " $nChunks
110nJobsNoDriftSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
111
112echo \############################
113echo Info $nJobsNoDriftSub submitted
114echo \############################
115
116echo \##################################################
117echo Info Making calibNoRefit workspace and submit jobs
118echo \##################################################
119
120cd $workdir/calibNoRefit
121$ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
122bgroupNoRefit=/recalib/`pwd | xargs basename`
123bgadd $bgroupNoRefit
124echo $bgroupNoRefit
6b0a14f2 125bkill -g $bgroupNoRefit -r 0
8f1b4e07 126$ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupNoRefit " $nChunks
127nJobsNoRefitSub=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
128
129echo \############################
130echo Info $nJobsNoRefitSub submitted
131echo \############################
132
133nJobsNoDriftRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
134
135nJobsNoRefitRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
136
137
138
6b0a14f2 139export totalTime=1800
8f1b4e07 140export timeSleep=60
141export restTime=$totalTime
142
143while [ $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
148 fi
8f1b4e07 149
150 echo \############################
151 echo Info $nJobsNoDriftSub calibNoDrift jobs submitted $nJobsNoDriftRun $nJobsGrNoDrift still running $ratioNoDriftRunSub %
152 echo \############################
153
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
158 fi
159
160
8f1b4e07 161
162
163
164 echo \############################
165 echo Info $nJobsNoRefitSub calibNoRefit jobs submitted $nJobsNoRefitRun $nJobsGrNoRefit still running $ratioNoRefitRunSub %
166 echo \############################
167
168 echo Sleeping $timeSleep , time to go $restTime
169 let restTime=restTime-timeSleep
170
171
6b0a14f2 172 if [ $ratioNoDriftRunSub -le 4 ]; then
173 if [ $ratioNoRefitRunSub -le 4 ]; then
8f1b4e07 174 let restTime=0
175 fi
176 fi
177
178
179 sleep $timeSleep ;
180
181done
182
183##############################################
184# Submit merging when all calib jobs are done
185##############################################
186
187
188cd $workdir/calibNoDrift
189bgroupMgNoDrift=/mergecalib/`pwd | xargs basename`
190bgadd $bgroupMgNoDrift
191echo $bgroupMgNoDrift
6b0a14f2 192bkill -g $bgroupMgNoDrift -r 0
8f1b4e07 193$ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoDrift"
194
195cd $workdir/calibNoRefit
196bgroupMgNoRefit=/mergecalib/`pwd | xargs basename`
197bgadd $bgroupMgNoRefit
198echo $bgroupMgNoRefit
6b0a14f2 199bkill -g $bgroupMgNoRefit -r 0
8f1b4e07 200$ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgNoRefit"
201
202nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
203nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
204
205
6b0a14f2 206export totalTime=1800
8f1b4e07 207export timeSleep=60
208export restTime=$totalTime
209
210while [ $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
215 fi
216
217
218 echo \############################
219 echo Info $nJobsNoDriftMergeSub jobs submitted for merging, $nJobsNoDriftMergeRun running $ratioNoDriftMergeRunSub % left
220 echo \############################
221
222
223 echo Sleeping $timeSleep , time to go $restTime
224 let restTime=restTime-timeSleep
225
226
6b0a14f2 227 if [ $ratioNoDriftMergeRunSub -le 4 ]; then
8f1b4e07 228 let restTime=0
229 fi
230
231
232 sleep $timeSleep ;
233done
234
235
236echo \############################
237echo Merging done
238echo \############################
239
240#nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
241#nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
242
243
8f1b4e07 244
245#################
246# Step 7
247#################
248
249cd $workdir/calibNoDrift
250$ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
251
252cd $workdir/calibNoRefit
253$ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
254
255nJobsNoDriftMergeCalibSub=`bjobs -W | grep -c CalibFileMerger`
256nJobsNoDriftMergeCalibRun=`bjobs -W | grep -c CalibFileMerger`
257
258cd $workdir/calibNoDrift
259find `pwd`/* | grep err > errRec.log
260$ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
261
262cd $workdir/calibNoRefit
263find `pwd`/* | grep err > errRec.log
264$ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
265
266
267
268
269echo \############################
9ad02593 270echo MakeOCDB
8f1b4e07 271echo \############################
272
9ad02593 273cd $workdir/calibNoDrift
274test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
275mkdir OCDB
276
277runLow=$(cat ../lists/run.list | sort | head -1)
278runHig=$(cat ../lists/run.list | sort | tail -1)
279
280
281runL=$(echo $runLow | sed 's|^0*||')
282runH=$(echo $runHig | sed 's|^0*||')
283
284aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
6b0a14f2 285cd $workdir/calibNoRefit
286aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
8f1b4e07 287
288
289
9ad02593 290cd $workdir/calibQA
291$ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list
292bgroupQA=/recalib/`pwd | xargs basename`
293bgadd $bgroupQA
294echo $bgroupQA
6b0a14f2 295bkill -g $bgroupQA -r 0
9ad02593 296$ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list "alice-t3 -c 3:00 -g $bgroupQA " $nChunks
297nJobsQASub=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
298
299echo \############################
300echo Info $nJobsQASub JobsQA submitted
301echo \############################
302
303nJobsQARun=`bjobs -W | grep submitCalibJob.sh | grep -c calibQA`
304
305
306
6b0a14f2 307export totalTime=1800
9ad02593 308export timeSleep=60
309export restTime=$totalTime
310
311while [ $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
315 let ratioQARunSub=0
316 fi
317
318 echo \############################
319 echo Info $nJobsQASub calibQA jobs submitted $nJobsQARun still running $ratioQARunSub %
320 echo \############################
321
322
323
324 echo Sleeping $timeSleep , time to go $restTime
325 let restTime=restTime-timeSleep
326
327
6b0a14f2 328 if [ $ratioQARunSub -le 4 ]; then
9ad02593 329 let restTime=0
330 fi
331
332
333 sleep $timeSleep ;
334
335done
336
337##############################################
338# Submit merging when the QA jobs are done
339##############################################
340
341echo \############################
342echo Going to Merge individual directories
343echo \############################
344
345
346cd $workdir/calibQA
347bgroupMgQA=/mergecalibQA/`pwd | xargs basename`
348bgadd $bgroupMgQA
349echo $bgroupMgQA
6b0a14f2 350bkill -g $bgroupQA -r 0
9ad02593 351$ALICE_ROOT/TPC/scripts/submitMerging.sh runMissing.list "alice-t3_8h -c 3:00" "$bgroupMgQA"
352
353
354echo \####################################
355echo Waiting for calibQA merging to finish
356echo \####################################
357
358
359nJobsQAMergeSub=`bjobs -W | grep -c CalibFileMerger`
360nJobsQAMergeRun=`bjobs -W | grep -c CalibFileMerger`
361
362
6b0a14f2 363export totalTime=1800
9ad02593 364export timeSleep=60
365export restTime=$totalTime
366
367while [ $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
372 fi
373
374
375 echo \############################
376 echo Info $nJobsQAMergeSub jobs submitted for merging, $nJobsQAMergeRun running $ratioQAMergeRunSub % left
377 echo \############################
378
379
380 echo Sleeping $timeSleep , time to go $restTime
381 let restTime=restTime-timeSleep
382
383
6b0a14f2 384 if [ $ratioQAMergeRunSub -le 4 ]; then
9ad02593 385 let restTime=0
386 fi
387
388
389 sleep $timeSleep ;
390done
391
392
393
394
395echo \#####################################
396echo Going to do the last Merge in calibQA
397echo \#####################################
398
399
400cd $workdir/calibQA
401$ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
402
403
404
405
406
407echo \#####################################
408echo Last Merge in calibQA is done
409echo \#####################################
410
411
412
413
414
9ad02593 415echo \##################################
6b0a14f2 416echo MakeOCDB in the calibQA directory
9ad02593 417echo \##################################
418# Step to be verified
8f1b4e07 419
6b0a14f2 420cd $workdir/calibQA
421test -d OCDB && mv OCDB OCDB.$(date +%y%m%d_%H%M)
422mkdir OCDB
9ad02593 423
6b0a14f2 424runLow=$(cat ../lists/run.list | sort | head -1)
425runHig=$(cat ../lists/run.list | sort | tail -1)
426
427
428runL=$(echo $runLow | sed 's|^0*||')
429runH=$(echo $runHig | sed 's|^0*||')
9ad02593 430
6b0a14f2 431aliroot -x -q $ALICE_ROOT/TPC/CalibMacros/MakeOCDB.C\($runL,$runH,\"mergerun.list/CalibObjectsTrain1.root\"\)
9ad02593 432
9ad02593 433
6b0a14f2 434
435
436echo \#####################################
437echo Starting validation of calibQA
438echo \#####################################