Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cwb_merge_log.C
Go to the documentation of this file.
1 // merge log injection files : this script is called from cwb_merge.C
2 // iversion is defined in cwb_merge.C
3 // WARNING!!! -> For unamed macro all variables must be declared before any return statement !!!
4 
5 {
6 
7  #include <vector>
8 
9  bool first=true;
10 
11  char _cmd[1024];
12  char _log[1024];
13  char logFile[1024];
14  char lstFile[1024];
15 
16  vector<TString> logList;
17  vector<TString> _fileList;
18 
19  ifstream in;
20  ofstream _out;
21 
26  for(int n=0;n<nIFO;n++) IFO[n]=ifo[n];
27  CWB::mdc MDC(nIFO,IFO);
28 
29 
30 
31  sprintf(logFile,"%s/log_%s.M%d.txt",merge_dir,data_label,iversion);
32 
33  // read log file list
34  _fileList = CWB::Toolbox::getFileListFromDir(output_dir, ".txt","log_","",true);
35  if(_fileList.size()==0) { // no log file are present in the directory
36  cout << "No Log files are present on the directory : " << output_dir << endl;
37  return;
38  }
39  for(int j=0;j<_fileList.size();j++) {
40  if(_fileList[j].Contains(data_label)) {
41  logList.push_back(_fileList[j].Data());
42  //cout << j << " " << _fileList[j].Data() << endl;
43  }
44  }
45  if(logList.size()==0) { // no log file are present in the directory
46  cout << "No Log files are present on the directory : " << output_dir << endl;
47  return;
48  }
49 
50  // write lstFile to nodedir
51  sprintf(lstFile,"%s/%s-Log.lst",tmp_dir,data_label);
52  _out.open(lstFile,ios::out);
53  if (!_out.good()) {cout << "cwb_merge_log.C - Error Opening File : " << lstFile << endl;exit(1);}
54  for(int i=0;i<logList.size();i++) _out << logList[i].Data() << endl;
55  _out.close();
56 
57  // Sort lstFile
58  sortFile = lstFile;
59  sortFile.ReplaceAll(".lst",".sort");
60  sprintf(_cmd,"sort %s > %s",lstFile,sortFile.Data());
61  cout << _cmd << endl;
62  gSystem->Exec(_cmd);
63 
64  // write merged log
65  in.open(sortFile.Data(),ios::in);
66  if (!in.good()) {cout << "cwb_merge_log.C - Error Opening Sorted File : " << sortFile.Data() << endl;exit(1);}
67  while(true) {
68  in.getline(_log,1024);
69  if (!in.good()) break;
70  if(first) {
71  sprintf(_cmd,"cat %s > %s",_log,logFile);
72  first=false;
73  } else {
74  sprintf(_cmd,"cat %s >> %s",_log,logFile);
75  }
76  //cout << _cmd << endl;
77  gSystem->Exec(_cmd);
78  }
79  in.close();
80 
81  // remove lstFile
82  sprintf(_cmd,"rm %s %s",lstFile,sortFile.Data());
83  //cout << _cmd << endl;
84  gSystem->Exec(_cmd);
85 
86  cout << endl << "Merged LogFile : " << logFile << endl << endl;
87 
88  // write log root
89  rootFile = logFile;
90  rootFile.ReplaceAll(".txt",".root");
91  //cout << TString(rootFile).Data() << endl;
93  MDC.DumpLog(rootFile);
94 
95  // write log header
96  logHeaderFile = logFile;
97  logHeaderFile.ReplaceAll("log_","hlog_");
98  MDC.DumpLogHeader(logHeaderFile,data_label);
99 
100  // merge log and log header
101  sprintf(_cmd,"cat %s >> %s",logFile,logHeaderFile.Data());
102  //cout << _cmd << endl;
103  gSystem->Exec(_cmd);
104  sprintf(_cmd,"rm %s",logFile);
105  //cout << _cmd << endl;
106  gSystem->Exec(_cmd);
107  sprintf(_cmd,"mv %s %s",logHeaderFile.Data(),logFile);
108  //cout << _cmd << endl;
109  gSystem->Exec(_cmd);
110 }
static vector< TString > getFileListFromDir(TString dir_name, TString endString="", TString beginString="", TString containString="", bool fast=false)
Definition: Toolbox.cc:4333
char logFile[1024]
Definition: cwb_merge_log.C:13
int n
Definition: cwb_net.C:10
TString("c")
CWB::mdc * MDC
int j
Definition: cwb_net.C:10
vector< TString > _fileList
Definition: cwb_merge_log.C:17
i drho i
TString logHeaderFile
Definition: cwb_merge_log.C:24
char ifo[NIFO_MAX][8]
void SetSkyDistribution(MDC_DISTRIBUTION sky_distribution, vector< mdcpar > par, int seed=0, bool add=false)
Definition: mdc.cc:3415
#define nIFO
ofstream out
Definition: cwb_merge.C:196
char data_label[512]
Definition: test_config1.C:160
TString sortFile
Definition: cwb_merge_log.C:22
TString IFO[NIFO_MAX]
Definition: cwb_merge_log.C:25
char tmp_dir[512]
Definition: test_config1.C:153
Definition: mdc.hh:216
ofstream _out
Definition: cwb_merge_log.C:20
void DumpLogHeader(TString fName, TString label="", int size=0)
Definition: mdc.cc:4538
const int NIFO_MAX
Definition: wat.hh:4
sprintf(lstFile,"%s/%s-Log.lst", tmp_dir, data_label)
char merge_dir[512]
Definition: test_config1.C:147
vector< TString > logList
Definition: cwb_merge_log.C:16
TString rootFile
Definition: cwb_merge_log.C:23
ifstream in
Definition: cwb_merge_log.C:19
char lstFile[1024]
Definition: cwb_merge_log.C:14
void DumpLog(TString fName, TString label="", bool append=false)
Definition: mdc.cc:5039
char _log[1024]
Definition: cwb_merge_log.C:12
char output_dir[512]
Definition: test_config1.C:146
exit(0)
char _cmd[1024]
Definition: cwb_merge_log.C:5