21 #pragma GCC system_header 28 #include "TObjArray.h" 29 #include "TObjString.h" 30 #include "TPaletteAxis.h" 31 #include "TMultiLayerPerceptron.h" 32 #include "TMLPAnalyzer.h" 61 sprintf(NNi2,
"%s",NN_FILE.Data());
66 if((NNi2[p+1]==
'N')&&(NNi2[p+2]==
'\/')) {
69 while (NNi2[hh]!=
'\0'){NNi[hh-p-3]=NNi2[
hh];hh=hh+1;}
80 sprintf(Filei2,
"%s",TEST_FILE.Data());
83 if(Filei2[q]==
'n'&&Filei2[q+1]==
'n'&&Filei2[q+2]==
'T'&&Filei2[q+3]==
'R'&&Filei2[q+4]==
'E'&&(Filei2[q+5]==
'E')&&(Filei2[q+6]==
'\/')) {
86 while (Filei2[hh]!=
'\0') {Filei[hh-p-7]=Filei2[
hh];hh=hh+1;
89 for (
int h0=hh-p-7;h0<1024;h0++) Filei[h0]=
'\0';
95 cout<<NNi<<
" original String: "<<NNi2<<endl;
96 cout<<Filei<<
" original String: "<<Filei2<<endl;
101 NNi0.ReplaceAll(
".root",
"");
102 Filei0.ReplaceAll(
".root",
"");
105 TFile* fnet =TFile::Open(NN_FILE.Data());
106 TMultiLayerPerceptron *mlp = (TMultiLayerPerceptron*)fnet->Get(
"TMultiLayerPerceptron");
107 if(mlp==NULL) {cout <<
"Error getting mlp" << endl;
exit(1);}
108 TTree* infot=(TTree*)fnet->Get(
"info");
113 infot->SetBranchAddress(
"Rand_start_Sig",&NNs);
114 infot->SetBranchAddress(
"Rand_start_Bg",&NNb);
115 infot->SetBranchAddress(
"#trainSig",&NNnTS);
116 infot->SetBranchAddress(
"#trainBg",&NNnTB);
119 TFile* fTEST =TFile::Open(TEST_FILE.Data());
120 TTree* NNTree=(TTree*)fTEST->Get(
"nnTree");
121 int entries=NNTree->GetEntries();
122 cout<<
"entries: "<<entries<<endl;
132 NNTree->SetBranchAddress(
"#Entries_type",&entriesTot);
133 NNTree->SetBranchAddress(
"Matrix_dim",&ndim);
134 NNTree->SetBranchAddress(
"#inputs",&ninp);
135 NNTree->SetBranchAddress(
"amplitude_mode",&y);
138 sig_entries=entriesTot;
139 NNTree->GetEntry(entries-1);
140 bg_entries=entriesTot;
145 cout<<
"NDIM "<<NDIM<<endl;
146 cout<<
"nINP"<<nINP<<endl;
147 cout<<
"sig e "<<sig_entries<<endl;
148 cout<<
"bg e "<<bg_entries<<endl;
150 if (sig_entries>bg_entries) minevents=bg_entries;
151 else minevents=sig_entries;
153 if(b==0) b=sig_entries;
159 cout<<
"Error: Bg index<sig_entries"<<endl;
162 if((TS>sig_entries||
TB>bg_entries)&&(TS==
TB)) {TS=minevents-
s;
TB=minevents-b+sig_entries;}
163 if((TS>sig_entries||
TB>bg_entries)&&(TS!=
TB)) {TS=sig_entries-
s;
TB=bg_entries-b+sig_entries;}
169 sprintf(NOMEtot,
"NN_%s_FILE_%s_TS%i_TB%i_st%i_bt%i_uf%i_dMc%i",NNi0.Data(),Filei0.Data(),TS,
TB,
s,b,uf,
deltaMc);
170 cout<<
"nome: "<<NOMEtot<<endl;
175 NNTree->SetBranchAddress(
"Files_name",&FILE_NAME);
178 NNTree->GetEntry(entries-1);
180 cout<<
"fine ifdef RHO_CC"<<endl;
182 TChain sigTree(
"waveburst");
183 sigTree.Add(SIG_FILE.Data());
186 cout <<
"sig entries2 : " << sig_entries2 << endl;
188 TChain bgTree(
"waveburst");
189 bgTree.Add(BG_FILE.Data());
192 cout <<
"bg entries2 : " << bg_entries2 << endl;
194 cout<<
"b: "<<b<<endl;
195 cout<<
"s: "<<s<<endl;
199 for (
int jj=0; jj<nINP;jj++) x[jj]=0.;
200 char ilabel[nINP][16];
203 for(
int i=0;
i<nINP;
i++) {
205 NNTree->SetBranchAddress(ilabel[i], &x[i]);
209 sprintf(ofile,
"outfile_Mc/%s.root",NOMEtot);
211 TFile*
f=
new TFile(ofile,
"RECREATE");
212 TTree* NNTree2=
new TTree(
"Parameters",
"Parameters");
213 NNTree2->SetDirectory(f);
218 NNTree2->Branch(
"Mchirp",&Mc,
"Mchirp/D");
219 NNTree2->Branch(
"ANNout",&out,
"ANNout/D");
220 NNTree2->Branch(
"cc",&NNcc,
"cc/D");
221 NNTree2->Branch(
"rho",&NNrho,
"rho/D");
222 char NNfilename[1024];
223 NNTree2->Branch(
"NNname",&NNfilename,
"NNname/C");
224 sprintf(NNfilename,
"%s",NN_FILE.Data());
226 NNTree2->Branch(
"TestFile",&Testf,
"TestFile/C");
227 sprintf(Testf,
"%s",TEST_FILE.Data());
229 NNTree2->Branch(
"#TestSig",&nTestS,
"#TestSig/I");
231 cout<<
"nTestS: "<<nTestS<<
" TS: "<<TS<<endl;
232 cout<<
"dopo def tree"<<endl;
248 for(
int n=s;
n<s+TS;
n++) {
249 if (uf!=0&&
n>=NNs&&
n<=(NNs+NNnTS))
continue;
257 for (
int i=0;
i<nINP;
i++) params[
i]=0.;
261 for(
int n=s;
n<s+TS;
n++) {
263 if (uf!=0&&
n>=NNs&&
n<=(NNs+NNnTS))
continue;
266 NNcc=(double)signal.
netcc[1];
267 NNrho=(
double)signal.
rho[0];
269 for (
int i=0;
i<nINP;
i++){
273 double output=mlp->Evaluate(0,params);
275 if (out<0.6) sig_05=sig_05+1;
276 cout<<
"rho: "<<signal.
rho[0]<<
" cc "<<signal.
netcc[1]<<
" Mc: "<<Mc<<endl;
280 entSig1=NNTree2->GetEntries();
282 cout<<
"riempito sig"<<endl;
283 cout<<
"NNb"<<NNb<<endl;
287 for(
int n=b;
n<b+
TB;
n++) {
288 if (uf!=0&&
n>=NNb&&
n<=(NNb+NNnTB))
continue;
290 cout<<
"n: "<<
n<<
"Bg index"<<(
n-sig_entries)<<endl;
292 NNcc=(double)background.
netcc[1];
293 NNrho=(
double)background.
rho[0];
295 for (
int i=0;
i<nINP;
i++){
300 double output=mlp->Evaluate(0,params);
302 if(out>0.6) bg_05=bg_05+1;
303 cout<<
"rho: "<<background.
rho[0]<<
" cc "<<background.
netcc[1]<<
" Mc: "<<Mc<<endl;
306 cout<<
"riempito bg"<<endl;
308 Realentries=NNTree2->GetEntries();
311 cout<<
"chiuso file"<<endl;
315 cout<<
"dopo richiamo funzione"<<endl;
320 cout<<
" Realentries "<<Realentries<<
" entSig: "<<entSig1<<endl;
326 name.ReplaceAll(
"outfile_Mc/",
"");
327 TFile* fTEST =TFile::Open(ifile.Data());
328 TTree* NNTree2=(TTree*)fTEST->Get(
"Parameters");
334 NNTree2->SetBranchAddress(
"Mchirp",&Mc);
335 NNTree2->SetBranchAddress(
"ANNout",&out);
336 NNTree2->SetBranchAddress(
"cc",&cc);
337 NNTree2->SetBranchAddress(
"rho",&rho);
338 NNTree2->SetBranchAddress(
"#TestSig",&nSi);
339 NNTree2->GetEntry(0);
341 cout<<
"nSig: "<<nSig<<
" nSi: "<<nSi<<endl;
343 cout<<
"dentro funzione dopodef"<<endl;
345 double* rhoSig[ncurve];
346 for (
int i=0;
i<ncurve;
i++) rhoSig[
i]=
new double[nSig];
347 cout<<
"dopo def rhoSig"<<endl;
351 int const nBg=NNTree2->GetEntries()-nSig;
352 for (
int i=0;
i<ncurve;
i++) {
354 for (
int j=0;
j<nSig;
j++) rhoSig[
i][
j]=0.;
356 cout<<
"dopo def rhoSig"<<endl;
357 double* rhoBg[ncurve];
358 for (
int i=0;
i<ncurve;
i++) rhoBg[
i]=
new double[nBg];
362 for (
int i=0;
i<ncurve;
i++) {
364 for (
int j=0;
j<nBg;
j++) rhoBg[
i][
j]=0.;
366 cout<<
"dopo def rhoBg"<<endl;
368 for (
int i=0;
i<
nCC;
i++) ccTh[
i]=0.;
370 for (
int i=0;
i<
nANN;
i++) NNTh[
i]=0.;
376 cout<<NNTree2->GetEntries()<<endl;
377 for(
int n=0;
n<NNTree2->GetEntries();
n++){
379 NNTree2->GetEntry(
n);
380 cout<<
"rho "<<rho<<
" cc "<<cc<<
" out "<<out<<endl;
383 if(cc<ccTh[
i])
continue;
385 if(
j==0) NNTh[
j]=-100000000.;
392 if(Mc<NNTh[
j])
continue;
395 NBg[i*nANN+
j]= NBg[i*nANN+
j]+1;
396 while(rhoBg[i*nANN+j][ni]!=0)ni=ni+1;
397 rhoBg[i*nANN+
j][ni]=
rho;
402 NSig[i*nANN+
j]= NSig[i*nANN+
j]+1;
403 while(rhoSig[i*nANN+j][ni]!=0)ni=ni+1;
404 rhoSig[i*nANN+
j][ni]=
rho;
412 cout<<
"dopo riempimento variabili"<<endl;
414 for (
int i=0;
i<ncurve;
i++) indexS[
i]=
new int[nSig];
416 for (
int y=0;
y<ncurve;
y++) {
429 TMath::Sort(nSig,rhoSig[
y],indexS[y],
false);
431 for (
int k=0;
k<nSig;
k++) {
436 int ij=indexS[
y][
k-1];
438 if(rhoSig[y][ii]!=0) {
441 if(rhoSig[y][ii]!=rhoSig[y][ij]) gS[
y]->SetPoint(igS_p++,rhoSig[y][ii],yy);
442 cout<<
"igS"<<igS<<
" x "<<rhoSig[
y][ii]<<
" y: "<<yy<<endl;
447 if(rhoSig[y][ii]!=0){
449 gS[
y]->SetPoint(0,rhoSig[y][ii],yy);
460 for (
int i=0;
i<ncurve;
i++) indexB[
i]=
new int[nBg];
463 for (
int y=0;
y<ncurve;
y++) {
467 TMath::Sort(nBg,rhoBg[
y],indexB[y],
false);
469 for (
int k=0;
k<nBg;
k++) {
473 int ij=indexB[
y][
k-1];
475 if(rhoBg[y][ii]!=0) {
478 if(rhoBg[y][ii]!=rhoBg[y][ij]) gB[
y]->SetPoint(igB_p++,rhoBg[y][ii],yy);
484 if(rhoBg[y][ii]!=0) {
486 gB[
y]->SetPoint(0,rhoBg[y][ii],yy);
493 cout<<
"dopo inserimento puntiB"<<endl;
496 TCanvas* cS=
new TCanvas(
"Efficiency_vs_rho",
"Efficiency_vs_rho",0,0,1200,700);
498 cS->cd(1)->SetLogy();
499 TMultiGraph* mg1=
new TMultiGraph();
501 gS[0]->SetMarkerColor(2);
502 gS[0]->SetLineColor(2);
503 mg1->SetTitle(
"cc=0.5;rho;#Events");
504 if(gS[0]->GetN()!=0) mg1->Add(gS[0]);
507 gS[
h]->SetMarkerColor(3);
508 gS[
h]->SetLineColor(3);
510 if(gS[
h]->GetN()!=0) mg1->Add(gS[
h]);
514 cS->cd(2)->SetLogy();
515 TMultiGraph* mg2=
new TMultiGraph();
517 gS[
nANN]->SetMarkerColor(2);
518 gS[
nANN]->SetLineColor(2);
519 mg2->SetTitle(
"cc=0.55;rho;#Events");
520 if(gS[nANN]->GetN()!=0) mg2->Add(gS[nANN]);
522 gS[nANN+
h]->SetMarkerColor(3);
523 gS[nANN+
h]->SetLineColor(3);
525 if(gS[nANN+
h]->GetN()!=0) mg2->Add(gS[nANN+
h]);
529 cS->cd(3)->SetLogy();
530 TMultiGraph* mg3=
new TMultiGraph();
532 gS[nANN*2]->SetMarkerColor(2);
533 gS[nANN*2]->SetLineColor(2);
534 mg3->SetTitle(
"cc=0.6;rho;#Events");
535 if(gS[nANN*2]->GetN()!=0) mg3->Add(gS[nANN*2]);
537 gS[2*nANN+
h]->SetMarkerColor(3);
538 gS[2*nANN+
h]->SetLineColor(3);
540 if(gS[2*nANN+
h]->GetN()!=0) mg3->Add(gS[2*nANN+
h]);
544 cS->cd(4)->SetLogy();
545 TMultiGraph* mg4=
new TMultiGraph();
547 gS[nANN*3]->SetMarkerColor(2);
548 gS[nANN*3]->SetLineColor(2);
549 mg4->SetTitle(
"cc=0.65;rho;#Events");
550 if(gS[nANN*3]->GetN()!=0) mg4->Add(gS[nANN*3]);
553 gS[3*nANN+
h]->SetMarkerColor(3);
554 gS[3*nANN+
h]->SetLineColor(3);
556 if(gS[3*nANN+
h]->GetN()!=0) mg4->Add(gS[3*nANN+
h]);
560 cout<<
"nuovo canv"<<endl;
561 TCanvas* cB=
new TCanvas(
"Number_vs_rho",
"Number_vs_rho",0,0,1200,700);
563 cB->cd(1)->SetLogy();
564 TMultiGraph* mg1B=
new TMultiGraph();
566 gB[0]->SetMarkerColor(2);
567 gB[0]->SetLineColor(2);
568 cout<<
"ci sono"<<endl;
569 mg1B->SetTitle(
"cc=0.5;rho;#Events");
570 if(gB[0]->GetN()!=0) mg1B->Add(gB[0]);
572 gB[
h]->SetMarkerColor(3);
573 gB[
h]->SetLineColor(3);
575 if(gB[
h]->GetN()!=0) mg1B->Add(gB[
h]);
579 cB->cd(2)->SetLogy();
580 TMultiGraph* mg2B=
new TMultiGraph();
582 gB[
nANN]->SetMarkerColor(2);
583 gB[
nANN]->SetLineColor(2);
584 mg2B->SetTitle(
"cc=0.55;rho;#Events");
585 if(gB[nANN]->GetN()!=0) mg2B->Add(gB[nANN]);
587 gB[nANN+
h]->SetMarkerColor(3);
588 gB[nANN+
h]->SetLineColor(3);
590 if(gB[nANN+
h]->GetN()!=0) mg2B->Add(gB[nANN+
h]);
594 cB->cd(3)->SetLogy();
595 TMultiGraph* mg3B=
new TMultiGraph();
597 gB[2*
nANN]->SetMarkerColor(2);
598 gB[2*
nANN]->SetLineColor(2);
599 mg3B->SetTitle(
"cc=0.6;rho;#Events");
600 if(gB[2*nANN]->GetN()!=0) mg3B->Add(gB[2*nANN]);
602 gB[2*nANN+
h]->SetMarkerColor(3);
603 gB[2*nANN+
h]->SetLineColor(3);
605 if(gB[2*nANN+
h]->GetN()!=0) mg3B->Add(gB[2*nANN+
h]);
609 cB->cd(4)->SetLogy();
610 TMultiGraph* mg4B=
new TMultiGraph();
612 gB[3*
nANN]->SetMarkerColor(2);
613 gB[3*
nANN]->SetLineColor(2);
614 mg4B->SetTitle(
"cc=0.65;rho;#Events");
615 if(gB[3*nANN]->GetN()!=0) mg4B->Add(gB[3*nANN]);
617 gB[3*nANN+
h]->SetMarkerColor(3);
618 gB[3*nANN+
h]->SetLineColor(3);
620 if(gB[3*nANN+
h]->GetN()!=0) mg4B->Add(gB[3*nANN+
h]);
633 char CnameS2root[1024];
634 char CnameB2root[1024];
635 cout<<
"e ora non più"<<endl;
636 CnameS.ReplaceAll(
".root",
".png");
637 CnameB.ReplaceAll(
".root",
".png");
638 cout<<CnameS.Data()<<endl;
644 sprintf(CnameS2,
"logMc_rho/logN_rho_S_dMc%i_%s",
deltaMc,CnameS.Data());
647 sprintf(CnameB2,
"logMc_rho/logN_rho_B_dMc%i_%s",
deltaMc,CnameB.Data());
650 sprintf(CnameS2root,
"logMc_rho/logN_rho_S_dMc%i_%s",
deltaMc,CnameSroot.Data());
651 cout<<CnameS2root<<endl;
653 sprintf(CnameB2root,
"logMc_rho/logN_rho_B_dMc%i_%s",
deltaMc,CnameBroot.Data());
654 cout<<CnameB2root<<endl;
655 cout<<
"e ora non più"<<endl;
658 cS->Print(CnameS2root);
659 cB->Print(CnameB2root);
660 cout<<
"e ora non più"<<endl;
668 name.ReplaceAll(
"outfile_Mc/",
"");
669 TFile* fTEST =TFile::Open(ifile.Data());
670 TTree* NNTree2=(TTree*)fTEST->Get(
"Parameters");
676 NNTree2->SetBranchAddress(
"Mchirp",&Mc);
677 NNTree2->SetBranchAddress(
"ANNout",&out);
678 NNTree2->SetBranchAddress(
"cc",&cc);
679 NNTree2->SetBranchAddress(
"rho",&rho);
680 NNTree2->SetBranchAddress(
"#TestSig",&nSi);
681 NNTree2->GetEntry(0);
687 double* ANNSig[ncurve2];
688 for (
int i=0;
i<ncurve2;
i++) ANNSig[
i]=
new double[nSig];
692 int const nBg=NNTree2->GetEntries()-nSig;
693 for (
int i=0;
i<ncurve2;
i++) {
695 for (
int j=0;
j<nSig;
j++) ANNSig[
i][
j]=0.;
697 double* ANNBg[ncurve2];
698 for (
int i=0;
i<ncurve2;
i++) ANNBg[
i]=
new double[nBg];
702 for (
int i=0;
i<ncurve2;
i++) {
704 for (
int j=0;
j<nBg;
j++) ANNBg[
i][
j]=0.;
707 for (
int i=0;
i<
nCC;
i++) ccTh[
i]=0.;
709 for (
int i=0;
i<
nRHO;
i++) rhoTh[
i]=0.;
716 for(
int n=0;
n<NNTree2->GetEntries();
n++){
717 NNTree2->GetEntry(
n);
718 cout<<
"rho "<<rho<<
" cc "<<cc<<
"Mc "<<Mc<<endl;
721 if(cc<ccTh[
i])
continue;
724 if(rho<rhoTh[
j])
continue;
727 NBg[i*nRHO+
j]= NBg[i*nRHO+
j]+1;
728 while(ANNBg[i*nRHO+j][ni]!=0)ni=ni+1;
730 ANNBg[i*nRHO+
j][ni]=Mc;
734 NSig[i*nRHO+
j]= NSig[i*nRHO+
j]+1;
735 while(ANNSig[i*nRHO+j][ni]!=0)ni=ni+1;
737 ANNSig[i*nRHO+
j][ni]=Mc;
744 int* indexS[ncurve2];
745 for (
int i=0;
i<ncurve2;
i++) indexS[
i]=
new int[nSig];
747 TGraph * gS[ncurve2];
748 for (
int y=0;
y<ncurve2;
y++) {
752 TMath::Sort(nSig,ANNSig[
y],indexS[y],
false);
753 for (
int k=0;
k<nSig;
k++) {
758 int ij=indexS[
y][
k-1];
760 if(ANNSig[y][ii]!=0) {
763 if(ANNSig[y][ii]!=ANNSig[y][ij]) gS[
y]->SetPoint(igS_p++,ANNSig[y][ii],yy);
770 if(ANNSig[y][ii]!=0){
772 gS[
y]->SetPoint(0,ANNSig[y][ii],yy);
783 int* indexB[ncurve2];
784 for (
int i=0;
i<ncurve2;
i++) indexB[
i]=
new int[nBg];
786 TGraph * gB[ncurve2];
787 for (
int y=0;
y<ncurve2;
y++) {
791 TMath::Sort(nBg,ANNBg[
y],indexB[y],
false);
793 for (
int k=0;
k<nBg;
k++) {
797 int ij=indexB[
y][
k-1];
799 if(ANNBg[y][ii]!=0) {
802 if(ANNBg[y][ii]!=ANNBg[y][ij]) gB[
y]->SetPoint(igB_p++,ANNBg[y][ii],yy);
808 if(ANNBg[y][ii]!=0) {
810 gB[
y]->SetPoint(0,ANNBg[y][ii],yy);
819 TCanvas* cS=
new TCanvas(
"Efficiency_vs_ANN",
"Efficiency_vs_ANN",0,0,1200,700);
823 TMultiGraph* mg1=
new TMultiGraph();
824 mg1->SetTitle(
"cc=0.5;ANN;#Events");
826 gS[
h]->SetLineColor(4);
827 if(gS[
h]->GetN()!=0) mg1->Add(gS[
h]);
832 TMultiGraph* mg2=
new TMultiGraph();
833 mg2->SetTitle(
"cc=0.55;ANN;#Events");
835 gS[nRHO+
h]->SetLineColor(4);
836 if(gS[nRHO+
h]->GetN()!=0) mg2->Add(gS[nRHO+
h]);
842 TMultiGraph* mg3=
new TMultiGraph();
843 mg3->SetTitle(
"cc=0.6;Mc;#Events");
845 gS[2*nRHO+
h]->SetLineColor(4);
846 if(gS[2*nRHO+
h]->GetN()!=0) mg3->Add(gS[2*nRHO+
h]);
851 TMultiGraph* mg4=
new TMultiGraph();
852 mg4->SetTitle(
"cc=0.65;Mc;#Events");
854 gS[3*nRHO+
h]->SetLineColor(4);
855 if(gS[3*nRHO+
h]->GetN()!=0) mg4->Add(gS[3*nRHO+
h]);
859 TCanvas* cB=
new TCanvas(
"Number_vs_Mc",
"Number_vs_Mc",0,0,1200,700);
861 cB->cd(1)->SetLogy();
862 TMultiGraph* mg1B=
new TMultiGraph();
863 mg1B->SetTitle(
"cc=0.5;Mc;#Events");
865 gB[
h]->SetLineColor(4);
866 if(gB[
h]->GetN()!=0) mg1B->Add(gB[
h]);
869 cB->cd(2)->SetLogy();
870 TMultiGraph* mg2B=
new TMultiGraph();
871 mg2B->SetTitle(
"cc=0.55;Mc;#Events");
873 gB[nRHO+
h]->SetLineColor(4);
874 if(gB[nRHO+
h]->GetN()!=0) mg2B->Add(gB[nRHO+
h]);
877 cB->cd(3)->SetLogy();
878 TMultiGraph* mg3B=
new TMultiGraph();
879 mg3B->SetTitle(
"cc=0.6;Mc;#Events");
881 gB[2*nRHO+
h]->SetLineColor(4);
882 if(gB[2*nRHO+
h]->GetN()!=0) mg3B->Add(gB[2*nRHO+
h]);
885 cB->cd(4)->SetLogy();
886 TMultiGraph* mg4B=
new TMultiGraph();
887 mg4B->SetTitle(
"cc=0.6;Mc;#Events");
889 gB[3*nRHO+
h]->SetLineColor(4);
890 if(gB[3*nRHO+
h]->GetN()!=0) mg4B->Add(gB[3*nRHO+
h]);
902 char CnameS2root[1024];
903 char CnameB2root[1024];
904 CnameS.ReplaceAll(
".root",
".png");
905 CnameB.ReplaceAll(
".root",
".png");
906 sprintf(CnameS2,
"Mcthres/N_Mc_S_%s",CnameS.Data());
907 sprintf(CnameB2,
"Mcthres/N_Mc_B_%s",CnameB.Data());
908 sprintf(CnameS2root,
"Mcthres/N_Mc_S_%s",CnameSroot.Data());
909 sprintf(CnameB2root,
"Mcthres/N_Mc_B_%s",CnameBroot.Data());
912 cS->Print(CnameS2root);
913 cB->Print(CnameB2root);
925 name.ReplaceAll(
"outfile/",
"");
926 TFile* fTEST =TFile::Open(ifile.Data());
927 TTree* NNTree2=(TTree*)fTEST->Get(
"Parameters");
933 NNTree2->SetBranchAddress(
"Mchirp",&Mc);
934 NNTree2->SetBranchAddress(
"ANNout",&out);
935 NNTree2->SetBranchAddress(
"cc",&cc);
936 NNTree2->SetBranchAddress(
"rho",&rho);
937 NNTree2->SetBranchAddress(
"#TestSig",&nSi);
938 NNTree2->GetEntry(0);
940 cout<<
"nSig: "<<nSig<<
" nSi: "<<nSi<<endl;
941 int const nBg=NNTree2->GetEntries()-nSig;
970 for (
int i=0;
i<nSig;
i++){
978 for (
int i=0;
i<nBg;
i++){
984 for (
int n = 0;
n <NNTree2->GetEntries();
n++){
985 NNTree2->GetEntry(
n);
1015 for (
int k=0;
k<nBg;
k++)indexB[
k]=0;
1016 TMath::Sort(nBg,aRHOB,indexB,
false);
1020 double ANN1th[
nth+1];
1022 for (
int k=0;
k<(
nth);
k++){
1031 for (
int k=0;
k<(
nth);
k++){
1034 cc1th[
k]=0.5+dccth*
k;
1049 for (
int a=0;
a<nBg;
a++){
1050 cout<<
"tutti: a "<<
a<<
" rho "<<aRHOB[
a]<<
" aNNB "<<aANNB[
a]<<
" cc "<<aCCB[
a]<<endl;
1051 if(aRHOB[
a]<
RHOth)
continue;
1052 cout<<
"dopo rho: a "<<
a<<
" rho "<<aRHOB[
a]<<
" aNNB "<<aANNB[
a]<<
" cc "<<aCCB[
a]<<endl;
1053 for (
int b=0;b<
nth;b++){
1054 if(aCCB[
a]<cc1th[b])
continue;
1055 cout<<
"dopo cc: "<<cc1th[b]<<
"a "<<
a<<
" rho "<<aRHOB[
a]<<
" aNNB "<<aANNB[
a]<<
" cc "<<aCCB[
a]<<endl;
1056 for(
int c=0;
c<nth+1;
c++){
1057 if(aANNB[
a]<ANN1th[
c])
continue;
1058 cout<<
"dopo ANN:"<<ANN1th[
c]<<
" a "<<
a<<
" rho "<<aRHOB[
a]<<
" aNNB "<<aANNB[
a]<<
" cc "<<aCCB[
a]<<endl;
1059 Z[b*(nth+1)+c]=Z[b*(nth+1)+
c]+1;
1060 cout<<
"Zindex: "<<b*(nth+1)+c<<
" Z: "<<Z[b*(nth+1)+
c]<<endl;
1071 for (
int d=0; d<
nth+1;d++) bins[d]=0.;
1074 for (
int d=0; d<nth+1;d++) bins[d+1]=0.+(d+1)*
deltaMc;
1075 TH2D* hglitch=
new TH2D(
"Survived_glitches(RHO_cut:5.5)",
"Survived_glitches(RHO_cut:5.5)",nth,0.5,1,nth+1,bins);
1077 hglitch->SetDirectory(0);
1079 for (
int b=0;b<
nth;b++)
for(
int c=0;
c<nth+1;
c++) {
1082 hglitch->Fill(cc1th[b]+dccth/2.,bins[
c]+
deltaMc/2.,Z[(nth+1)*b+
c]);
1083 cout<<
" Zindex: "<<(nth+1)*b+
c<<
" x: "<<cc1th[b]<<
" y: "<<ANN1th[
c]<<
" z: "<<Z[(nth+1)*b+
c]<<endl;
1086 gB[0]=
new TGraph(nBg,aCCB,aRHOB);
1087 gS[0]=
new TGraph(nSig,aCCS,aRHOS);
1088 gB[1]=
new TGraph(nBg,aCCB,aANNB);
1089 gS[1]=
new TGraph(nSig,aCCS,aANNS);
1090 gB[2]=
new TGraph(nBg,aRHOB,aANNB);
1091 gS[2]=
new TGraph(nSig,aRHOS,aANNS);
1093 for(
int i=0;
i<3;
i++){
1094 gS[
i]->SetMarkerColor(2);
1095 gB[
i]->SetMarkerColor(4);
1096 gS[
i]->SetMarkerStyle(6);
1097 gB[
i]->SetMarkerStyle(7);
1100 TCanvas*
c=
new TCanvas(
"Plots",
"Plots",0,0,1200,700);
1103 TMultiGraph* mg1=
new TMultiGraph();
1104 mg1->SetTitle(
"cc_rho;cc;rho");
1105 if(gB[0]->GetN()!=0) mg1->Add(gB[0]);
1106 if(gS[0]->GetN()!=0) mg1->Add(gS[0]);
1109 TMultiGraph* mg2=
new TMultiGraph();
1110 mg2->SetTitle(
"cc_Mcoutput;cc;Mcoutput");
1111 if(gB[1]->GetN()!=0) mg2->Add(gB[1]);
1112 if(gS[1]->GetN()!=0) mg2->Add(gS[1]);
1115 TMultiGraph* mg3=
new TMultiGraph();
1116 mg3->SetTitle(
"rho_Mcoutput;rho;Mcoutput");
1117 if(gB[2]->GetN()!=0) mg3->Add(gB[2]);
1118 if(gS[2]->GetN()!=0) mg3->Add(gS[2]);
1121 TText*
text=
new TText(0.37,0.0,
"no cuts on Mc");
1122 hglitch->SetStats(0);
1123 hglitch->GetXaxis()->SetTitle(
"cc");
1124 hglitch->GetYaxis()->SetTitle(
"Mcoutput");
1125 hglitch->GetZaxis()->SetTitle(
"count");
1126 hglitch->Draw(
"colz");
1133 char Cname2root[1024];
1134 Cnameroot.ReplaceAll(
"outfile_Mc/",
"");
1135 Cname.ReplaceAll(
"outfile_Mc/",
"");
1136 Cname.ReplaceAll(
".root",
".png");
1137 sprintf(Cname2,
"CC_RHO_Mc_Plots/CC_RHO_Mc_Plots_%s",Cname.Data());
1138 sprintf(Cname2root,
"CC_RHO_Mc_Plots/CC_RHO_Mc_Plots_%s",Cnameroot.Data());
1140 c->Print(Cname2root);
1142 TCanvas*
c2=
new TCanvas(
"Plots_Bkg_on_Sig",
"Plots_Bkg_on_Sig",0,0,1200,700);
1146 gB[0]->Draw(
"p,same");
1150 gB[1]->Draw(
"p,same");
1153 gB[2]->Draw(
"p,same");
1155 TText* text2=
new TText(0.37,0.0,
"no cuts on Mc");
1156 hglitch->SetStats(0);
1157 hglitch->GetXaxis()->SetTitle(
"cc");
1158 hglitch->GetYaxis()->SetTitle(
"Mcoutput");
1159 hglitch->GetZaxis()->SetTitle(
"count");
1160 hglitch->Draw(
"colz");
1166 char Cname2_2[1024];
1167 char Cname2_2root[1024];
1168 Cname_2.ReplaceAll(
"outfile_Mc/",
"");
1169 Cname_2root.ReplaceAll(
"outfile_Mc/",
"");
1170 Cname_2.ReplaceAll(
".root",
".png");
1171 sprintf(Cname2_2,
"CC_RHO_Mc_Plots/CC_RHO_Mc_Plots_BoS_%s",Cname_2.Data());
1172 sprintf(Cname2_2root,
"CC_RHO_Mc_Plots/CC_RHO_Mc_Plots_BoS_%s",Cname_2root.Data());
1173 c2->SaveAs(Cname2_2);
1174 c2->Print(Cname2_2root);
void Test0_Mchirp(TString NN_FILE, TString TEST_FILE, int TS=0, int TB=0, int s=0, int b=0, int uf=0)
Float_t * rho
biased null statistics
wavearray< double > a(hp.size())
cout<< endl;cout<< "ts size = "<< ts.size()<< " ts rate = "<< ts.rate()<< endl;tf.Forward(ts, wdm);int levels=tf.getLevel();cout<< "tf size = "<< tf.size()<< endl;double dF=tf.resolution();double dT=1./(2 *dF);cout<< "rate(hz) : "<< RATE<< "\ layers : "<< nLAYERS<< "\ dF(hz) : "<< dF<< "\ dT(ms) : "<< dT *1000.<< endl;int itime=TIME_PIXEL_INDEX;int ifreq=FREQ_PIXEL_INDEX;int index=(levels+1) *itime+ifreq;double time=itime *dT;double freq=(ifreq >0) ? ifreq *dF :dF/4;cout<< endl;cout<< "PIXEL TIME = "<< time<< " sec "<< endl;cout<< "PIXEL FREQ = "<< freq<< " Hz "<< endl;cout<< endl;wavearray< double > x
cout<< fileout<< endl;out.open(fileout, ios::out);if(!out.good()) { cout<< "cwb_mkhtml_cbc.C : Error Opening File : "<< fileout<< endl;exit(1);} out<< "<br><br><< endl; MakePlotsHtmlCellTable(&out, "Sensitive distance for M< sub > total</sub > bins
cout<< "SNR "<< xsnr<< endl;wavearray< double > f
void Plots(TString ifile)
cout<< "Injected signals: "<< mdc.GetEntries()<< endl;cout<< "Injected signals in histogram factor_events_inj: "<< NEVTS<< endl;float myifar, ecor, m1, m2, netcc[3], neted, penalty;float rho[2];float chirp[6];float range[2];float frequency[2];float iSNR[3], sSNR[3];sim.SetBranchAddress("mass", mass);sim.SetBranchAddress("factor", &factor);sim.SetBranchAddress("range", range);sim.SetBranchAddress("chirp", chirp);sim.SetBranchAddress("rho", rho);sim.SetBranchAddress("netcc", netcc);sim.SetBranchAddress("neted", &neted);sim.SetBranchAddress("ifar", &myifar);sim.SetBranchAddress("ecor", &ecor);sim.SetBranchAddress("penalty", &penalty);sim.SetBranchAddress("time", mytime);sim.SetBranchAddress("iSNR", iSNR);sim.SetBranchAddress("sSNR", sSNR);sim.SetBranchAddress("spin", spin);sim.SetBranchAddress("frequency", frequency);float **volume=new float *[NBINS_mass1];float **volume_first_shell=new float *[NBINS_mass1];float **radius=new float *[NBINS_mass1];float **error_volume=new float *[NBINS_mass1];float **error_volume_first_shell=new float *[NBINS_mass1];float **error_radius=new float *[NBINS_mass1];for(int i=0;i< NBINS_mass1;i++) { volume[i]=new float[NBINS_mass2];volume_first_shell[i]=new float[NBINS_mass2];radius[i]=new float[NBINS_mass2];error_volume[i]=new float[NBINS_mass2];error_volume_first_shell[i]=new float[NBINS_mass2];error_radius[i]=new float[NBINS_mass2];for(int j=0;j< NBINS_mass2;j++) { volume[i][j]=0.;volume_first_shell[i][j]=0.;radius[i][j]=0.;error_volume[i][j]=0.;error_volume_first_shell[i][j]=0.;error_radius[i][j]=0.;} } float **spin_mtot_volume=new float *[NBINS_MTOT+1];float **spin_mtot_radius=new float *[NBINS_MTOT+1];float **error_spin_mtot_volume=new float *[NBINS_MTOT+1];float **error_spin_mtot_radius=new float *[NBINS_MTOT+1];for(int i=0;i< NBINS_MTOT+1;i++) { spin_mtot_volume[i]=new float[NBINS_SPIN+1];spin_mtot_radius[i]=new float[NBINS_SPIN+1];error_spin_mtot_volume[i]=new float[NBINS_SPIN+1];error_spin_mtot_radius[i]=new float[NBINS_SPIN+1];for(int j=0;j< NBINS_SPIN+1;j++) { spin_mtot_volume[i][j]=0.;error_spin_mtot_volume[i][j]=0.;spin_mtot_radius[i][j]=0.;error_spin_mtot_radius[i][j]=0.;} } char fname[1024];sprintf(fname, "%s/recovered_signals.txt", netdir);ofstream fev;fev.open(fname, std::ofstream::out);sprintf(line, "#GPS@L1 FAR[Hz] eFAR[Hz] Pval " "ePval factor rho frequency iSNR sSNR \");fev<< line<< endl;ofstream *fev_single=new ofstream[nfactor];for(int l=1;l< nfactor+1;l++) { sprintf(fname, "%s/recovered_signals_%d.txt", netdir, l);fev_single[l - 1].open(fname, std::ofstream::out);fev_single[l - 1]<< line<< endl;} double Vrho[RHO_NBINS], eVrho[RHO_NBINS], Rrho[RHO_NBINS], eRrho[RHO_NBINS], Trho[RHO_NBINS];for(int i=0;i< RHO_NBINS;i++) { Vrho[i]=0.;eVrho[i]=0.;Rrho[i]=0.;eRrho[i]=0.;Trho[i]=RHO_MIN+i *RHO_BIN;} double dV, dV1, dV_spin_mtot, nevts, internal_volume;int nT;int countv=0;int cnt=0;int cnt2=0;int cntfreq=0;bool bcut=false;double liveTot=sim.GetMaximum("ifar");double BKG_LIVETIME_yr=liveTot/CYS;double BKG_LIVETIME_Myr=BKG_LIVETIME_yr/(1.e6);cout.precision(14);cout<< "Total live time ---> background
void Annth(TString ifile)
Float_t * netcc
effective correlated SNR
void graph(TString ifile)
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
for(int i=0;i< 101;++i) Cos2[2][i]=0
pointers to detectors
Float_t * chirp
range to source: [0/1]-rec/inj