Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cwb_online.py
Go to the documentation of this file.
1 #!/usr/bin/python
2 
3 import commands, os, sys, glob
4 import cWB_conf
5 
6 #config_dir=sys.argv[1]
7 #creates dir
8 commands.getstatusoutput("mkdir -p %s"%(cWB_conf.run_dir))
9 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.online_dir,cWB_conf.jobs_dir))
10 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.online_dir,cWB_conf.seg_dir))
11 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.online_dir,cWB_conf.summaries_dir))
12 #commands.getstatusoutput("mkdir -p %s"%(cWB_conf.pid_dir))
13 commands.getstatusoutput("mkdir -p %s"%(cWB_conf.bkg_run_dir))
14 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.jobs_dir))
15 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir))
16 commands.getstatusoutput("mkdir -p %s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.postprod_dir))
17 commands.getstatusoutput("mkdir -p %s"%(cWB_conf.web_dir))
18 #commands.getstatusoutput("mkdir -p %s"%(cWB_conf.ced_dir))
19 #commands.getstatusoutput("mkdir -p %s"%(cWB_conf.qscan_dir))
20 commands.getstatusoutput("mkdir -p %s/config"%(cWB_conf.run_dir))
21 try:
22  dir_for_logfiles="%s"%(cWB_conf.log_dir)
23  commands.getstatusoutput("mkdir -p %s"%(dir_for_logfiles))
24 except:
25  dir_for_logfiles="%s"%(cWB_conf.run_dir)
26 
27 #copy files
28 commands.getstatusoutput("cp %s/RUN_cWB/*.py %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
29 commands.getstatusoutput("cp %s/RUN_cWB/extract_int %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
30 commands.getstatusoutput("cp %s/RUN_cWB/extract_float %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
31 #commands.getstatusoutput("cp %s/RUN_cWB/error_region_with_inj.C %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
32 #commands.getstatusoutput("cp %s/RUN_cWB/error_region.C %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
33 #commands.getstatusoutput("cp %s/RUN_cWB/gracedb_label.sh %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
34 commands.getstatusoutput("cp %s/RUN_cWB/stop.sh %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
35 commands.getstatusoutput("cp %s/RUN_cWB/clean.sh %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
36 commands.getstatusoutput("cp cWB_conf.py %s/."%(cWB_conf.run_dir))
37 commands.getstatusoutput("cp -r %s/RUN_cWB/bin %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
38 commands.getstatusoutput("cp -r %s/RUN_cWB/template.merged %s/."%(os.environ['CWB_ONLINE'],cWB_conf.run_dir))
39 commands.getstatusoutput("cp %s/html/* %s/."%(os.environ['CWB_ONLINE'],cWB_conf.web_dir))
40 
41 #consider science offset
42 try:
43  num_offset=len(cWB_conf.science_segment_offset)
44 except:
45  num_offset=0
46 if (num_offset>0):
47  for i in range(0,num_offset):
48  #commands.getstatusoutput("mkdir -p %s/OFFSET_%s"%(cWB_conf.online_dir,cWB_conf.science_segment_offset[i]))
49  commands.getstatusoutput("mkdir -p %s/OFFSET_%s/%s"%(cWB_conf.online_dir,cWB_conf.science_segment_offset[i],cWB_conf.jobs_dir))
50  commands.getstatusoutput("mkdir -p %s/OFFSET_%s/%s"%(cWB_conf.online_dir,cWB_conf.science_segment_offset[i],cWB_conf.seg_dir))
51  commands.getstatusoutput("cp %s/RUN_cWB/*.py %s/OFFSET_%s/."%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,cWB_conf.science_segment_offset[i]))
52  commands.getstatusoutput("cp %s/RUN_cWB/stop.sh %s/OFFSET_%s/."%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,cWB_conf.science_segment_offset[i]))
53  commands.getstatusoutput("cp %s/RUN_cWB/clean_off.sh %s/OFFSET_%s/clean.sh"%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,cWB_conf.science_segment_offset[i]))
54  commands.getstatusoutput("cp cWB_conf.py %s/OFFSET_%s/."%(cWB_conf.online_dir,cWB_conf.science_segment_offset[i]))
55  commands.getstatusoutput("mkdir -p %s/OFFSET_%s/%s"%(cWB_conf.online_dir,"0",cWB_conf.jobs_dir))
56  commands.getstatusoutput("mkdir -p %s/OFFSET_%s/%s"%(cWB_conf.online_dir,"0",cWB_conf.seg_dir))
57  commands.getstatusoutput("cp %s/RUN_cWB/*.py %s/OFFSET_%s/."%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,"0"))
58  commands.getstatusoutput("cp %s/RUN_cWB/stop.sh %s/OFFSET_%s/."%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,"0"))
59  commands.getstatusoutput("cp %s/RUN_cWB/clean_off.sh %s/OFFSET_%s/clean.sh"%(os.environ['CWB_ONLINE'],cWB_conf.online_dir,"0"))
60  commands.getstatusoutput("cp cWB_conf.py %s/OFFSET_%s/."%(cWB_conf.online_dir,"0"))
61 
62 commands.getstatusoutput("cp %s/TIME_SHIFTS/* %s/."%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir))
63 commands.getstatusoutput("cp -r %s/TIME_SHIFTS/POSTPRODUCTION %s/."%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir))
64 commands.getstatusoutput("cp -r %s/TIME_SHIFTS/bin %s/."%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir))
65 commands.getstatusoutput("cp -r %s/TIME_SHIFTS/template.merged %s/."%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir))
66 commands.getstatusoutput("cp -r %s/TIME_SHIFTS/RUN_cWB %s/."%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir))
67 
68 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.considered_segments_file))
69 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.processed_segments_file))
70 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.running_segments_file))
71 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.missing_segments_file))
72 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.run_segments_file))
73 commands.getstatusoutput("echo > %s/%s/%s"%(cWB_conf.bkg_run_dir,cWB_conf.seg_dir,cWB_conf.job_segments_file))
74 
75 commands.getstatusoutput("ln -s %s/cWB_conf.py %s/."%(cWB_conf.run_dir,cWB_conf.bkg_run_dir))
76 commands.getstatusoutput("ln -s %s/cWB_conf.py %s/%s/."%(cWB_conf.run_dir,cWB_conf.bkg_run_dir,cWB_conf.postprod_dir))
77 commands.getstatusoutput("ln -s %s/%s %s/."%(cWB_conf.online_dir,cWB_conf.jobs_dir,cWB_conf.web_dir))
78 commands.getstatusoutput("ln -s %s/%s %s/."%(cWB_conf.bkg_run_dir,cWB_conf.postprod_dir,cWB_conf.web_dir))
79 commands.getstatusoutput("ln -s %s/%s %s/."%(cWB_conf.online_dir,cWB_conf.summaries_dir,cWB_conf.web_dir))
80 
81 #create user_parameters.C/_ced_t.C/_bkg.C files
82 #f=open("parameters.C")
83 #lines = f.readlines()
84 #f.close()
85 
86 try:
87  Cuts_lines=open("%s"%(cWB_conf.Cuts_file)).readlines()
88  Cuts_file="%s/config/Cuts.hh"%(cWB_conf.run_dir)#,cWB_conf.Cuts_file.split("/")[len(cWB_conf.Cuts_file.split("/"))-1])
89  #com="cp %s %s"%(cWB_conf.Cuts_file,Cuts_file)
90  #commands.getstatusoutput(com)
91  f=open("%s"%(Cuts_file),"w")
92  for line in Cuts_lines:
93  print >>f,"%s"%(line.replace("\n",""))
94  if (len(cWB_conf.Cuts_list)>1):
95  print >>f,"""\nTCut OR_cut = TCut("OR_cut",(%s).GetTitle());"""%("||".join(cWB_conf.Cuts_list))
96  f.close()
97  com="./mkhtml.csh %s"%(Cuts_file)
98  commands.getstatusoutput(com)
99  com="mv %s/config/Cuts/Cuts.hh.html %s/.;rm -rf %s/config/Cuts"%(cWB_conf.run_dir,cWB_conf.web_dir,cWB_conf.run_dir)
100  commands.getstatusoutput(com)
101  add_cuts="""#include "%s"
102 
103  """%(Cuts_file)
104 except:
105  add_cuts=""
106 try:
107  nplugins=len(cWB_conf.prod_plugins)
108  add_prod_plugin=True
109  if (nplugins==1):
110  final_plugin="%s/config/%s"%(cWB_conf.run_dir,cWB_conf.prod_plugins[0].split("/")[len(cWB_conf.prod_plugins[0].split("/"))-1])
111  com="cp %s %s"%(cWB_conf.prod_plugins[0],final_plugin)
112  else:
113  final_plugin="%s/config/prod_plugin.C"%(cWB_conf.run_dir)
114  com="%s/scripts/cwb_mplugin.csh %s %s"%(os.environ['HOME_CWB'],final_plugin," ".join(cWB_conf.prod_plugins))
115  #print commands.getstatusoutput(com)
116  com="%s;root -q -b -l %s+"%(com,final_plugin)
117  #print "Please compile plugin: %s"%com
118  print "Compiling plugin: %s"%com
119  commands.getstatusoutput(com)
120 except:
121  add_prod_plugin=False
122 
123 #try:
124 # f=open("%s"%(cWB_conf.phone_par),"w")
125 # print >>f,"A transient candidate from coherent Waveburst of significance less than %g is being passed for follow-up. Please check your email immediately and alert the others."%(cWB_conf.phone_alert)
126 # f.close()
127 #except:
128 # print "not sending mail to phone"
129 
130 f=open("%s"%(cWB_conf.zerolag_par),"w")
131 print >>f,"""{
132  strcpy(analysis,"%s");
133 
134  nIFO = %i;
135  search = '%s';
136  optim=%s;\n"""%(cWB_conf.version_wat,len(cWB_conf.ifos),cWB_conf.search,cWB_conf.optim)
137 
138 for i in range(len(cWB_conf.ifos)):
139  print >>f,""" strcpy(ifo[%i],"%s");"""%(i,cWB_conf.ifos[i])
140 print >>f,""" strcpy(refIFO,"%s");"""%(cWB_conf.ifos[0])
141 print >>f,"""
142  //lags
143  lagSize = 1;
144  lagOff = 0;
145  lagMax = 0;
146 
147  //jobs
148  segLen = %i;
149  segMLS = %i;
150  segEdge = %i;
151  segTHR = 0;"""%(cWB_conf.seg_duration,cWB_conf.seg_duration,cWB_conf.job_offset)
152 
153 #for line in lines:
154 # print >>f,line
155 print >>f,"\n%s"%(cWB_conf.cwb_par)
156 for i in range(len(cWB_conf.ifos)):
157  print >>f,""" strcpy(channelNamesRaw[%i],"%s");"""%(i,cWB_conf.channelname[cWB_conf.ifos[i]])
158 for i in range(len(cWB_conf.ifos)):
159  print >>f,""" strcpy(frFiles[%i],"input/%s.frames");"""%(i,cWB_conf.ifos[i])
160 
161 if (add_prod_plugin==True):
162  print >>f,""" plugin = TMacro("%s"); // Macro source
163  plugin.SetTitle("%s");"""%(final_plugin,final_plugin.replace(".C","_C.so"))
164 
165 print >>f,"""
166  nDQF=%i;
167  dqfile dqf[nDQF]={"""%(len(cWB_conf.ifos))
168 for i in range(len(cWB_conf.ifos)):
169  print >>f,""" {"%s" ,"input/burst.in", CWB_CAT1, 0., false, false},"""%(cWB_conf.ifos[i])
170  #print >>f,""" {"%s" ,"input/burst.in", CWB_CAT2, 0., false, false},"""%(cWB_conf.ifos[i])
171 print >>f,""" };
172  for(int i=0;i<nDQF;i++) DQF[i]=dqf[i];
173 
174  strcpy(data_dir,"OUTPUT");
175 
176  online = true;
177  frRetryTime=0;
178  dump = true;
179  cedDump = true;
180  cedRHO = %f;
181 
182 }"""%(cWB_conf.th_rho_lum)
183 f.close()
184 
185 try:
186  pe_plugin="%s/config/%s"%(cWB_conf.run_dir,cWB_conf.pe_plugin.split("/")[len(cWB_conf.pe_plugin.split("/"))-1])
187  add_pe_plugin=True
188  com="cp %s %s"%(cWB_conf.pe_plugin,pe_plugin)
189  commands.getstatusoutput(com)
190  com="root -b -l %s+"%(pe_plugin)
191  print "Please compile plugin: %s"%com
192  #commands.getstatusoutput(com)
193 except:
194  add_pe_plugin=False
195 
196 try:
197  f=open("%s"%(cWB_conf.pe_par),"w")
198  print >>f,"""{
199  strcpy(analysis,"%s");
200 
201  nIFO = %i;
202  search = '%s';
203  optim=%s;\n"""%(cWB_conf.version_wat,len(cWB_conf.ifos),cWB_conf.search,cWB_conf.optim)
204 
205  for i in range(len(cWB_conf.ifos)):
206  print >>f,""" strcpy(ifo[%i],"%s");"""%(i,cWB_conf.ifos[i])
207  print >>f,""" strcpy(refIFO,"%s");"""%(cWB_conf.ifos[0])
208  print >>f,"""
209  //lags
210  lagSize = 1;
211  lagOff = 0;
212  lagMax = 0;
213 
214  //jobs
215  segLen = %i;
216  segMLS = %i;
217  segEdge = %i;
218  segTHR = 0;"""%(cWB_conf.seg_duration,cWB_conf.seg_duration,cWB_conf.job_offset)
219 
220 #for line in lines:
221 # print >>f,line
222  print >>f,"\n%s"%(cWB_conf.cwb_par)
223  for i in range(len(cWB_conf.ifos)):
224  print >>f,""" strcpy(channelNamesRaw[%i],"%s");"""%(i,cWB_conf.channelname[cWB_conf.ifos[i]])
225  for i in range(len(cWB_conf.ifos)):
226  print >>f,""" strcpy(frFiles[%i],"input/%s_scratch.frames");"""%(i,cWB_conf.ifos[i])
227 
228  if (add_pe_plugin==True):
229  print >>f,""" plugin = TMacro("%s"); // Macro source
230  plugin.SetTitle("%s");"""%(pe_plugin,pe_plugin.replace(".C","_C.so"))
231 
232  print >>f,"""
233  nDQF=%i;
234  dqfile dqf[nDQF]={"""%(len(cWB_conf.ifos))
235  for i in range(len(cWB_conf.ifos)):
236  print >>f,""" {"%s" ,"input/burst.in", CWB_CAT1, 0., false, false},"""%(cWB_conf.ifos[i])
237  #print >>f,""" {"%s" ,"input/burst.in", CWB_CAT2, 0., false, false},"""%(cWB_conf.ifos[i])
238  print >>f,""" };
239  for(int i=0;i<nDQF;i++) DQF[i]=dqf[i];
240 
241  strcpy(data_dir,"OUTPUT_PE");
242  strcpy(tmp_dir,"tmp_pe");
243  cedRHO = 1.000000;
244 
245  online = true;
246  frRetryTime=0;
247  dump = false;
248 
249 }"""
250  f.close()
251 except:
252  print "no parameter estimation"
253 
254 for l in range(0,3):
255  superlag_string="""
256  //super lags
257  slagSize = %i;
258  slagMin = 0;
259  slagMax = %i;
260  slagOff = 0;
261 """%(cWB_conf.bkg_njobs+1,cWB_conf.bkg_njobs)
262 
263  tmpfile=cWB_conf.bkg_par
264  lagsize="%i"%cWB_conf.bkg_nlags
265  lagoff="1";
266  if (l==1):
267  tmpfile=tmpfile.replace(".C","_split.C")
268  superlag_string=""
269  if (l==2):
270  tmpfile="user_parameters.C"
271  try:
272  superlag_string="""%s
273 
274  slagFile = new char[1024];
275  strcpy(slagFile,"%s");
276  """%(superlag_string,cWB_conf.bkg_superlaglist)
277  except:
278  superlag_string="%s"%(superlag_string)
279 
280  f=open("%s"%(tmpfile),"w")
281  print >>f,"""{
282  strcpy(analysis,"%s");
283 
284  nIFO = %i;
285  search = '%s';
286  optim=%s;\n"""%(cWB_conf.version_wat,len(cWB_conf.ifos),cWB_conf.search,cWB_conf.optim)
287  for i in range(len(cWB_conf.ifos)):
288  print >>f,""" strcpy(ifo[%i],"%s");"""%(i,cWB_conf.ifos[i])
289  print >>f,""" strcpy(refIFO,"%s");"""%(cWB_conf.ifos[0])
290  print >>f,""" //lags
291  lagSize = %s;
292  lagStep = 1.;
293  lagOff = %s;
294  lagMax = 0;
295  %s
296  //jobs
297  segLen = %i;
298  segMLS = %i;
299  segEdge = %i;
300  segTHR = 0;"""%(lagsize,lagoff,superlag_string,cWB_conf.bkg_job_duration,cWB_conf.bkg_job_minimum,cWB_conf.job_offset)
301 
302  if (l==1):
303  print >>f,"""
304  sprintf(data_label,"%s_%i",data_label,dataShift[1]);
305  TString data_Shift=TString(gSystem->Getenv(\"Slag_datashift\"));
306  TObjArray* bitoken = data_Shift.Tokenize(TString(','));"""
307  print >>f,"""
308  TObjString* itok[%i];
309  TString sitok[%i];"""%(len(cWB_conf.ifos),len(cWB_conf.ifos))
310  for i in range(len(cWB_conf.ifos)):
311  print >>f,"""
312  itok[%i] = (TObjString*)bitoken->At(%i);
313  sitok[%i] = itok[%i]->GetString();
314  dataShift[%i] = sitok[%i]->Atoi();"""%(i,i,i,i,i,i)
315 
316 
317 #for line in lines:
318 # print >>f,line
319  print >>f,"\n%s"%(cWB_conf.cwb_par)
320  for i in range(len(cWB_conf.ifos)):
321  print >>f,""" strcpy(channelNamesRaw[%i],"%s");"""%(i,cWB_conf.channelname[cWB_conf.ifos[i]])
322  for i in range(len(cWB_conf.ifos)):
323  print >>f,""" strcpy(frFiles[%i],"input/%s.frames");"""%(i,cWB_conf.ifos[i])
324 
325  if (add_prod_plugin==True and l<2):
326  print >>f,""" plugin = TMacro("%s"); // Macro source
327  plugin.SetTitle("%s");"""%(final_plugin,final_plugin.replace(".C","_C.so"))
328 
329  print >>f,"""
330  nDQF=%i;
331  dqfile dqf[nDQF]={"""%(len(cWB_conf.ifos))
332  for i in range(len(cWB_conf.ifos)):
333  print >>f,""" {"%s" ,"input/%s_burst.in", CWB_CAT1, dataShift[%i], false, false},"""%(cWB_conf.ifos[i],cWB_conf.ifos[i],i)
334  #print >>f,""" {"%s" ,"input/%s_burst.in", CWB_CAT2, 0., false, false},"""%(cWB_conf.ifos[i],cWB_conf.ifos[i])
335  print >>f,""" };
336  for(int i=0;i<nDQF;i++) DQF[i]=dqf[i];
337 
338  //strcpy(data_dir,"OUTPUT");
339 
340  //online = true;
341  //frRetryTime=0;
342  //dump = false;
343 
344 }"""
345  f.close()
346 
347 f=open("%s"%(cWB_conf.pp_par),"w")
348 print >>f,"""#define RUN_LABEL "%s"
349 
350 {
351  %s
352  T_cor = %f; // cc cut
353  T_cut = 0.0; // rho high frequency cut
354 
355  hours = 1; // bin size in hours for rate vs time plot
356 
357  pp_irho = %i;
358  pp_inetcc = %i;
359  pp_rho_max = 10;
360  pp_rho_min = 5;
361 
362  pp_batch = true;
363 
364  pp_jet_benckmark = -1;
365  pp_mem_benckmark = -1;
366 
367 }"""%(cWB_conf.title,add_cuts,cWB_conf.th_cc,cWB_conf.id_rho,cWB_conf.id_cc)
368 f.close()
369 
370 #create superlag file
371 commands.getstatusoutput("mkdir -p config input report/dump")
372 commands.getstatusoutput("mv user_parameters.C config/.")
373 for i in range(len(cWB_conf.ifos)):
374  f=open("input/%s_burst.in"%(cWB_conf.ifos[i]),"w")
375  print >>f,"0 %i"%(cWB_conf.bkg_job_duration*(cWB_conf.bkg_njobs+2))
376  f.close()
377 commands.getstatusoutput("%s/scripts/cwb_dump.csh slag"%(os.environ['HOME_CWB']))
378 commands.getstatusoutput("cp report/dump/tmp_ONLINE.slag %s/superlaglist.txt"%(cWB_conf.bkg_run_dir))
379 
380 
381 #create crontab
382 command="""
383 * * * * * %s/bin/check_restart.sh %s %s/run.log none %s/RUN_cWB/restart_run.sh >> /tmp/%s_restart_run.log 2>&1
384 """%(os.environ['CWB_ONLINE'],cWB_conf.run_dir,dir_for_logfiles,os.environ['CWB_ONLINE'],cWB_conf.user)
385 file="%s/run.crontab"%(cWB_conf.run_dir)
386 f=open(file,"w")
387 print >>f, command
388 f.close()
389 
390 web_pages=["run","week","day","mid","hour"]
391 name_pages=["the_whole_run","last_week","last_day","last_12_hours","last_hour"]
392 
393 file="%s/web.crontab"%(cWB_conf.run_dir)
394 ff=open(file,"w")
395 command="""* * * * * %s/bin/check_restart.sh %s %s/web_pages_%s.log %s %s/RUN_cWB/restart_web_pages.sh >> /tmp/%s_restart_web_pages.log 2>&1"""%(os.environ['CWB_ONLINE'],cWB_conf.run_dir,dir_for_logfiles,"daily","daily",os.environ['CWB_ONLINE'],cWB_conf.user)
396 print >>ff, command
397 for w in web_pages:
398  command="""* * * * * %s/bin/check_restart.sh %s %s/web_pages_%s.log %s %s/RUN_cWB/restart_web_pages.sh >> /tmp/%s_restart_web_pages.log 2>&1"""%(os.environ['CWB_ONLINE'],cWB_conf.run_dir,dir_for_logfiles,w,w,os.environ['CWB_ONLINE'],cWB_conf.user)
399  print >>ff, command
400 ff.close()
401 
402 com="cat %s/run.crontab %s/web.crontab > %s/run_and_web.crontab"%(cWB_conf.run_dir,cWB_conf.run_dir,cWB_conf.run_dir)
403 commands.getstatusoutput(com)
404 
405 command="""
406 * * * * * %s/bin/check_restart.sh %s %s/run_ts.log none %s/RUN_cWB/restart_run_ts.sh >> /tmp/%s_restart_run_ts.log 2>&1
407 """%(os.environ['CWB_ONLINE'],cWB_conf.bkg_run_dir,dir_for_logfiles,os.environ['CWB_ONLINE'],cWB_conf.user)
408 file="%s/run_ts.crontab"%(cWB_conf.bkg_run_dir)
409 f=open(file,"w")
410 print >>f, command
411 f.close()
412 
413 com="cat %s/web.crontab %s/run_ts.crontab > %s/web_andbkg.crontab"%(cWB_conf.run_dir,cWB_conf.bkg_run_dir,cWB_conf.run_dir)
414 commands.getstatusoutput(com)
415 
416 com="cat %s/run.crontab %s/web.crontab %s/run_ts.crontab > %s/run_and_web_andbkg.crontab"%(cWB_conf.run_dir,cWB_conf.run_dir,cWB_conf.bkg_run_dir,cWB_conf.run_dir)
417 commands.getstatusoutput(com)
418 
419 file="%s/index.html"%(cWB_conf.web_dir)
420 ffindex=open(file,"w")
421 command="""
422 <?xml version="1.0"?>
423 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
424 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
425 <!-- -->
426 <!-- Author: CWB team (http://www.virgo.lnl.infn.it/Wiki/index.php/Main_Page) -->
427 <!-- -->
428 <!-- Date: Sun Jan 13 16:13:38 2013 -->
429 <!-- -->
430 <head>
431 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
432 <title>CWB Online Report</title>
433 <meta name="rating" content="General" />
434 <meta name="objecttype" content="Report" />
435 <meta name="keywords" content="software development, GW, Analisys, Virgo, LIGO " />
436 <meta name="description" content="CWB - An Framework For GW Burst Data Analysis." />
437 <link rel="shortcut icon" href="/~waveburst/LSC/waveburst/logo/cwb_icon" type="image/png" />
438 <link rel="icon" href="/~waveburst/LSC/waveburst/logo/cwb_logo_icon" type="image/png" />
439 <link rel="stylesheet" type="text/css" href="ROOT.css" id="CWBstyle" />
440 <script type="text/javascript" src="ROOT.js"></script>
441 </head>
442 <body onload="javascript:SetValuesFromCookie();"><div id="body_content">
443 <div id="root_header"><img src="https://www.atlas.aei.uni-hannover.de/~waveburst/LSC/doc/cwb-lbanner.png" width="1100" height="180"
444  USEMAP="#cwb_map" alt="CWB banner"/></div>
445 <map id="cwb_map" name="cwb_map"><area shape="rect" alt="" title="CWB Analysis" coords="3,1,236,172" href="http://www.virgo.lnl.infn.it/Wiki/index.php/Main_Page" target="_blanck" /><area shape="rect" alt="" title="CWB Manual" coords="240,1,627,171" href="https://www.atlas.aei.uni-hannover.de/~waveburst/LSC/doc/cwb/man" target="" /><area shape="rect" alt="" title="LIGO Homepage" coords="631,1,844,88" href="http://www.ligo.caltech.edu/" target="_blanck" /><area shape="rect" alt="" title="VIRGO Homepage" coords="632,93,841,171" href="https://wwwcascina.virgo.infn.it/" target="_blanck" /></map>
446 
447 <div id="toplinks">
448 <div class="descrhead"><div class="descrheadcontent">
449 <span class="descrtitle">Quick Links:</span>
450 <!--
451 <a class="descrheadentry" href="https://www.atlas.aei.uni-hannover.de/~waveburst/LSC/doc/cwb/man">CWB Manual</a>
452 -->
453 <a class="descrheadentry" href="http://www.virgo.lnl.infn.it/Wiki/index.php/Main_Page">CWB Wiki</a>
454 <a class="descrheadentry" href="https://www.atlas.aei.uni-hannover.de/~waveburst/LSC/doc/cwb/man">CWB Manual</a>
455 <a class="descrheadentry" href="https://www.atlas.aei.uni-hannover.de/~waveburst/LSC/doc/cwb/ref">CWB Reference</a>
456 <a class="descrheadentry" href="https://trac.ligo.caltech.edu/watrepo/browser/wat/trunk">CWB Repository</a>
457 <a class="descrheadentry" href="https://trac.ligo.caltech.edu/watrepo/report">CWB Reports</a>
458 <a class="descrheadentry" href="http://root.cern.ch">ROOT Homepage</a>
459 </div>
460 <script type="text/javascript">
461 function onSearch() {
462 var s='http://www.google.com/search?q=%%s+site%%3A%%u+-site%%3A%%u%%2Fsrc%%2F+-site%%3A%%u%%2Fexamples%%2F';
463 var ref=String(document.location.href).replace(/https?:\/\//,'').replace(/\/[^\/]*$/,'').replace(/\//g,'%%2F');
464 window.location.href=s.replace(/%%u/ig,ref).replace(/%%s/ig,escape(document.searchform.t.value));
465 return false;}
466 </script>
467 </div>
468 </div>
469 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
470 <html><head>
471 <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
472 <title>MAIN_Index</title>
473 <!-- Include the tabber code -->
474 <script type="text/javascript" src="tabber.js"></script>
475 <link rel="stylesheet" href="tabber.css" TYPE="text/css" MEDIA="screen">
476 
477 <script type="text/javascript">
478 
479 /* Optional: Temporarily hide the "tabber" class so it does not "flash" on
480  * the page as plain HTML. After tabber runs, the class is changed
481  to "tabberlive" and it will appear. */
482 
483 document.write('<style type="text/css">.tabber{display:none;}<\/style>');
484 
485 </script>
486 
487 </head>
488 <title>%s</title>
489 <body>
490 
491 <html>
492 <h1 align=center>%s</h1>
493 
494 <br>
495 <div class="tabber">
496 """%(cWB_conf.title,cWB_conf.title)
497 
498 page_length=3500
499 
500 for n in name_pages:
501  title=n.replace("_"," ")
502  command+="""
503 <div class="tabbertab">
504  <h2>%s</h2>
505  <iframe src="%s/%s/%s.html" width="100%%" height="%ipx" frameborder="0"></iframe>
506 </div>"""%(title,cWB_conf.summaries_dir,n,n,page_length)
507 
508 command+="""
509 <div class="tabbertab">
510  <h2>Calendar</h2>
511  <iframe src="main.html" width="100%%" height="%ipx" frameborder="0"></iframe>
512 </div>
513 
514 </div>
515 </html>
516 """%(page_length)
517 print >>ffindex, command
518 ffindex.close()
519 
520 #olddir=os.getcwd()
521 #os.chdir("%s"%cWB_conf.run_dir)
522 #print commands.getstatusoutput("./web_pages.py")
523 #os.chdir(olddir)
524 try:
525  python_script=cWB_conf.python_script
526  dirs=["RUN_cWB","TIME_SHIFTS","RUN_cWB/bin","TIME_SHIFTS/bin","TIME_SHIFTS/POSTPRODUCTION","TIME_SHIFTS/template.merged"]
527  ext=["py"]
528 
529  files=[]
530  for d in dirs:
531  for e in ext:
532  files+=glob.glob("%s/%s/*.%s"%(cWB_conf.online_dir,d,e))
533 
534  for f in files:
535  #print f
536  com="""sed -i "s\%s\%s\g" %s"""%("/usr/bin/python",python_script,f)
537  #print com
538  a=commands.getstatusoutput(com)
539 except:
540  python_script=""
541 
542 print "Analysis dir: %s"%(cWB_conf.online_dir)
in open(HEN_LIST, ios::in)