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