Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cwb_frdisplay.C
Go to the documentation of this file.
1 {
3 
4  TB.checkFile(gSystem->Getenv("CWB_ROOTLOGON_FILE"));
5  TB.checkFile(gSystem->Getenv("CWB_PARAMETERS_FILE"));
6  TB.checkFile(gSystem->Getenv("CWB_UPARAMETERS_FILE"));
7 
8  int cwb_jobid=0;
9  if(gSystem->Getenv("CWB_JOBID")==NULL) {
10  cout << "Error : environment CWB_JOBID is not defined!!!" << endl;exit(1);
11  } else {
12  if(TString(gSystem->Getenv("CWB_JOBID")).IsDigit()) {
13  cwb_jobid=TString(gSystem->Getenv("CWB_JOBID")).Atoi();
14  } else {
15  cout << "Error : environment CWB_JOBID is not defined!!!" << endl;exit(1);
16  }
17  }
18  cout << "cwb_jobid : " << cwb_jobid << endl;
19 
21  if(gSystem->Getenv("CWB_IFO")==NULL) {
22  cout << "Error : environment CWB_IFO is not defined!!!" << endl;exit(1);
23  } else {
24  cwb_ifo=TString(gSystem->Getenv("CWB_IFO"));
25  }
26  cout << "cwb_ifo : " << cwb_ifo.Data() << endl;
27 
28  TString home_frdisplay="";
29  if(gSystem->Getenv("HOME_FRDISPLAY")==NULL) {
30  cout << "Error : environment HOME_FRDISPLAY is not defined!!!" << endl;exit(1);
31  } else {
32  home_frdisplay=TString(gSystem->Getenv("HOME_FRDISPLAY"));
33  }
34  cout << "home_frdisplay : " << home_frdisplay.Data() << endl;
35 
36  // check if ifo is declared in user_parameters.C
37  bool icheck=false;
38  for(int i=0;i<nIFO;i++) {
39  if(cwb_ifo.CompareTo(ifo[i])==0) icheck=true;
40  }
41  if(!icheck) {
42  cout << "Error - ifo : " << cwb_ifo.Data() << " is not declared in "
43  << gSystem->Getenv("CWB_UPARAMETERS_FILE") << endl;
44  cout << endl << "List of allowed ifos " << endl << endl;
45  for(int i=0;i<nIFO;i++) cout << ifo[i] << endl;
46  cout << endl;
47  exit(1);
48  }
49 
50  int ifoID=0;
51  for(int i=0;i<nIFO;i++) if(cwb_ifo.CompareTo(ifo[i])==0) ifoID=i;
52  cout << "ifoID : " << ifoID << endl;
53 
54  vector<waveSegment> cat1List=TB.readSegList(nDQF, DQF, CWB_CAT1);
55  vector<waveSegment> jobList;
56  if(slagSize==0) {
57  // get standard job list
58  jobList=TB.getJobList(cat1List, segLen, segMLS, segEdge);
59  } else {
60  // get slag job list
61  jobList=TB.getSlagJobList(cat1List, segLen);
62  }
63 
64  int job_start = jobList[cwb_jobid].start;
65  int job_stop = jobList[cwb_jobid].stop;
66 
67  cout << "job_start : " << job_start << " job_stop : " << job_stop << endl;
68 
69  // prepare frame list format for frdisplay
70  gRandom->SetSeed(0);
71  int baudline_rnID = gRandom->Uniform(0,10000000); // random name ID
72 
73  UserGroup_t* uinfo = gSystem->GetUserInfo();
74 
75  char cmd[256];
76  sprintf(cmd,"mkdir -p /dev/shm/%s",uinfo->fUser.Data());
77  gSystem->Exec(cmd);
78 
79  char baudline_FFL[512];
80  sprintf(baudline_FFL,"/dev/shm/%s/cwb_frdisplay_%d.ffl",uinfo->fUser.Data(),baudline_rnID);
81  cout << "baudline_FFL : " << baudline_FFL << endl;
82 
83  ofstream out;
84  out.open(baudline_FFL,ios::out);
85  if (!out.good()) {cout << "Error Opening File : " << baudline_FFL << endl;exit(1);}
86 
87  ifstream in;
88  in.open(frFiles[ifoID],ios::in);
89  if (!in.good()) {cout << "Error Opening File : " << frFiles[ifoID] << endl;exit(1);}
90 
91  TString pfile_path="";
92  char istring[1024];
93  while (1) {
94  in >> istring;
95  if (!in.good()) break;
97  file_path.ReplaceAll("file://localhost","");
98 
100  file_path_tmp.ReplaceAll(".gwf","");
101  TObjArray* token = TString(file_path_tmp).Tokenize(TString("-"));
102  int frfile_start = ((TObjString*)token->At(token->GetEntries()-2))->GetString().Atoi();
103  int frfile_len = ((TObjString*)token->At(token->GetEntries()-1))->GetString().Atoi();
104  int frfile_stop = frfile_start+frfile_len;
105  if(frfile_stop<job_start) continue;
106  if(frfile_start>job_stop) continue;
107  out << file_path.Data() << " " << 0 << " " << 0 << " " << 0 << " " << 0 << endl;
108  cout << file_path.Data() << endl;
109  }
110  in.close();
111  out.close();
112 
113  cout << "out file : " << baudline_FFL << endl;
114 
115  sprintf(cmd,"%s/FrDisplay -d 5 -proc -t %s -i %s -k \"-Bu -Hp -o 6 -a 50\"",home_frdisplay.Data(),channelNamesRaw[ifoID],baudline_FFL);
116  cout << cmd << endl;
117  gSystem->Exec(cmd);
118  sprintf(cmd,"ps | grep baudline | awk '{print $1}' | xargs kill -9");
119  cout << cmd << endl;
120  gSystem->Exec(cmd);
121 
122  exit(0);
123 }
double segMLS
Definition: test_config1.C:47
int slagSize
Definition: test_config1.C:65
int job_start
Definition: cwb_frdisplay.C:64
int baudline_rnID
Definition: cwb_frdisplay.C:71
TString file_path
Definition: cwb_frdisplay.C:96
char channelNamesRaw[NIFO_MAX][50]
int frfile_len
TString("c")
int frfile_stop
char frFiles[NIFO_MAX+1][256]
Definition: test_config1.C:166
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
Definition: cwb_frdisplay.C:94
double segEdge
Definition: test_config1.C:49
i drho i
static bool checkFile(TString fName, bool question=false, TString message="")
Definition: Toolbox.cc:3956
TObjArray * token
CWB::Toolbox TB
Definition: ComputeSNR.C:5
char ifo[NIFO_MAX][8]
nDQF
Definition: cwb_eced.C:92
#define nIFO
ofstream out
Definition: cwb_merge.C:196
int cwb_jobid
Definition: cwb_frdisplay.C:8
char cmd[256]
Definition: cwb_frdisplay.C:75
vector< int > jobList
dqfile DQF[12]
Definition: test_config1.C:171
static vector< waveSegment > getSlagJobList(vector< waveSegment > ilist, int seglen=600)
Definition: Toolbox.cc:1771
int frfile_start
segLen
Definition: cwb_eced.C:7
TString cwb_ifo
Definition: cwb_frdisplay.C:20
UserGroup_t * uinfo
Definition: cwb_frdisplay.C:73
vector< waveSegment > cat1List
static vector< waveSegment > getJobList(vector< waveSegment > ilist, double segLen=600., double segMLS=300., double segEdge=8.)
Definition: Toolbox.cc:627
int job_stop
Definition: cwb_frdisplay.C:65
static vector< waveSegment > readSegList(dqfile DQF)
Definition: Toolbox.cc:391
TString file_path_tmp
Definition: cwb_frdisplay.C:99
ifstream in
char baudline_FFL[512]
Definition: cwb_frdisplay.C:79
exit(0)
sprintf(cmd,"mkdir -p /dev/shm/%s", uinfo->fUser.Data())