18 int readParameters(TString
fname, wavearray<double>& RHO, wavearray<double>& eRHO, wavearray<double>& FAR, wavearray<double>& eFAR);
20 void PlotFAR(
int nfar, TString far_plot_name,
double rho_min=-1,
double rho_max=-1);
28 Style_t markers[32]= {20,21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,
29 21,22,23,29,29,21,22,20,21,22,23,29,20,21,22,20 };
31 Color_t colors[32] = { 8, 0, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7,
32 6, 3, 2, 8,43, 7, 8, 4, 4, 2,43, 1, 3, 1, 6, 7 };
53 void PlotFAR(
int nfar, TString far_plot_name,
double rho_min,
double rho_max) {
56 gStyle->SetFrameBorderMode(0);
59 gStyle->SetTitleFont(72);
60 gStyle->SetMarkerColor(50);
61 gStyle->SetLineColor(kWhite);
62 gStyle->SetTitleW(0.98);
63 gStyle->SetTitleH(0.05);
64 gStyle->SetTitleY(0.98);
65 gStyle->SetFillColor(kWhite);
66 gStyle->SetLineColor(kWhite);
67 gStyle->SetTitleFont(12,
"D");
69 TCanvas *
canvas =
new TCanvas(
"roc",
"roc", 300,40, 800, 600);
71 canvas->ToggleEventStatus();
75 canvas->SetFillColor(kWhite);
89 cout <<
n <<
" OBS_TIME : " <<
OBS_TIME[
n] << endl;
91 vector<double> rho_far;
95 cout <<
"rate_threshold : " << fname << endl;
96 wavearray<double> RHO;
97 wavearray<double> FAR;
98 wavearray<double> eRHO;
99 wavearray<double> eFAR;
102 if(far_size==0)
continue;
103 if(rmin<RHO[0]) rmin=RHO[0];
104 if(rmax<RHO[far_size-1]) rmax=RHO[far_size-1];
105 sigma_lines[nGR] =
false;
110 gr[nGR++] =
new TGraphErrors(far_size,RHO.data,FAR.data,eRHO.data,eFAR.data);
111 gr[nGR-1]->SetMarkerStyle(20);
113 gr[nGR-1]->SetMarkerSize(0.55);
114 if(n==0) gr[nGR-1]->SetMarkerColor(kBlack);
116 gr[nGR-1]->SetMarkerColor(kRed);
117 gr[nGR-1]->SetMarkerStyle(22);
118 gr[nGR-1]->SetMarkerSize(1.3);
120 if(n==2) gr[nGR-1]->SetMarkerColor(kRed);
121 gr[nGR-1]->SetName(TString::Format(
"gr%d",nGR-1));
124 TMultiGraph* mg =
new TMultiGraph();
127 else sprintf(gTitle,
"FAR Comparison");
129 else sprintf(gTitle,
"FAR vs Rank (fake lag)");
131 mg->SetTitle(gTitle);
132 for(
int n=0;
n<nGR;
n++)
if(gr[
n]!=NULL) mg->Add(gr[
n]);
137 mg->GetHistogram()->GetXaxis()->SetLabelSize(0.03);
138 mg->GetHistogram()->GetYaxis()->SetLabelSize(0.03);
139 mg->GetHistogram()->GetXaxis()->SetTitleSize(0.03);
140 mg->GetHistogram()->GetYaxis()->SetTitleSize(0.03);
141 mg->GetHistogram()->GetXaxis()->SetLabelFont(42);
142 mg->GetHistogram()->GetYaxis()->SetLabelFont(42);
143 mg->GetHistogram()->GetYaxis()->SetLabelOffset(0.01);
144 mg->GetHistogram()->GetYaxis()->SetTitleOffset(1.5);
151 if(rho_min>=0) rmin=rho_min;
152 if(rho_max>=0) rmax=rho_max;
158 mg->GetXaxis()->SetTitle(gr[0]->GetXaxis()->GetTitle());
159 mg->GetXaxis()->SetLabelFont(42);
160 mg->GetYaxis()->SetLabelFont(42);
161 mg->GetXaxis()->SetTitleFont(42);
162 mg->GetYaxis()->SetTitleFont(42);
163 mg->GetXaxis()->SetTitleOffset(1.20);
164 mg->GetYaxis()->SetTitleOffset(1.20);
165 mg->GetXaxis()->SetTitleSize(0.03);
166 mg->GetYaxis()->SetTitleSize(0.03);
167 mg->GetXaxis()->CenterTitle(
true);
168 mg->GetYaxis()->CenterTitle(
true);
169 mg->GetXaxis()->SetTitle(
"Coherent Network SNR ( #rho )");
171 mg->GetYaxis()->SetTitle(
"FAR ( yr^{-1} )");
180 leg =
new TLegend(0.72,0.87,1.0,1.0,NULL,
"brNDC");
182 leg->SetBorderSize(1);
183 leg->SetTextAlign(22);
184 leg->SetTextFont(12);
185 leg->SetLineColor(1);
186 leg->SetLineStyle(1);
187 leg->SetLineWidth(1);
188 leg->SetFillColor(0);
189 leg->SetFillStyle(1001);
190 leg->SetTextSize(0.03);
191 leg->SetLineColor(kBlack);
192 leg->SetFillColor(kWhite);
195 for(
int n=0;n<nGR;n++) {
196 if(n==0)
strcpy(legLabel,
"Background");
197 if(n==1)
strcpy(legLabel,
"Foreground");
198 if(gr[n]!=NULL) TLegendEntry* eleg = leg->AddEntry(gr[n],legLabel,
"lp");
200 leg->SetBorderSize(1);
201 leg->SetTextAlign(22);
202 leg->SetTextFont(12);
203 leg->SetLineColor(1);
204 leg->SetLineStyle(1);
205 leg->SetLineWidth(1);
206 leg->SetFillColor(0);
207 leg->SetFillStyle(1001);
208 leg->SetTextSize(0.05);
209 leg->SetLineColor(kBlack);
213 if(far_plot_name!=
"") {
214 char gfileName[1024];
215 sprintf(gfileName,
"%s.gif",far_plot_name.Data());
216 canvas->Print(gfileName);
217 TString pfileName=gfileName;
218 pfileName.ReplaceAll(
".gif",
".png");
220 sprintf(cmd,
"convert %s %s",gfileName,pfileName.Data());
223 sprintf(cmd,
"rm %s",gfileName);
235 out.open(fname.Data(),ios::out);
236 if (!out.good()) {cout <<
"Error Opening File : " << fname.Data() << endl;
exit(1);}
238 for(
int i=0;i<RHO.size();i++) {
239 out << RHO[i] <<
"\t" << FAR[i] << endl;
247 int readParameters(TString
fname, wavearray<double>& RHO, wavearray<double>& eRHO, wavearray<double>& FAR, wavearray<double>& eFAR) {
249 double year = (24.*3600.*365.);
252 eRHO.resize(1000000);
254 eFAR.resize(1000000);
260 in.open(fname.Data(),ios::in);
261 if (!in.good()) {cout <<
"Error Opening File : " << fname.Data() << endl;
exit(1);}
262 cout << fname.Data() << endl;
264 wavearray<double> rho(1000000);
265 wavearray<double> far(1000000);
268 in >> rho[
m] >> far[
m];
269 if (!in.good())
break;
284 double pifar=far[rho.size()-1];
285 RHO[0] = rho[rho.size()-1];
287 FAR[0] = far[rho.size()-1];
290 for(
int i=rho.size()-2;i>=0;i--) {
306 wavearray<double> xRHO=RHO;
307 wavearray<double>
xFAR=FAR;
308 for(
int i=0;i<RHO.size();i++) {
309 RHO[i]=xRHO[RHO.size()-i-1];
310 FAR[i]=xFAR[FAR.size()-i-1];
313 for(
int i=0;i<RHO.size();i++) {
int writeParameters(TString fname, wavearray< double > &RHO, wavearray< double > &FAR)
int readParameters(TString fname, wavearray< double > &RHO, wavearray< double > &eRHO, wavearray< double > &FAR, wavearray< double > &eFAR)
sprintf(tag,"wave_%s", data_label)
void PlotFAR(int nfar, TString far_plot_name, double rho_min=-1, double rho_max=-1)
void Draw_FARvsRHO(TString ifile_bkg, TString ifile_fgd, TString ofile="")
int LINE_MARKER[nFAR_MAX]
double ZERO_LAG_TIME[nFAR_MAX]
double OBS_TIME[nFAR_MAX]
TString FAR_PATH[nFAR_MAX]
TString FAR_NAME[nFAR_MAX]