62 vector<TString> vfsignal;
63 vector<TString> vfnoise;
64 vector<TString>
vname;
70 gNAME[
n].ReplaceAll(
"*",
" ");
72 vector<float> vsignal;
83 float dthr = vnoise[vnoise.size()-1]/
wSIZE;
90 for(
int j=vsignal.size();
j>=0;
j--)
if(vsignal[
j]>thr) isignal++;
92 for(
int j=vnoise.size();
j>=0;
j--)
if(vnoise[
j]>thr) inoise++;
94 wSIGNAL[
n][
i] = (float)isignal/(
float)vsignal.
size();
95 wNOISE[
n][
i] = (float)inoise/(
float)vnoise.
size();
105 gStyle->SetFrameBorderMode(0);
108 gStyle->SetMarkerColor(50);
109 gStyle->SetLineColor(kWhite);
110 gStyle->SetTitleW(0.98);
111 gStyle->SetTitleH(0.05);
112 gStyle->SetTitleY(0.98);
113 gStyle->SetFillColor(kWhite);
114 gStyle->SetLineColor(kWhite);
115 gStyle->SetTitleFont(12,
"D");
118 TCanvas *
canvas =
new TCanvas(
"ROC",
"ROC", 300, 40, 800, 500);
120 canvas->ToggleEventStatus();
125 canvas->SetFillColor(kWhite);
133 gr[
n] =
new TGraph(
wSIZE,wNOISE[
n].data,wSIGNAL[
n].data);
135 if(wNOISE[
n][
i]<xmin) xmin=wNOISE[
n][
i];
136 if(wNOISE[
n][
i]<xmax) xmax=wNOISE[
n][
i];
137 if(wSIGNAL[
n][
i]<ymin) ymin=wSIGNAL[
n][
i];
138 if(wSIGNAL[
n][
i]<ymax) ymax=wSIGNAL[
n][
i];
143 gr[
n]->SetLineWidth(2);
145 gr[
n]->SetMarkerStyle(20);
146 gr[
n]->SetMarkerSize(0.0);
147 gr[
n]->SetLineColor(
gCOLOR[n]);
148 gr[
n]->SetLineStyle(1);
151 TMultiGraph*
mg =
new TMultiGraph();
154 mg->SetTitle(gTitle);
155 for(
int n=0;
n<
nROC;
n++) mg->Add(gr[
n]);
159 mg->GetHistogram()->GetXaxis()->SetLabelSize(0.04);
160 mg->GetHistogram()->GetYaxis()->SetLabelSize(0.04);
161 mg->GetHistogram()->GetXaxis()->SetTitleSize(0.04);
162 mg->GetHistogram()->GetYaxis()->SetTitleSize(0.04);
163 mg->GetHistogram()->GetXaxis()->SetLabelFont(42);
164 mg->GetHistogram()->GetYaxis()->SetLabelFont(42);
165 mg->GetHistogram()->GetYaxis()->SetLabelOffset(0.01);
166 mg->GetHistogram()->GetYaxis()->SetTitleOffset(1.5);
168 mg->GetHistogram()->GetXaxis()->SetRangeUser(xmin,xmax);
169 mg->GetHistogram()->GetYaxis()->SetRangeUser(ymin,ymax);
171 mg->GetHistogram()->GetYaxis()->SetNdivisions(509);
173 mg->GetXaxis()->SetTitle(gr[0]->
GetXaxis()->GetTitle());
174 mg->GetXaxis()->SetLabelFont(42);
175 mg->GetYaxis()->SetLabelFont(42);
176 mg->GetXaxis()->SetTitleFont(42);
177 mg->GetYaxis()->SetTitleFont(42);
178 mg->GetXaxis()->SetTitleOffset(0.70);
179 mg->GetYaxis()->SetTitleOffset(0.80);
180 mg->GetXaxis()->SetTitleSize(0.06);
181 mg->GetYaxis()->SetTitleSize(0.06);
182 mg->GetXaxis()->SetTitle(
"p-value");
183 mg->GetYaxis()->SetTitle(
"efficiency");
184 mg->GetXaxis()->CenterTitle(
true);
185 mg->GetYaxis()->CenterTitle(
true);
192 double hleg = 0.18+nROC*0.06;
193 leg =
new TLegend(0.4636591,0.1624473,0.8759398,hleg,NULL,
"brNDC");
195 leg->SetBorderSize(1);
196 leg->SetTextAlign(22);
197 leg->SetTextFont(12);
198 leg->SetLineColor(1);
199 leg->SetLineStyle(1);
200 leg->SetLineWidth(1);
201 leg->SetFillColor(0);
202 leg->SetFillStyle(1001);
203 leg->SetTextSize(0.05);
204 leg->SetLineColor(kBlack);
205 leg->SetFillColor(kWhite);
207 for(
int n=0;n<
nROC;n++) {
210 leg->AddEntry(gr[n],legLabel,
"lp");
215 if(ofname!=
"") canvas->Print(ofname);
226 if (!in.good()) {cout <<
"Error Opening File : " << fname.Data() << endl;
exit(1);}
230 if (!in.good())
break;
231 vstat.push_back(stat);
246 if (!in.good()) {cout <<
"Error Opening File : " << fname.Data() << endl;
exit(1);}
249 in >> fsignal >> fnoise >>
name;
250 if (!in.good())
break;
251 if(
TString(fsignal[0])==
"#")
continue;
252 vfsignal.push_back(fsignal);
253 vfnoise.push_back(fnoise);
254 vname.push_back(name);
int readConfig(TString fname, vector< TString > &vfsignal, vector< TString > &vfnoise, vector< TString > &vname)
wavearray< double > wNOISE[nROC_MAX]
void DrawROCxPE(TString ifname, TString ofname="")
void PlotROC(int nroc, TString ofname="")
virtual size_t size() const
wavearray< double > wSIGNAL[nROC_MAX]
cout<<"Number of Entries: "<< num<< endl;double *slag1=new double[slag_entries];slag1=wave.GetV1();double *slag2=new double[slag_entries];slag2=wave.GetV2();char mytitle[256];double SlagMax=wave.GetMaximum("slag")+segLen/2.;double SlagMin=wave.GetMinimum("slag") -segLen/2.;int NSlag=TMath::FloorNint((SlagMax-SlagMin)/segLen);cout<< "SLAG MAX : "<< wave.GetMaximum("slag")<< " s SLAG MIN : "<< wave.GetMinimum("slag")<< " s #SLAGS : "<< NSlag-1<< endl;if(NSlag==1){cout<<"Just one slag....Skipping further execution!"<< endl;exit(0);} sprintf(mytitle,"FAR distribution over slags (post cat3 & rho>%f)", T_cut);TH2F *Slag=new TH2F("SLAG", mytitle, NSlag, SlagMin/86400., SlagMax/86400., NSlag, SlagMin/86400., SlagMax/86400.);Slag-> GetXaxis() -> SetTitle("slag[1] shift [day]")
int readStatistic(TString fname, vector< float > &vstat)
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
virtual void resize(unsigned int)