Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GetLiveTime_ZeroLag_AFTER_PP_DQ.C
Go to the documentation of this file.
1 #define L1_FILE_CAT0 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/L1Cat0.txt"
2 #define H1_FILE_CAT0 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/H1Cat0.txt"
3 
4 #define L1_FILE_CAT1 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/L1Cat1.txt"
5 #define H1_FILE_CAT1 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/H1Cat1.txt"
6 
7 #define L1_FILE_CAT2 "/home/vedovato/O1/DQvetos/ER8b_12Sep20Oct_C0101/L1Cat2.txt"
8 #define H1_FILE_CAT2 "/home/vedovato/O1/DQvetos/ER8b_12Sep20Oct_C0101/H1Cat2.txt"
9 
10 //#define L1_FILE_CAT2 "L1Cat2.txt"
11 //#define H1_FILE_CAT2 "H1Cat2.txt"
12 
13 #define L1_FILE_CAT3 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/HVETO_L1_SEP12OCT20_MERGED.txt"
14 #define H1_FILE_CAT3 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/HVETO_H1_SEP12OCT20_MERGED.txt"
15 
16 //#define L1_FILE_CAT3 "HVETO_L1_SEP12OCT20_MERGED.txt"
17 //#define H1_FILE_CAT3 "HVETO_H1_SEP12OCT20_MERGED.txt"
18 
19 #define L1_FILE_CAT4 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/L1Cat4.txt"
20 #define H1_FILE_CAT4 "/home/vedovato/O1//DQvetos/ER8b_12Sep20Oct_C0101/H1Cat4.txt"
21 
22 //#define L1_FILE_CAT4 "L1Cat4.txt"
23 //#define H1_FILE_CAT4 "H1Cat4.txt"
24 
25 #define LIVE_TIME_FILE "/home/vedovato/O1/ER8b_12Sep20Oct_C0101/ER8b_12Sep20Oct_C0101_BKG_LF_rMRA_run0a/merge/live_ER8b_12Sep20Oct_C0101_BKG_LF_rMRA_run0a.M1.root"
26 
27 #define ZERO_LAG_LIVETIME_JOBS // get live time using only the job segments (600sec)
28 
29 vector<waveSegment> readSegment(TString ifile);
30 
32 
33  TFile *live = TFile::Open(LIVE_TIME_FILE);
34  if(live==NULL) {
35  cout << "CreateSymbolicLinksC01 - Error : File " << LIVE_TIME_FILE << " not exist !!!" << endl;
36  gSystem->Exit(1);
37  }
38 
39  // get list of jobId which belong to C01
40  TTree* tree = (TTree *) gROOT->FindObject("liveTime");
41  if(tree==NULL) {
42  cout << "CheckCAT2 - Error : liveTime tree not found !!!" << endl;
43  gSystem->Exit(1);
44  }
45  tree->Draw("start[0]:stop[0]:start[1]:stop[1]","lag[2]==0 && slag[2]==0","goff");
46  int nseg = (Int_t)tree->GetSelectedRows();
47  cout << "nseg : " << nseg << endl;
48  double* start_l1 = tree->GetV1();
49  double* stop_l1 = tree->GetV2();
50  double* start_h1 = tree->GetV3();
51  double* stop_h1 = tree->GetV4();
52 
53  vector<waveSegment> L1_jobs;
54  int index=0;
56  for(int i=0;i<nseg;i++) {
57  seg.index=index++; seg.start=start_l1[i]; seg.stop=stop_l1[i]; L1_jobs.push_back(seg);
58  }
59  L1_jobs = CWB::Toolbox::sortSegments(L1_jobs);
60  vector<waveSegment> H1_jobs;
61  index=0;
62  for(int i=0;i<nseg;i++) {
63  seg.index=index++; seg.start=start_h1[i]; seg.stop=stop_h1[i]; H1_jobs.push_back(seg);
64  }
65  H1_jobs = CWB::Toolbox::sortSegments(H1_jobs);
66 
67  cout << "L1_jobs : " << L1_jobs.size() << endl;
68  cout << "H1_jobs : " << H1_jobs.size() << endl;
69 
70  double l1_live_time=CWB::Toolbox::getTimeSegList(L1_jobs);
71  cout << "l1_live_time " << (int)l1_live_time << endl;
72  double h1_live_time=CWB::Toolbox::getTimeSegList(H1_jobs);
73  cout << "h1_live_time " << (int)h1_live_time << endl;
74 
75  double l1h1_live_time = l1_live_time;
76 
77  // ---------------------------------------------------------------------
78  // CAT0
79  // ---------------------------------------------------------------------
80  vector<waveSegment> segCat0_L1 = CWB::Toolbox::readSegments(L1_FILE_CAT0);
81  vector<waveSegment> segCat0_H1 = CWB::Toolbox::readSegments(H1_FILE_CAT0);
82 
83  double h1_time_cat0=CWB::Toolbox::getTimeSegList(segCat0_H1);
84  cout << "h1_time_cat0 : " << (int)h1_time_cat0 << endl;
85  double l1_time_cat0=CWB::Toolbox::getTimeSegList(segCat0_L1);
86  cout << "l1_time_cat0 : " << (int)l1_time_cat0 << endl;
87 
88  vector<waveSegment> L1H1_cat0 = CWB::Toolbox::mergeSegLists(segCat0_L1,segCat0_H1);
89  double l1h1_time_cat0=CWB::Toolbox::getTimeSegList(L1H1_cat0);
90  cout << "l1h1_time_cat0 : " << (int)l1h1_time_cat0 << " " << l1h1_time_cat0/(24.*3600.) << endl;
91 
92  // ---------------------------------------------------------------------
93  // CAT1
94  // ---------------------------------------------------------------------
95  vector<waveSegment> segCat1_L1 = CWB::Toolbox::readSegments(L1_FILE_CAT1);
96  vector<waveSegment> segCat1_H1 = CWB::Toolbox::readSegments(H1_FILE_CAT1);
97 
98  double h1_time_cat1=CWB::Toolbox::getTimeSegList(segCat1_H1);
99  cout << "h1_time_cat1 : " << (int)h1_time_cat1 << endl;
100  double l1_time_cat1=CWB::Toolbox::getTimeSegList(segCat1_L1);
101  cout << "l1_time_cat1 : " << (int)l1_time_cat1 << endl;
102 
103  vector<waveSegment> isegCat1_L1 = CWB::Toolbox::invertSegments(segCat1_L1);
104  vector<waveSegment> isegCat1_H1 = CWB::Toolbox::invertSegments(segCat1_H1);
105 
106  vector<waveSegment> H1_cat0_and_cat1 = CWB::Toolbox::mergeSegLists(segCat0_H1,isegCat1_H1);
107  double h1_time_cat0_cat1=CWB::Toolbox::getTimeSegList(H1_cat0_and_cat1);
108  cout << "h1_time_cat0_cat1 : " << (int)h1_time_cat0_cat1 << endl;
109 
110  vector<waveSegment> L1_cat0_and_cat1 = CWB::Toolbox::mergeSegLists(segCat0_L1,isegCat1_L1);
111  double l1_time_cat0_cat1=CWB::Toolbox::getTimeSegList(L1_cat0_and_cat1);
112  cout << "l1_time_cat0_cat1 : " << (int)l1_time_cat0_cat1 << endl;
113 
114  vector<waveSegment> L1H1_cat0_and_cat1 = CWB::Toolbox::mergeSegLists(H1_cat0_and_cat1,L1_cat0_and_cat1);
115  double l1h1_time_cat0_cat1=CWB::Toolbox::getTimeSegList(L1H1_cat0_and_cat1);
116  cout << "l1h1_time_cat0_cat1 : " << (int)l1h1_time_cat0_cat1 << " " << l1h1_time_cat0_cat1/(24.*3600.) << endl;
117 
118  // ---------------------------------------------------------------------
119  // JOBS -> CAT0+CAT1
120  // ---------------------------------------------------------------------
121 
122 #ifndef ZERO_LAG_LIVETIME_JOBS
123  L1_jobs = L1_cat0_and_cat1;
124  H1_jobs = H1_cat0_and_cat1;
125 #endif
126 
127  l1_live_time=CWB::Toolbox::getTimeSegList(L1_jobs);
128  cout << "l1_live_time " << (int)l1_live_time << " " << l1_live_time/(24.*3600.) << " days" << endl;
129  h1_live_time=CWB::Toolbox::getTimeSegList(H1_jobs);
130  cout << "h1_live_time " << (int)h1_live_time << " " << l1_live_time/(24.*3600.) << " days" << endl;
131 
132  vector<waveSegment> L1H1_jobs = CWB::Toolbox::mergeSegLists(H1_jobs,L1_jobs);
133  l1h1_live_time=CWB::Toolbox::getTimeSegList(L1H1_jobs);
134  cout << "----> BEFORE PP DQ : l1h1_live_time : " << (int)l1h1_live_time << " " << l1h1_live_time/(24.*3600.) << " days" << endl;
135 
136  // ---------------------------------------------------------------------
137  // CAT2
138  // ---------------------------------------------------------------------
139  vector<waveSegment> segCat2_L1 = CWB::Toolbox::readSegments(L1_FILE_CAT2);
140  vector<waveSegment> segCat2_H1 = CWB::Toolbox::readSegments(H1_FILE_CAT2);
141 
142  double h1_time_cat2=CWB::Toolbox::getTimeSegList(segCat2_H1);
143  cout << "h1_time_cat2 : " << (int)h1_time_cat2 << endl;
144  double l1_time_cat2=CWB::Toolbox::getTimeSegList(segCat2_L1);
145  cout << "l1_time_cat2 : " << (int)l1_time_cat2 << endl;
146 
147  vector<waveSegment> isegCat2_L1 = CWB::Toolbox::invertSegments(segCat2_L1);
148  vector<waveSegment> isegCat2_H1 = CWB::Toolbox::invertSegments(segCat2_H1);
149 
150  vector<waveSegment> H1_jobs_and_cat2 = CWB::Toolbox::mergeSegLists(H1_jobs,isegCat2_H1);
151  double h1_time_job_cat2=CWB::Toolbox::getTimeSegList(H1_jobs_and_cat2);
152  cout << "h1_time_job_cat2 : " << (int)h1_time_job_cat2
153  << " Vetoed (%) : " << 100*(h1_live_time-h1_time_job_cat2)/h1_live_time << endl;
154 
155  vector<waveSegment> L1_jobs_and_cat2 = CWB::Toolbox::mergeSegLists(L1_jobs,isegCat2_L1);
156  double l1_time_job_cat2=CWB::Toolbox::getTimeSegList(L1_jobs_and_cat2);
157  cout << "l1_time_job_cat2 : " << (int)l1_time_job_cat2
158  << " Vetoed (%) : " << 100*(l1_live_time-l1_time_job_cat2)/l1_live_time << endl;
159 
160  vector<waveSegment> L1H1_jobs_and_cat2 = CWB::Toolbox::mergeSegLists(H1_jobs_and_cat2,L1_jobs_and_cat2);
161  double l1h1_time_job_cat2=CWB::Toolbox::getTimeSegList(L1H1_jobs_and_cat2);
162  cout << "l1h1_time_job_cat2 : " << (int)l1h1_time_job_cat2 << " " << l1h1_time_job_cat2/(24.*3600.) << " days" << endl;
163 
164  cout << "CAT2 vetoed time : " << (int)(l1h1_live_time-l1h1_time_job_cat2) << "/" << (int)l1h1_live_time
165  << " Vetoed (%) : " << 100*(l1h1_live_time-l1h1_time_job_cat2)/l1h1_live_time << endl;
166 
167  // ---------------------------------------------------------------------
168  // CAT3
169  // ---------------------------------------------------------------------
170  vector<waveSegment> segCat3_L1 = CWB::Toolbox::readSegments(L1_FILE_CAT3);
171  vector<waveSegment> segCat3_H1 = CWB::Toolbox::readSegments(H1_FILE_CAT3);
172 
173  double h1_time_cat3=CWB::Toolbox::getTimeSegList(segCat3_H1);
174  cout << "h1_time_cat3 : " << (int)h1_time_cat3 << endl;
175  double l1_time_cat3=CWB::Toolbox::getTimeSegList(segCat3_L1);
176  cout << "l1_time_cat3 : " << (int)l1_time_cat3 << endl;
177 
178  vector<waveSegment> isegCat3_L1 = CWB::Toolbox::invertSegments(segCat3_L1);
179  vector<waveSegment> isegCat3_H1 = CWB::Toolbox::invertSegments(segCat3_H1);
180 
181  vector<waveSegment> H1_jobs_and_cat3 = CWB::Toolbox::mergeSegLists(H1_jobs,isegCat3_H1);
182  double h1_time_job_cat3=CWB::Toolbox::getTimeSegList(H1_jobs_and_cat3);
183  cout << "h1_time_job_cat3 : " << (int)h1_time_job_cat3
184  << " Vetoed (%) : " << 100*(h1_live_time-h1_time_job_cat3)/h1_live_time << endl;
185 
186  vector<waveSegment> L1_jobs_and_cat3 = CWB::Toolbox::mergeSegLists(L1_jobs,isegCat3_L1);
187  double l1_time_job_cat3=CWB::Toolbox::getTimeSegList(L1_jobs_and_cat3);
188  cout << "l1_time_job_cat3 : " << (int)l1_time_job_cat3
189  << " Vetoed (%) : " << 100*(l1_live_time-l1_time_job_cat3)/l1_live_time << endl;
190 
191  vector<waveSegment> L1H1_jobs_and_cat3 = CWB::Toolbox::mergeSegLists(H1_jobs_and_cat3,L1_jobs_and_cat3);
192  double l1h1_time_job_cat3=CWB::Toolbox::getTimeSegList(L1H1_jobs_and_cat3);
193  cout << "l1h1_time_job_cat3 : " << (int)l1h1_time_job_cat3 << " " << l1h1_time_job_cat3/(24.*3600.) << " days" << endl;
194 
195  cout << "CAT3 vetoed time : " << (int)(l1h1_live_time-l1h1_time_job_cat3) << "/" << (int)l1h1_live_time
196  << " Vetoed (%) : " << 100*(l1h1_live_time-l1h1_time_job_cat3)/l1h1_live_time << endl;
197 
198  // ---------------------------------------------------------------------
199  // CAT4
200  // ---------------------------------------------------------------------
201  vector<waveSegment> segCat4_L1 = CWB::Toolbox::readSegments(L1_FILE_CAT4);
202  vector<waveSegment> segCat4_H1 = CWB::Toolbox::readSegments(H1_FILE_CAT4);
203 
204  double h1_time_cat4=CWB::Toolbox::getTimeSegList(segCat4_H1);
205  cout << "h1_time_cat4 : " << (int)h1_time_cat4 << endl;
206  double l1_time_cat4=CWB::Toolbox::getTimeSegList(segCat4_L1);
207  cout << "l1_time_cat4 : " << (int)l1_time_cat4 << endl;
208 
209  vector<waveSegment> isegCat4_L1 = CWB::Toolbox::invertSegments(segCat4_L1);
210  vector<waveSegment> isegCat4_H1 = CWB::Toolbox::invertSegments(segCat4_H1);
211 
212  vector<waveSegment> H1_jobs_and_cat4 = CWB::Toolbox::mergeSegLists(H1_jobs,isegCat4_H1);
213  double h1_time_job_cat4=CWB::Toolbox::getTimeSegList(H1_jobs_and_cat4);
214  cout << "h1_time_job_cat4 : " << (int)h1_time_job_cat4
215  << " Vetoed (%) : " << 100*(h1_live_time-h1_time_job_cat4)/h1_live_time << endl;
216 
217  vector<waveSegment> L1_jobs_and_cat4 = CWB::Toolbox::mergeSegLists(L1_jobs,isegCat4_L1);
218  double l1_time_job_cat4=CWB::Toolbox::getTimeSegList(L1_jobs_and_cat4);
219  cout << "l1_time_job_cat4 : " << (int)l1_time_job_cat4
220  << " Vetoed (%) : " << 100*(l1_live_time-l1_time_job_cat4)/l1_live_time << endl;
221 
222  vector<waveSegment> L1H1_jobs_and_cat4 = CWB::Toolbox::mergeSegLists(H1_jobs_and_cat4,L1_jobs_and_cat4);
223  double l1h1_time_job_cat4=CWB::Toolbox::getTimeSegList(L1H1_jobs_and_cat4);
224  cout << "l1h1_time_job_cat4 : " << (int)l1h1_time_job_cat4 << " " << l1h1_time_job_cat4/(24.*3600.) << " days" << endl;
225 
226  cout << "CAT4 vetoed time : " << (int)(l1h1_live_time-l1h1_time_job_cat4) << "/" << (int)l1h1_live_time
227  << " Vetoed (%) : " << 100*(l1h1_live_time-l1h1_time_job_cat4)/l1h1_live_time << endl;
228 
229  // ---------------------------------------------------------------------
230  // L1 CAT2+CAT3+CAT4
231  // ---------------------------------------------------------------------
232  vector<waveSegment> L1_jobs_and_cat23 = CWB::Toolbox::mergeSegLists(L1_jobs_and_cat2,L1_jobs_and_cat3);
233  vector<waveSegment> L1_jobs_and_cat234 = CWB::Toolbox::mergeSegLists(L1_jobs_and_cat23,L1_jobs_and_cat4);
234  double l1_time_job_cat234=CWB::Toolbox::getTimeSegList(L1_jobs_and_cat234);
235  cout << "l1_time_job_cat234 : " << (int)l1_time_job_cat234 << " " << l1_time_job_cat234/(24.*3600.) << " days" << endl;
236 
237  cout << "L1 CAT234 vetoed time : " << (int)(l1_live_time-l1_time_job_cat234) << "/" << (int)l1_live_time
238  << " Vetoed (%) : " << 100*(l1_live_time-l1_time_job_cat234)/l1_live_time << endl;
239 
240 
241  // ---------------------------------------------------------------------
242  // H1 CAT2+CAT3+CAT4
243  // ---------------------------------------------------------------------
244  vector<waveSegment> H1_jobs_and_cat23 = CWB::Toolbox::mergeSegLists(H1_jobs_and_cat2,H1_jobs_and_cat3);
245  vector<waveSegment> H1_jobs_and_cat234 = CWB::Toolbox::mergeSegLists(H1_jobs_and_cat23,H1_jobs_and_cat4);
246  double h1_time_job_cat234=CWB::Toolbox::getTimeSegList(H1_jobs_and_cat234);
247  cout << "h1_time_job_cat234 : " << (int)h1_time_job_cat234 << " " << h1_time_job_cat234/(24.*3600.) << " days" << endl;
248 
249  cout << "H1 CAT234 vetoed time : " << (int)(h1_live_time-h1_time_job_cat234) << "/" << (int)h1_live_time
250  << " Vetoed (%) : " << 100*(h1_live_time-h1_time_job_cat234)/h1_live_time << endl;
251 
252 
253  // ---------------------------------------------------------------------
254  // L1H1 CAT2+CAT3+CAT4
255  // ---------------------------------------------------------------------
256  vector<waveSegment> L1H1_jobs_and_cat23 = CWB::Toolbox::mergeSegLists(L1H1_jobs_and_cat2,L1H1_jobs_and_cat3);
257  vector<waveSegment> L1H1_jobs_and_cat234 = CWB::Toolbox::mergeSegLists(L1H1_jobs_and_cat23,L1H1_jobs_and_cat4);
258  double l1h1_time_job_cat234=CWB::Toolbox::getTimeSegList(L1H1_jobs_and_cat234);
259  cout << "----> AFTER PP DQ : l1h1_time_job_cat234 : " << (int)l1h1_time_job_cat234 << " " << l1h1_time_job_cat234/(24.*3600.) << " days" << endl;
260 
261  cout << "L1H1 CAT234 vetoed time : " << (int)(l1h1_live_time-l1h1_time_job_cat234) << "/" << (int)l1h1_live_time
262  << " Vetoed (%) : " << 100*(l1h1_live_time-l1h1_time_job_cat234)/l1h1_live_time << endl;
263 
264  exit(0);
265 }
266 
267 vector<waveSegment> readSegment(TString ifile) {
268 
269  // --------------------------------------------------------------
270  // Open file segment list
271  // --------------------------------------------------------------
272  ifstream in;
273  in.open(ifile.Data(),ios::in);
274  if (!in.good()) {cout << "Error Opening File : " << ifile << endl;gSystem->Exit(1);}
275  cout << "input file list : " << ifile << endl;
276 
277  char str[1024];
278  int fpos=0;
279  int index=0;
280  double start;
281  double stop;
283  vector<waveSegment> iseg;
284  while (1) {
285  fpos=in.tellg();
286  in.getline(str,1024);
287  if(str[0] == '#') continue;
288  in.seekg(fpos, ios::beg);
289  fpos=in.tellg();
290 
291  in >> start >> stop;
292  if (!in.good()) break;
293 
294  seg.index=index++; seg.start=start; seg.stop=stop; iseg.push_back(seg);
295  }
296 
297  in.close();
298 
299  return iseg;
300 }
301 
TTree * tree
Definition: TimeSortTree.C:20
double start
Definition: network.hh:37
TString live
vector< waveSegment > readSegment(TString ifile)
void GetLiveTime_ZeroLag_AFTER_PP_DQ()
#define L1_FILE_CAT4
TString("c")
#define L1_FILE_CAT0
#define H1_FILE_CAT3
#define L1_FILE_CAT3
#define H1_FILE_CAT2
#define H1_FILE_CAT1
static double getTimeSegList(vector< waveSegment > list)
Definition: Toolbox.cc:592
i drho i
static vector< waveSegment > invertSegments(vector< waveSegment > &ilist)
Definition: Toolbox.cc:229
#define L1_FILE_CAT2
#define H1_FILE_CAT4
char str[1024]
i() int(T_cor *100))
#define L1_FILE_CAT1
#define LIVE_TIME_FILE
TFile * ifile
waveSegment seg
static vector< waveSegment > sortSegments(vector< waveSegment > &ilist)
Definition: Toolbox.cc:167
int index
Definition: network.hh:36
#define H1_FILE_CAT0
vector< waveSegment > iseg
ifstream in
wavearray< int > index
static vector< waveSegment > readSegments(TString ifile)
Definition: Toolbox.cc:57
static vector< waveSegment > mergeSegLists(vector< waveSegment > &ilist1, vector< waveSegment > &ilist2)
Definition: Toolbox.cc:332
double stop
Definition: network.hh:38
exit(0)