5 #include "../../MACROS/ReadChunkList.C"
9 #define CHUNK_FILE_LIST "Chunk_List.txt"
10 #define CHUNK_MAX_SIZE 100
41 void shuffle(std::vector<int>& vector,
int seed=150914);
48 char cwb_config_env[1024] =
"";
49 if(gSystem->Getenv(
"CWB_CONFIG")!=NULL) {
50 strcpy(cwb_config_env,TString(gSystem->Getenv(
"CWB_CONFIG")).Data());
54 TString o3_gps_start_cxx = TString::Format(
"O3_GPS_START_%s",
calibVer.Data());
56 if(gSystem->Getenv(o3_gps_start_cxx.Data())!=NULL) {
57 gps_start=TString(gSystem->Getenv(o3_gps_start_cxx.Data())).Atof();
59 cout <<
"Error: O3_GPS_START_CXX env not defined" << endl;
exit(1);
61 TString o3_gps_stop_cxx = TString::Format(
"O3_GPS_STOP_%s",
calibVer.Data());
63 if(gSystem->Getenv(o3_gps_stop_cxx.Data())!=NULL) {
64 gps_stop=TString(gSystem->Getenv(o3_gps_stop_cxx.Data())).Atof();
66 cout <<
"Error: O3_GPS_STOP_CXX env not defined" << endl;
exit(1);
69 char chunk_file_list[1024];
71 cout << chunk_file_list << endl;
77 int nChunks =
ReadChunkList(chunk_file_list,chunk,start,stop);
82 char ifo[NIFO_MAX][8];
91 size_t* slagSite = NULL;
102 {
"H1" ,
"", CWB_CAT0, 0.,
false,
false},
103 {
"V1" ,
"", CWB_CAT0, 0.,
false,
false},
105 {
"H1" ,
"", CWB_CAT1, 0.,
true,
false},
106 {
"V1" ,
"", CWB_CAT1, 0.,
true,
false},
108 {
"H1" ,
"", CWB_CAT2, 0.,
true,
false},
109 {
"V1" ,
"", CWB_CAT2, 0.,
true,
false},
111 {
"H1" ,
"", CWB_CAT1, 0.,
true,
false},
112 {
"V1" ,
"", CWB_CAT1, 0.,
true,
false},
114 {
"H1" ,
"", CWB_CAT0, 0.,
false,
false},
115 {
"V1" ,
"", CWB_CAT0, 0.,
false,
false}
119 sprintf(DQF[0].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat0.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
120 sprintf(DQF[1].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat0.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
122 sprintf(DQF[2].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat1.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
123 sprintf(DQF[3].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat1.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
125 sprintf(DQF[4].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat2.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
126 sprintf(DQF[5].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat2.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
128 sprintf(DQF[6].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat4.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
129 sprintf(DQF[7].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat4.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
134 sprintf(ofile,
"%s/%s/slagSizeMax.lst",slags_dir.Data(),calibType.Data());
136 sprintf(ofile,
"%s/%s/slagSizeMax.lst",slags_dir.Data(),
search.Data());
138 cout << ofile << endl;
141 if (!out.good()) {cout <<
"Error Opening File : " << ofile << endl;
exit(1);}
142 out <<
"# chunk slagSize" << endl << endl;
146 sprintf(ofile2,
"%s/%s/liveTimes.lst",slags_dir.Data(),calibType.Data());
148 sprintf(ofile2,
"%s/%s/liveTimes.lst",slags_dir.Data(),
search.Data());
150 cout << ofile2 << endl;
153 if (!out2.good()) {cout <<
"Error Opening File : " << ofile2 << endl;
exit(1);}
154 out2 <<
"# chunk liveTime_cat0\tliveTime_cat1\tliveTime_cat2" << endl << endl;
157 sprintf(sout2,
"%s %*s %*s %*s %*s %*s %*s",
158 "# chunk", 22,
"liveTime_cat0(sec)", 22,
"liveTime_cat0(days)",
159 22,
"liveTime_cat1(sec)", 22,
"liveTime_cat1(days)",
160 22,
"liveTime_cat2(sec)", 22,
"liveTime_cat2(days)");
161 out2 << sout2 << endl;
163 cout <<
"# chunk slagSize" << endl << endl;
165 for(
int k=0;k<nChunks;k++) {
167 if(stop[k]<=gps_start || start[k]>=gps_stop || stop[k]>gps_stop)
continue;
169 sprintf(DQF[8].file,
"%s/O3/CHUNKS/%s/K%02d.period",cwb_config_env,
search.Data(),chunk[k]);
170 sprintf(DQF[9].file,
"%s/O3/CHUNKS/%s/K%02d.period",cwb_config_env,
search.Data(),chunk[k]);
172 vector<waveSegment> cat0List=TB.readSegList(
nDQF, DQF, CWB_CAT0);
173 double live_time_cat0 = CWB::Toolbox::getTimeSegList(cat0List);
174 cout << endl <<
"live_time_cat0 : " << (int)live_time_cat0 <<
" (sec) - " << live_time_cat0/(24.*3600.) <<
" (days)" << endl;
176 vector<waveSegment> cat1List=TB.readSegList(
nDQF, DQF, CWB_CAT1);
177 double live_time_cat1 = CWB::Toolbox::getTimeSegList(cat1List);
178 cout << endl <<
"live_time_cat1 : " << (int)live_time_cat1 <<
" (sec) - " << live_time_cat1/(24.*3600.) <<
" (days)" << endl;
180 vector<waveSegment> cat2List=TB.readSegList(
nDQF, DQF, CWB_CAT2);
181 double live_time_cat2 = CWB::Toolbox::getTimeSegList(cat2List);
182 cout << endl <<
"live_time_cat2 : " << (int)live_time_cat2 <<
" (sec) - " << live_time_cat2/(24.*3600.) <<
" (days)" << endl << endl;
185 sprintf(sout2,
"K%02d %*d %*.2f %*d %*.2f %*d %*.2f",
186 chunk[k], 22, (
int)live_time_cat0, 22, (live_time_cat0/(24.*3600.)),
187 22, (
int)live_time_cat1, 22, (live_time_cat1/(24.*3600.)),
188 22, (
int)live_time_cat2, 22, (live_time_cat2/(24.*3600.)));
189 out2 << sout2 << endl;
198 char string[64];
sprintf(
string,
"K%02d\t%d",chunk[k],slagSizeMax);
199 cout <<
"slagSize = \t" <<
string << endl;
208 out <<
string << endl;
228 std::vector<int> RND(2*
slagMax);
247 cout <<
"ERROR !!!" << endl;
255 sprintf(ofile,
"%s/%s/K%02d.slags",slags_dir.Data(),
search.Data(),chunkID);
256 cout << endl << ofile << endl << endl;
261 if (!out.good()) {cout <<
"Error Opening File : " << ofile << endl;
exit(1);}
262 out << 0 <<
"\t" << 0 <<
"\t" << 0 << endl;
265 if(abs(RND[
n])<=slagMax_HV) out <<
n+1 <<
"\t" << 0 <<
"\t" << RND[
n] << endl;
267 out <<
n+1 <<
"\t" << 0 <<
"\t" << RND[
n] << endl;
280 size_t size = vector.size();
284 for(
size_t i=0; i<
size; i++) {
285 size_t j = int(rnd3.Uniform(0,
size));
287 vector[j] = vector[i];
void Create_O3_HV_ChunkSlagRndFiles(TString slags_dir, TString calibVer, TString calibType, TString search="")
void Create_SlagRndFile(TString slags_dir, int chunkID, int slagMax, char *cwb_config_env, char *calibVer, TString search)
void shuffle(std::vector< int > &vector, int seed=150914)
int BBH_IMBHB_SLAG_SIZE_MAX_LH[20]
int ReadChunkList(TString ifile, int *chunk=NULL, double *start=NULL, double *stop=NULL)
sprintf(tag,"wave_%s", data_label)