16 sprintf(html_footer,
"%s/html/etc/html/footer.html",gSystem->Getenv(
"HOME_WAT"));
17 if(gSystem->AccessPathName(html_footer)) {
19 cout <<
"Please do : " << endl;
20 cout <<
"cd $HOME_WAT" << endl;
21 cout <<
"make html_footer" << endl;
28 if(gSystem->Getenv(
"CWB_DOC_URL")!=NULL) {
29 cwb_doc_url=
TString(gSystem->Getenv(
"CWB_DOC_URL"));
34 if(gSystem->Getenv(
"SITE_CLUSTER")==NULL) {
35 cout <<
"Error : environment SITE_CLUSTER is not defined!!!" << endl;
exit(1);
37 site_cluster=
TString(gSystem->Getenv(
"SITE_CLUSTER"));
43 if(gSystem->Getenv(
"CWB_MERGE_LABEL")==NULL) {
44 cout <<
"Error : environment CWB_MERGE_LABEL is not defined!!!" << endl;
exit(1);
51 if(merge_label[0]!=
'M') {
52 cout <<
"Error : label " << merge_label.Data() <<
" has bad format (M#)" << endl;
exit(1);
56 if(!lcheck.IsDigit()) {
57 cout <<
"Error : label " << merge_label.Data() <<
" has bad format (M#)" << endl;
exit(1);
59 iversion=lcheck.Atoi();
66 cout <<
"Number of jobs in the merged lists : " << merge_jobList.size() << endl;
79 int estat = gSystem->GetPathInfo(condor_dag_file,&
id,&size,&
flags,&mt);
83 cout <<
"Number of jobs/factors in the condor lists : " << condor_jobList.size() <<
"/" <<
nfactor << endl;
87 if(merge_jobList.size()<
nfactor*condor_jobList.size()) {
88 sprintf(merge_job_list_str,
"<font color=\"red\">%d</font>",(
int)merge_jobList.size());
90 sprintf(merge_job_list_str,
"%d",(
int)merge_jobList.size());
94 if(condor_jobList.size()>0 && merge_jobList.size()>0) {
96 sprintf(condor_job_list_str,
"(%d*%d)",
nfactor,(
int)condor_jobList.size());
97 sprintf(percentage_job_list_str,
"<font color=\"blue\">%2.1f%%</font>",
98 100.*merge_jobList.size()/(
nfactor*condor_jobList.size()));
100 sprintf(condor_job_list_str,
"%d", (
int)condor_jobList.size());
101 sprintf(percentage_job_list_str,
"<font color=\"blue\">%2.1f%%</font>",
102 100.*merge_jobList.size()/condor_jobList.size());
105 sprintf(condor_job_list_str,
"0");
106 sprintf(percentage_job_list_str,
"<font color=\"blue\">%2.1f%%</font>",0.);
111 if(gSystem->Getenv(
"HOME_WAT")==NULL) {
112 cout <<
"Error : environment HOME_WAT is not defined!!!" << endl;
exit(1);
114 home_wat=
TString(gSystem->Getenv(
"HOME_WAT"));
117 if(gSystem->Getenv(
"CWB_NETC_FILE")==NULL) {
118 cout <<
"Error : environment CWB_NETC_FILE is not defined!!!" << endl;
exit(1);
120 cwb_netc_file=
TString(gSystem->Getenv(
"CWB_NETC_FILE"));
123 if(gSystem->Getenv(
"CWB_PARAMETERS_FILE")==NULL) {
124 cout <<
"Error : environment CWB_PARAMETERS_FILE is not defined!!!" << endl;
exit(1);
126 cwb_parameters_file=
TString(gSystem->Getenv(
"CWB_PARAMETERS_FILE"));
129 if(gSystem->Getenv(
"CWB_UPARAMETERS_FILE")==NULL) {
130 cout <<
"Error : environment CWB_UPARAMETERS_FILE is not defined!!!" << endl;
exit(1);
132 cwb_uparameters_file=
TString(gSystem->Getenv(
"CWB_UPARAMETERS_FILE"));
135 if(gSystem->Getenv(
"CWB_PPARAMETERS_FILE")==NULL) {
136 cout <<
"Error : environment CWB_PPARAMETERS_FILE is not defined!!!" << endl;
exit(1);
138 cwb_pparameters_file=
TString(gSystem->Getenv(
"CWB_PPARAMETERS_FILE"));
141 if(gSystem->Getenv(
"CWB_UPPARAMETERS_FILE")==NULL) {
142 cout <<
"Error : environment CWB_UPPARAMETERS_FILE is not defined!!!" << endl;
exit(1);
144 cwb_upparameters_file=
TString(gSystem->Getenv(
"CWB_UPPARAMETERS_FILE"));
153 TFile*
wfile =
new TFile(merged_file_name);
154 if(wfile==NULL) {cout <<
"Error : file " << merged_file_name.Data() <<
" not found" << endl;
exit(1);}
163 bool hwat,hgit,hcfg_branch,hcfg_tag,hcfg_diff,hfrlib,hroot,hlal=
false;
164 for(
int j=0;
j<typeList->GetSize();
j++) {
165 TObjString* typeObjString = (TObjString*)typeList->At(
j);
166 TString typeName = typeObjString->GetString();
167 if(typeName==
"WATVERSION") hwat=
true;
168 if(typeName==
"GITVERSION") hgit=
true;
169 if(typeName==
"FRLIBVERSION") hfrlib=
true;
170 if(typeName==
"ROOTVERSION") hroot=
true;
171 if(typeName==
"LALVERSION") hlal=
true;
172 if(typeName==
"CWB_CONFIG_BRANCH") hcfg_branch=
true;
173 if(typeName==
"CWB_CONFIG_TAG") hcfg_tag=
true;
174 if(typeName==
"CWB_CONFIG_DIFF") hcfg_diff=
true;
177 for(
int i=0;
i<stageList->GetSize();
i++) {
178 TObjString* stageObjString = (TObjString*)stageList->At(
i);
179 TString stageName = stageObjString->GetString();
180 char* stage =
const_cast<char*
>(stageName.Data());
181 TString stageLabel = stageName; stageLabel.Resize(2); stageLabel+=
TString(
"-");
183 if(log!=
"") pr_wat_ver += log+
" ";
185 if(log!=
"") pr_wat_git += stageLabel+log+
" ";
187 if(log!=
"") pr_framelib_ver =
log;
189 if(log!=
"") pr_root_ver =
log;
191 if(log!=
"") pr_lal_ver =
log;
193 if(log!=
"") pr_cfg_ver =
log;
195 if(log!=
"") pr_cfg_ver =
log;
197 if(log!=
"") pr_cfg_ver +=
"/"+
log;
201 if(pr_wat_ver==
"") pr_wat_ver=
"n/a";
202 if(pr_wat_git==
"") pr_wat_git=
"n/a";
203 if(pr_framelib_ver==
"") pr_framelib_ver=
"n/a";
204 if(pr_root_ver==
"") pr_root_ver=
"n/a";
205 if(pr_lal_ver==
"") pr_lal_ver=
"n/a";
206 if(pr_cfg_ver==
"") pr_cfg_ver=
"n/a";
216 sprintf(cmd,
"export CWB_BENCH_OPTS=");
217 sprintf(cmd,
"%s'--bench jet --plot hist %s --save %s/jet_benchmark.png';",cmd,max_opt,odir);
218 sprintf(cmd,
"%s root -n -l -b ",cmd);
219 sprintf(cmd,
"%s ${CWB_ROOTLOGON_FILE} ${CWB_PARAMETERS_FILE}",cmd);
220 sprintf(cmd,
"%s ${CWB_UPARAMETERS_FILE} ${CWB_EPARAMETERS_FILE}",cmd);
221 sprintf(cmd,
"%s ${CWB_MACROS}/cwb_condor_benchmark.C",cmd);
229 sprintf(cmd,
"export CWB_BENCH_OPTS=");
230 sprintf(cmd,
"%s'--bench mem --plot hist %s --save %s/mem_benchmark.png';",cmd,max_opt,odir);
231 sprintf(cmd,
"%s root -n -l -b ",cmd);
232 sprintf(cmd,
"%s ${CWB_ROOTLOGON_FILE} ${CWB_PARAMETERS_FILE}",cmd);
233 sprintf(cmd,
"%s ${CWB_UPARAMETERS_FILE} ${CWB_EPARAMETERS_FILE}",cmd);
234 sprintf(cmd,
"%s ${CWB_MACROS}/cwb_condor_benchmark.C",cmd);
241 for(
int i=0;
i<condor_jobList.size();
i++)
242 if(condor_jobList[
i]>max_jobs) max_jobs=condor_jobList[
i];
243 if(max_jobs==0) max_jobs = merge_jobList.size();
244 vector<int> jobStatus(max_jobs);
245 vector<TString> jobFile(max_jobs);
247 for (
int i=0;
i<condor_jobList.size();
i++)
248 jobStatus[condor_jobList[
i]-1]=0;
249 for (
int i=0;
i<merge_jobList.size();
i++) {
250 if(merge_jobList[
i]>max_jobs) {
251 cout <<
"cwb_mkhtml_header.C - Error : number of jobs in merged list is > job in condor list" << endl;
254 jobStatus[merge_jobList[
i]-1]+=1;
255 jobFile[merge_jobList[
i]-1]=merge_jobFileList[
i];
261 out <<
"<html>" << endl;
263 sprintf(jstatus,
"<font color=\"black\">Job Status : </font>");
264 sprintf(jstatus,
"%s<font color=\"red\">%s</font>",jstatus,merge_job_list_str);
265 sprintf(jstatus,
"%s<font color=\"black\">/%s - </font>",jstatus,condor_job_list_str);
266 sprintf(jstatus,
"%s<font color=\"blue\">%s</font>",jstatus,percentage_job_list_str);
267 out <<
"<font style=\"font-weight:bold;\"><center><p><h2>"
268 << jstatus <<
"</h2><p><center></font>" << endl;
270 out <<
"<hr><br>" << endl;
271 out <<
"<table border=0 cellpadding=2 align=\"center\">" << endl;
272 out <<
"<tr align=\"center\">" << endl;
274 out <<
"<td><a href=\"jet_benchmark.png\"><img src=\"jet_benchmark.png\" width=450></a></td>" << endl;
276 out <<
"<td><a href=\"mem_benchmark.png\"><img src=\"mem_benchmark.png\" width=450></a></td>" << endl;
277 out <<
"</tr>" << endl;
278 out <<
"<tr align=\"center\">" << endl;
282 out <<
"<td>max hour = auto </td>" << endl;
286 out <<
"<td>max mem = auto </td>" << endl;
287 out <<
"</tr>" << endl;
288 out <<
"</table>" << endl;
290 out <<
"<hr><br>" << endl;
292 out <<
"<a><td><font color=\"black\"> List of unfinished jobs </font></td></a>" << endl;
293 out <<
"<br><br>" << endl;
294 out <<
"<table border=0 cellpadding=2 align=\"center\">" << endl;
304 if(jobStatus[
i]==0) {
307 for(
int j=ib;
j<
max_jobs;
j++)
if(jobStatus[
j]==0) ie=
j;
else break;
309 out <<
"<tr align=\"center\">" << endl;
311 sprintf(oline,
"<td><font color=\"blue\">%d</font></td>",ib+1);
313 sprintf(oline,
"<td><font color=\"blue\">%d:%d</font></td>",ib+1,ie+1);
314 out << oline << endl;
317 out << oline << endl;
320 out << oline << endl;
321 sprintf(oline,
"<td align=\"left\"><font color=\"red\">%s</font></td>",
"unfinished/excluded");
322 out << oline << endl;
323 out <<
"</tr>" << endl;
327 out <<
"<tr align=\"center\">" << endl;
328 sprintf(oline,
"<td><font color=\"black\">%d</font></td>",
i+1);
329 out << oline << endl;
330 sprintf(oline,
"<td><font color=\"red\">%d</font>/%d</td>",jobStatus[
i],
nfactor);
331 out << oline << endl;
332 TObjArray* token = jobFile[
i].Tokenize(
TString(
'_'));
333 TObjString* stoken =(TObjString*)token->At(token->GetEntries()-2);
334 jobFile[
i].ReplaceAll(
"_"+stoken->GetString()+
"_job",
"_*_job");
335 if(token)
delete token;
336 sprintf(oline,
"<td align=\"left\"><font color=\"blue\">%s</font></td>",jobFile[
i].Data());
337 out << oline << endl;
338 sprintf(oline,
"<td align=\"left\"><font color=\"red\">%s</font></td>",status.Data());
339 out << oline << endl;
340 out <<
"</tr>" << endl;
344 out <<
"</table>" << endl;
345 out <<
"</html>" << endl;
350 html.SetEtcDir(gSystem->ExpandPathName(
"$HOME_WAT/html/etc/html"));
351 html.SetProductName(
"CWB");
352 TString html_input_dir=
"$CWB_TOOLBOX:$CWB_GWAT:$CWB_HISTORY:$HOME_CWB";
353 html_input_dir+=
":$CWB_STFT:$CWB_BICO:$HOME_WAT/wat:$ROOTSYS/include";
354 html_input_dir+=
":"+
TString(odir);
355 html.SetInputDir(html_input_dir.Data());
362 fflush(stderr); fgetpos(stderr, &pos);
363 int fd = dup(fileno(stderr));
364 freopen(
"/dev/null",
"w", stderr);
366 html.Convert(cwb_parameters_file.Data(),cwb_parameters_file.Data(),
odir);
368 html.Convert(cwb_uparameters_path.Data(),cwb_uparameters_file.Data(),
odir);
369 html.Convert(cwb_pparameters_file.Data(),cwb_pparameters_file.Data(),
odir);
371 html.Convert(cwb_upparameters_path.Data(),cwb_upparameters_file.Data(),
odir);
374 fflush(stderr); dup2(fd, fileno(stderr));
close(fd);
375 clearerr(stderr); fsetpos(stderr, &pos);
379 int rnID =
int(gRandom->Rndm(13)*1.e9);
380 UserGroup_t* _uinfo = gSystem->GetUserInfo();
381 TString _uname = _uinfo->fUser;
387 char pluginName[1024]=
"";
388 sprintf(pluginName,
"%s/CWB_Plugin.C",tdir);
389 plugin.SaveSource(pluginName);
390 html.Convert(pluginName,
"CWB_Plugin.C",odir);
394 char configPluginName[1024]=
"";
395 sprintf(configPluginName,
"%s/CWB_configPlugin.C",tdir);
397 html.Convert(configPluginName,
"CWB_configPlugin.C",odir);
421 cout <<
"make header file : " << ofile << endl;
423 if (!hout.good()) {cout <<
"Error Opening File : " << ofile << endl;
exit(1);}
425 TString Rho_LF,RhOut,RhAcor,svED,sPEN,sIFAR,sWIN,sHRSS,sHRSS_LF,sfLow,sfHigh,sfResample;
426 TString sdelta,sgamma,ssubnet,sbpp,snetRHO,snetCC;
427 TString sT_cor,sT_cut,sT_scc,spp_vetoes;
468 char pp_fbandcuts[1024]=
"";
479 spp_vetoes+=
"hveto ";
490 sprintf(s,
"%.2f",sRate); sfResample=
s;
497 double skyres = sphere_solid_angle/
npix;
498 sprintf(sSkyMapRes,
"healpix - order = %d - skyres = %2.3f (deg^2)",(
int)
healpix,skyres);
501 sprintf(sSkyMapRes,
"built-in - skyres = %2.3f (deg^2)",angle*angle);
506 sprintf(sTFres,
"%s %gx(1/%g)",sTFres,(sRate/2)/TMath::Power(2,
n),sRate/TMath::Power(2,
n));
512 char pp_framelib_ver[32];
sprintf(pp_framelib_ver,
"%f",FRAMELIB_VERSION);
513 const char *pp_root_ver = gROOT->GetVersion();
518 if(
GetGitInfos(
"diff",
"$CWB_CONFIG")!=
"") pp_cfg_ver +=
"/M";
522 in.getline(istring,1024);
523 if (!in.good())
break;
525 ostring.ReplaceAll(
"FLOW",sfLow);
526 ostring.ReplaceAll(
"FHIGH",sfHigh);
527 ostring.ReplaceAll(
"SKYMAPRES",sSkyMapRes);
528 ostring.ReplaceAll(
"TFRES",sTFres);
529 ostring.ReplaceAll(
"FRESAMPLE",sfResample);
530 ostring.ReplaceAll(
"RUN_LABEL",
RunLabel);
531 ostring.ReplaceAll(
"ST_COR",sT_cor);
532 ostring.ReplaceAll(
"RHO_LF",Rho_LF);
533 ostring.ReplaceAll(
"ST_CUT",sT_cut);
534 ostring.ReplaceAll(
"RH_OUT",RhOut);
535 ostring.ReplaceAll(
"RH_ACOR",RhAcor);
536 ostring.ReplaceAll(
"svED",svED);
537 ostring.ReplaceAll(
"ST_SCC",sT_scc);
538 ostring.ReplaceAll(
"sPEN",sPEN);
539 ostring.ReplaceAll(
"sIFAR",sIFAR);
540 ostring.ReplaceAll(
"sWIN",sWIN);
541 ostring.ReplaceAll(
"sHRSS_LF",sHRSS_LF);
542 ostring.ReplaceAll(
"sHRSS",sHRSS);
543 ostring.ReplaceAll(
"sPP_VETOES",spp_vetoes);
545 ostring.ReplaceAll(
"BUILD_DATE",
wat::Time(
"now").GetDateString());
546 ostring.ReplaceAll(
"PR_WAT_VER",pr_wat_ver);
547 ostring.ReplaceAll(
"PR_WAT_GIT",pr_wat_git);
548 ostring.ReplaceAll(
"PR_ROOT_VER",pr_root_ver);
549 ostring.ReplaceAll(
"PR_FRAMELIB_VER",pr_framelib_ver);
550 ostring.ReplaceAll(
"PR_LAL_VER",pr_lal_ver);
551 ostring.ReplaceAll(
"PP_WAT_VER",
watversion(
's'));
552 ostring.ReplaceAll(
"PP_WAT_GIT",
watversion(
'r'));
553 ostring.ReplaceAll(
"PP_ROOT_VER",pp_root_ver);
554 ostring.ReplaceAll(
"PP_FRAMELIB_VER",pp_framelib_ver);
555 ostring.ReplaceAll(
"PR_CFG_VER",pr_cfg_ver);
556 ostring.ReplaceAll(
"PP_CFG_VER",pp_cfg_ver);
560 ostring.ReplaceAll(
"PP_LAL_VER",
"");
562 ostring.ReplaceAll(
"PIPELINE",analysis);
563 ostring.ReplaceAll(
"SEARCH",ssearch);
564 ostring.ReplaceAll(
"SIMULATION",ssimulation);
565 ostring.ReplaceAll(
"DELTA",sdelta);
566 ostring.ReplaceAll(
"GAMMA",sgamma);
567 ostring.ReplaceAll(
"SUBNET",ssubnet);
568 ostring.ReplaceAll(
"BPP",sbpp);
569 ostring.ReplaceAll(
"PP_IRHO",spp_irho);
570 ostring.ReplaceAll(
"PP_INETCC",spp_inetcc);
571 ostring.ReplaceAll(
"NETRHO",snetRHO);
572 ostring.ReplaceAll(
"NETCC",snetCC);
573 ostring.ReplaceAll(
"PP_FREQ_BAND_CUTS",pp_fbandcuts);
574 ostring.ReplaceAll(
"MERGE_CUTS",merge_cuts);
575 ostring.ReplaceAll(
"TITLE",
title);
576 ostring.ReplaceAll(
"SITE_CLUSTER",site_cluster);
577 ostring.ReplaceAll(
"WORK_DIR",
work_dir);
579 ostring.ReplaceAll(
"JOB_MERGE",merge_job_list_str);
580 ostring.ReplaceAll(
"JOB_CONDOR",condor_job_list_str);
581 ostring.ReplaceAll(
"JOB_PERCENTAGE",percentage_job_list_str);
583 ostring.ReplaceAll(
"<!--CUT_SCC",
"");
584 ostring.ReplaceAll(
"CUT_SCC-->",
"");
587 ostring.ReplaceAll(
"<!--CUT_PEN",
"");
588 ostring.ReplaceAll(
"CUT_PEN-->",
"");
591 ostring.ReplaceAll(
"<!--CUT_IFAR",
"");
592 ostring.ReplaceAll(
"CUT_IFAR-->",
"");
595 ostring.ReplaceAll(
"<!--CUT_WIN",
"");
596 ostring.ReplaceAll(
"CUT_WIN-->",
"");
598 ostring.ReplaceAll(
"</html>",
"");
600 ostring.ReplaceAll(
"<!--CUT_NED",
"");
601 ostring.ReplaceAll(
"CUT_NED-->",
"");
603 if (spp_vetoes!=
"") {
604 ostring.ReplaceAll(
"<!--CUT_PP_VETOES",
"");
605 ostring.ReplaceAll(
"CUT_PP_VETOES-->",
"");
608 ostring.ReplaceAll(
"<!--CWB_PLUGIN",
"");
609 ostring.ReplaceAll(
"CWB_PLUGIN-->",
"");
612 ostring.ReplaceAll(
"<!--CWB_CONF_PLUGIN",
"");
613 ostring.ReplaceAll(
"CWB_CONF_PLUGIN-->",
"");
616 ostring.ReplaceAll(
"<!--CWB1G_PARAMETERS",
"");
617 ostring.ReplaceAll(
"CWB1G_PARAMETERS-->",
"");
619 ostring.ReplaceAll(
"<!--CWB2G_PARAMETERS",
"");
620 ostring.ReplaceAll(
"CWB2G_PARAMETERS-->",
"");
622 if(cwb_doc_url!=
"") {
623 ostring.ReplaceAll(
"<!--CWB_DOC_URL",
"");
624 ostring.ReplaceAll(
"CWB_DOC_URL-->",
"");
625 ostring.ReplaceAll(
"XCWB_DOC_URL",cwb_doc_url.Data());
627 ostring.ReplaceAll(
"</html>",
"");
628 hout << ostring.Data() << endl;
cout<< "skymap size : "<< L<< endl;for(int l=0;l< L;l++) sm.set(l, l);sm > const_cast< char * >("skymap.dat")
char * watversion(char c='s')
cout<< "baudline_FFL : "<< baudline_FFL<< endl;ofstream out;out.open(baudline_FFL, ios::out);if(!out.good()){cout<< "Error Opening File : "<< baudline_FFL<< endl;exit(1);}ifstream in;in.open(frFiles[ifoID], ios::in);if(!in.good()){cout<< "Error Opening File : "<< frFiles[ifoID]<< endl;exit(1);}TString pfile_path="";char istring[1024];while(1){in > istring
char condor_dag_file[256]
char html_header_template[1024]
strcpy(RunLabel, RUN_LABEL)
char * GetHistory(char *StageName, char *Type)
char full_condor_dir[512]