]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/scripts/tpcCalibTrain.sh
New script added tpcCalibTrain.sh
[u/mrichter/AliRoot.git] / TPC / scripts / tpcCalibTrain.sh
1 #
2 # parameters:
3 # 1 - basedir
4 # 2 - number of chunks processed
5 # Example: 
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
9
10
11 #export balice=/u/miranov/.balice
12 #export balice=/lustre/alice/marin/soft64/setvar0417rev18.sh 
13 export balice=/lustre/alice/marin/soft64/setvartrunk021209.sh 
14 source $balice
15 export aliensetup=$HOME/alienSetup.sh
16 source $aliensetup 
17
18
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
23
24 echo $ALICE_ROOT
25
26 #
27 #
28 # Test setup
29 #
30 export workdir=$1
31 export nChunks=$2
32 if [ ! -n length ]; then 
33   echo \############################  
34   echo Directory was not specified. Exiting
35   echo \############################   
36   return;
37 fi;
38 if [ ! -r $workdir/lists/esd.list  ] ; then
39  echo \############################   
40  echo File esd list does not exist. Exiting
41  echo \############################   
42  return;
43 fi; 
44 if [ ! -r $workdir/lists/run.list  ] ; then
45  echo \############################   
46  echo File run list does not exist. Exiting
47  echo \############################   
48  return;
49 fi; 
50
51 #
52 # Make directories
53 #
54 cd $workdir
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
61 #
62 #modify ConfigOCDB.C
63 #
64 # copy predefined Config files 
65 #
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
81 #  make workspaces
82 #
83
84 echo \##################################################   
85 echo Info Making calibNoDrift workspace and submit jobs
86 echo \##################################################   
87
88
89 cd $workdir/calibNoDrift
90 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list 
91 bgroupNoDrift=/recalib/`pwd | xargs basename`
92 bgadd $bgroupNoDrift
93 echo  $bgroupNoDrift
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`
96
97 echo \############################   
98 echo Info $nJobsNoDriftSub  submitted
99 echo \############################   
100
101 echo \##################################################   
102 echo Info Making calibNoRefit workspace and submit jobs
103 echo \##################################################   
104
105 cd $workdir/calibNoRefit
106 $ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list 
107 bgroupNoRefit=/recalib/`pwd | xargs basename`
108 bgadd $bgroupNoRefit
109 echo  $bgroupNoRefit
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`
112
113 echo \############################   
114 echo Info $nJobsNoRefitSub  submitted
115 echo \############################   
116
117 nJobsNoDriftRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoDrift`
118
119 nJobsNoRefitRun=`bjobs -W | grep submitCalibJob.sh | grep -c calibNoRefit`
120
121
122
123 export totalTime=5400
124 export timeSleep=60
125 export restTime=$totalTime
126
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
132     fi
133
134   #  nJobsGrNoDrift=`bjobs -g $bgroupNoDrift`
135
136     # Finding Jobs that crashed but still in queue To be debugged, does not work properly
137 #    comp='Break'
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
143 #           bkill  $a 
144 #       fi
145 #    done
146     
147
148     
149     echo \############################   
150     echo Info $nJobsNoDriftSub calibNoDrift jobs submitted  $nJobsNoDriftRun  $nJobsGrNoDrift still running $ratioNoDriftRunSub %
151     echo \############################   
152     
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
157     fi
158
159
160  #   nJobsGrNoRefit=`bjobs -g $bgroupNoRefit`
161
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
168         #    bkill  $a 
169 #       fi
170 #    done
171     
172
173
174     echo \############################   
175     echo Info $nJobsNoRefitSub calibNoRefit jobs  submitted  $nJobsNoRefitRun $nJobsGrNoRefit still running $ratioNoRefitRunSub %
176     echo \############################   
177
178     echo Sleeping $timeSleep , time to go $restTime    
179     let restTime=restTime-timeSleep
180     
181
182    if [ $ratioNoDriftRunSub -le  10 ]; then
183         if [ $ratioNoRefitRunSub -le  10 ]; then
184             let restTime=0
185         fi
186     fi
187
188
189     sleep $timeSleep ;
190
191 done
192
193 ##############################################
194 # Submit merging when all calib jobs are done
195 ##############################################
196
197
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"
203
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"
209
210 nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
211 nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
212
213
214 export totalTime=3600
215 export timeSleep=60
216 export restTime=$totalTime
217
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
223     fi
224
225
226     echo \############################   
227     echo Info $nJobsNoDriftMergeSub jobs submitted for merging, $nJobsNoDriftMergeRun running  $ratioNoDriftMergeRunSub % left
228     echo \############################   
229
230
231     echo Sleeping $timeSleep , time to go $restTime    
232     let restTime=restTime-timeSleep
233
234
235     if [ $ratioNoDriftMergeRunSub -le  10 ]; then
236         let restTime=0
237     fi
238
239
240      sleep $timeSleep ;
241 done
242
243
244 echo \############################   
245 echo Merging  done
246 echo \############################   
247
248 #nJobsNoDriftMergeSub=`bjobs -W | grep -c CalibFileMerger`
249 #nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
250
251
252 #export totalTime=3600
253 #export timeSleep=60
254 #export restTime=$totalTime
255
256 #while [ $restTime -ge 0 ];do
257 #    nJobsNoDriftMergeRun=`bjobs -W | grep -c CalibFileMerger`
258
259 #    echo \############################   
260 #    echo Info $nJobsNoDriftMergeRun jobs for merging
261 #    echo \############################   
262
263
264 #    echo Sleeping $timeSleep , time to go $restTime    
265 #    let restTime=restTime-timeSleep
266
267
268 #    if [ $nJobsNoDriftMergeRun -ge 0 ]; then
269 #       echo Jobs finished
270 #       let restTime=0;
271 #    fi
272
273
274 #    sleep $timeSleep ;
275 #done
276
277
278 echo You are done
279
280
281 #################
282 # Step 7
283 #################
284
285 cd $workdir/calibNoDrift
286 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
287
288 cd $workdir/calibNoRefit
289 $ALICE_ROOT/TPC/scripts/mergeCalibRun.sh run.list alice-t3_8h
290
291 nJobsNoDriftMergeCalibSub=`bjobs -W | grep -c CalibFileMerger`
292 nJobsNoDriftMergeCalibRun=`bjobs -W | grep -c CalibFileMerger`
293
294 cd $workdir/calibNoDrift
295 find `pwd`/* | grep err > errRec.log
296 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
297
298 cd $workdir/calibNoRefit
299 find `pwd`/* | grep err > errRec.log
300 $ALICE_ROOT/TPC/scripts/filterRecLog.sh errRec.log
301
302
303
304
305 echo \############################   
306 echo Step 7 running tpcCalibTrain script done
307 echo \############################   
308
309
310
311
312
313 #cd $workdir/calibQA
314 #$ALICE_ROOT/TPC/scripts/makeWorkspace.sh run.list 
315 #$ALICE_ROOT/TPC/scripts/resubmitMissing.sh run.list alice-t3 20
316 #cd $workdir/
317 #
318 #
319 #