5 #include "../../MACROS/ReadChunkList.C"
9 #define CHUNK_FILE_LIST "Chunk_List.txt"
10 #define CHUNK_MAX_SIZE 100
15 void shuffle(std::vector<int>& vector,
int seed=150914);
22 char cwb_config_env[1024] =
"";
23 if(gSystem->Getenv(
"CWB_CONFIG")!=NULL) {
24 strcpy(cwb_config_env,TString(gSystem->Getenv(
"CWB_CONFIG")).Data());
28 TString o3_gps_start_cxx = TString::Format(
"O3_GPS_START_%s",
calibVer.Data());
30 if(gSystem->Getenv(o3_gps_start_cxx.Data())!=NULL) {
31 gps_start=TString(gSystem->Getenv(o3_gps_start_cxx.Data())).Atof();
33 cout <<
"Error: O3_GPS_START_CXX env not defined" << endl;
exit(1);
35 TString o3_gps_stop_cxx = TString::Format(
"O3_GPS_STOP_%s",
calibVer.Data());
37 if(gSystem->Getenv(o3_gps_stop_cxx.Data())!=NULL) {
38 gps_stop=TString(gSystem->Getenv(o3_gps_stop_cxx.Data())).Atof();
40 cout <<
"Error: O3_GPS_STOP_CXX env not defined" << endl;
exit(1);
43 char chunk_file_list[1024];
45 cout << chunk_file_list << endl;
51 int nChunks =
ReadChunkList(chunk_file_list,chunk,start,stop);
56 char ifo[NIFO_MAX][8];
66 size_t* slagSite = NULL;
77 {
"L1" ,
"", CWB_CAT0, 0.,
false,
false},
78 {
"H1" ,
"", CWB_CAT0, 0.,
false,
false},
79 {
"V1" ,
"", CWB_CAT0, 0.,
false,
false},
81 {
"L1" ,
"", CWB_CAT1, 0.,
true,
false},
82 {
"H1" ,
"", CWB_CAT1, 0.,
true,
false},
83 {
"V1" ,
"", CWB_CAT1, 0.,
true,
false},
85 {
"L1" ,
"", CWB_CAT2, 0.,
true,
false},
86 {
"H1" ,
"", CWB_CAT2, 0.,
true,
false},
87 {
"V1" ,
"", CWB_CAT2, 0.,
true,
false},
89 {
"L1" ,
"", CWB_CAT1, 0.,
true,
false},
90 {
"H1" ,
"", CWB_CAT1, 0.,
true,
false},
91 {
"V1" ,
"", CWB_CAT1, 0.,
true,
false},
93 {
"L1" ,
"", CWB_CAT0, 0.,
false,
false},
94 {
"H1" ,
"", CWB_CAT0, 0.,
false,
false},
95 {
"V1" ,
"", CWB_CAT0, 0.,
false,
false}
99 sprintf(DQF[0].file,
"%s/O3/DATA/%s/DQ/%s/L1_cat0.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
100 sprintf(DQF[1].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat0.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
101 sprintf(DQF[2].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat0.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
103 sprintf(DQF[3].file,
"%s/O3/DATA/%s/DQ/%s/L1_cat1.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
104 sprintf(DQF[4].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat1.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
105 sprintf(DQF[5].file,
"%s/O3/DATA/%s/DQ/%s/V1_cat1.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
107 sprintf(DQF[6].file,
"%s/O3/DATA/%s/DQ/%s/L1_cat2.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
108 sprintf(DQF[7].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat2.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
109 sprintf(DQF[8].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat2.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
111 sprintf(DQF[9].file,
"%s/O3/DATA/%s/DQ/%s/L1_cat4.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
112 sprintf(DQF[10].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat4.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
113 sprintf(DQF[11].file,
"%s/O3/DATA/%s/DQ/%s/H1_cat4.txt",cwb_config_env,
calibVer.Data(),calibType.Data());
118 sprintf(ofile,
"%s/%s/slagSizeMax.lst",slags_dir.Data(),calibType.Data());
120 sprintf(ofile,
"%s/%s/slagSizeMax.lst",slags_dir.Data(),
search.Data());
122 cout << ofile << endl;
125 if (!out.good()) {cout <<
"Error Opening File : " << ofile << endl;
exit(1);}
126 out <<
"# chunk slagSize" << endl << endl;
130 sprintf(ofile2,
"%s/%s/liveTimes.lst",slags_dir.Data(),calibType.Data());
132 sprintf(ofile2,
"%s/%s/liveTimes.lst",slags_dir.Data(),
search.Data());
134 cout << ofile2 << endl;
137 if (!out2.good()) {cout <<
"Error Opening File : " << ofile2 << endl;
exit(1);}
138 out2 <<
"# chunk liveTime_cat0\tliveTime_cat1\tliveTime_cat2" << endl << endl;
141 sprintf(sout2,
"%s %*s %*s %*s %*s %*s %*s",
142 "# chunk", 22,
"liveTime_cat0(sec)", 22,
"liveTime_cat0(days)",
143 22,
"liveTime_cat1(sec)", 22,
"liveTime_cat1(days)",
144 22,
"liveTime_cat2(sec)", 22,
"liveTime_cat2(days)");
145 out2 << sout2 << endl;
147 cout <<
"# chunk slagSize" << endl << endl;
149 for(
int k=0;k<nChunks;k++) {
151 if(stop[k]<=gps_start || start[k]>=gps_stop || stop[k]>gps_stop)
continue;
153 sprintf(DQF[12].file,
"%s/O3/CHUNKS/%s/K%02d.period",cwb_config_env,
search.Data(),chunk[k]);
154 sprintf(DQF[13].file,
"%s/O3/CHUNKS/%s/K%02d.period",cwb_config_env,
search.Data(),chunk[k]);
155 sprintf(DQF[14].file,
"%s/O3/CHUNKS/%s/K%02d.period",cwb_config_env,
search.Data(),chunk[k]);
157 vector<waveSegment> cat0List=TB.readSegList(
nDQF, DQF, CWB_CAT0);
158 double live_time_cat0 = CWB::Toolbox::getTimeSegList(cat0List);
159 cout << endl <<
"live_time_cat0 : " << (int)live_time_cat0 <<
" (sec) - " << live_time_cat0/(24.*3600.) <<
" (days)" << endl;
161 vector<waveSegment> cat1List=TB.readSegList(
nDQF, DQF, CWB_CAT1);
162 double live_time_cat1 = CWB::Toolbox::getTimeSegList(cat1List);
163 cout << endl <<
"live_time_cat1 : " << (int)live_time_cat1 <<
" (sec) - " << live_time_cat1/(24.*3600.) <<
" (days)" << endl;
165 vector<waveSegment> cat2List=TB.readSegList(
nDQF, DQF, CWB_CAT2);
166 double live_time_cat2 = CWB::Toolbox::getTimeSegList(cat2List);
167 cout << endl <<
"live_time_cat2 : " << (int)live_time_cat2 <<
" (sec) - " << live_time_cat2/(24.*3600.) <<
" (days)" << endl << endl;
170 sprintf(sout2,
"K%02d %*d %*.2f %*d %*.2f %*d %*.2f",
171 chunk[k], 22, (
int)live_time_cat0, 22, (live_time_cat0/(24.*3600.)),
172 22, (
int)live_time_cat1, 22, (live_time_cat1/(24.*3600.)),
173 22, (
int)live_time_cat2, 22, (live_time_cat2/(24.*3600.)));
174 out2 << sout2 << endl;
179 char string[64];
sprintf(
string,
"K%02d\t%d",chunk[k],2*
slagMax+1);
180 cout <<
"slagSize = \t" <<
string << endl;
189 out <<
string << endl;
204 std::vector<int> RND_A(2*
slagMax);
205 std::vector<int> RND_B(2*
slagMax);
224 if(RND_A[
n]==A) nA++;
225 if(RND_A[
n]==
B) nB++;
228 cout <<
"ERROR !!!" << endl;
240 if(RND_B[
n]==A) nA++;
241 if(RND_B[
n]==
B) nB++;
244 cout <<
"ERROR !!!" << endl;
253 sprintf(ofile,
"%s/%s/K%02d.slags",slags_dir.Data(),
search,chunkID);
254 cout << endl << ofile << endl << endl;
259 if (!out.good()) {cout <<
"Error Opening File : " << ofile << endl;
exit(1);}
260 out << 0 <<
"\t" << 0 <<
"\t" << 0 <<
"\t" << 0 << endl;
262 out <<
n+1 <<
"\t" << 0 <<
"\t" << RND_A[
n] <<
"\t" << RND_B[
n] << endl;
274 size_t size = vector.size();
278 for(
size_t i=0; i<
size; i++) {
279 size_t j = int(rnd3.Uniform(0,
size));
281 vector[j] = vector[i];
void Create_O3_LHV_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, char *search)
void shuffle(std::vector< int > &vector, int seed=150914)
int ReadChunkList(TString ifile, int *chunk=NULL, double *start=NULL, double *stop=NULL)
sprintf(tag,"wave_%s", data_label)