23 #define APPLY_EXCLUSIVE_LIVETIME_ONLY_TO_ZL
34 TString esegList_path = TString::Format(
"%s/DATA/%s/DATA/%s/OBSTIME/%s/%s",cwb_config_env,
run.Data(),
calibVer.Data(),searchDir_name.Data(),esegList_name.Data());
35 CWB::Toolbox::checkFile(esegList_path);
36 cout << esegList_path << endl;
39 TString ifName = TString::Format(
"merge/live_%s.%s.root",data_label,merge_label.Data());
40 CWB::Toolbox::checkFile(ifName);
41 cout << ifName << endl;
44 TString ofName = TString::Format(
"merge/live_%s.%s.%s.root",data_label,merge_label.Data(),olabel.Data());
45 cout << ofName << endl;
47 vector<waveSegment> esegList = CWB::Toolbox::readSegments(esegList_path);
50 TFile *iroot = TFile::Open(ifName);
51 if(iroot==NULL) {cout <<
"CreateExclusiveLiveTimeFile : input root file not found !!!" << endl;
exit(1);}
53 TTree* itree = (TTree *) gROOT->FindObject(
"liveTime");
54 if(itree==NULL) {cout <<
"CreateExclusiveLiveTimeFile : liveTime tree not found !!!" << endl;
exit(1);}
56 int ientries = (int)itree->GetEntries();
57 cout <<
"livetime entries = " << ientries << endl;
60 itree->SetBranchAddress(
"live", &ilive);
62 double* istart =
new double[NIFO_MAX];
63 itree->SetBranchAddress(
"start", istart);
65 double* istop =
new double[NIFO_MAX];
66 itree->SetBranchAddress(
"stop", istop);
68 float* ilag =
new float[NIFO_MAX+1];
69 itree->SetBranchAddress(
"lag", ilag);
71 float* islag =
new float[NIFO_MAX+1];
72 itree->SetBranchAddress(
"slag", islag);
75 TFile oroot(ofName,
"recreate");
77 TTree *otree = (TTree*)itree->CloneTree(0);
80 otree->SetBranchAddress(
"live", &olive);
83 vector<waveSegment> osegList;
87 for (Int_t i=0;i<ientries;i++) {
88 if(i%100000==0) cout << i <<
" / " << ientries << endl;
91 #ifdef APPLY_EXCLUSIVE_LIVETIME_ONLY_TO_ZL
92 if(ilag[
nIFO]==0 && islag[
nIFO]==0) {
95 SEG.start = istart[0];
98 osegList.push_back(SEG);
99 osegList = CWB::Toolbox::mergeSegLists(esegList,osegList);
100 olive=CWB::Toolbox::getTimeSegList(osegList);
104 #ifdef APPLY_EXCLUSIVE_LIVETIME_ONLY_TO_ZL
116 cout <<
"ilivetime zero lag : " << ilive_time <<
" sec\t" << ilive_time/(24*3600.) <<
" days" << endl;
117 cout <<
"olivetime zero lag : " << olive_time <<
" sec\t" << olive_time/(24*3600.) <<
" days" << endl;
void CreateExclusiveLiveTimeFile(TString merge_label, TString searchDir_name, TString esegList_name, TString run, TString olabel)