Logo coherent WaveBurst  
Library Reference Guide
Logo
DrawRadiusRhoplots.C
Go to the documentation of this file.
1 /*
2 # Copyright (C) 2019 Francesco Salemi
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17 
18 
19 //
20 // Draw Radius vs IFAR
21 // Note : this macro is used to generate the CBC report
22 // Author : Francesco Salemi
23 
24 
25 #define MINRADIUS 0
26 #define MAXRADIUS 1000
27 #define MINRHO 5
28 #define MAXRHO 100
29 
30 //TCanvas* co_canvas;
31 //TGraphErrors* co_gr1,co_gr2,co_gr3,co_gr4;
32 //TMultiGraph* mg, mgr, mg2, mg2r, mg3, mg3r;
33 //TLegend* leg, leg2, leg3;
34 //void DrawRadiusIFAR2(char* sim_file_name, char* mdc_file_name, float shell_volume, char* netdir, double liveTot, float T_ifar=0.0, float T_win=0.2, float internal_volume=0.0, int TRIALS = 1){
36 
37  TCanvas* co_canvas = new TCanvas("sd2", "SD2", 3, 47, 1000, 802);
38  co_canvas->SetGridx();
39  co_canvas->SetGridy();
40  co_canvas->SetLogx();
41 
42  //gROOT->LoadMacro(gSystem->ExpandPathName("$HOME_CWB/macros/CreateGraphRadiusIFAR.C"));
43 
44 
45  //========== Sensitive Distance vs rho[1] for varius Mtot bins ================
46 
47  TMultiGraph* mgr = new TMultiGraph();
48  TGraphErrors* co_gr1 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name, "(mass[0]+mass[1] > 4.0) && (mass[0]+mass[1] < 27.25)", shell_volume,kBlue, opt+"rho");
49  mgr->Add(co_gr1);
50  TGraphErrors* co_gr2 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name, "(mass[0]+mass[1] > 27.25) && (mass[0]+mass[1] < 51.50)", shell_volume,kCyan, opt+"rho");
51  mgr->Add(co_gr2);
52  TGraphErrors* co_gr3 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name, "(mass[0]+mass[1] > 51.50) && (mass[0]+mass[1] < 75.75)", shell_volume,kGreen-9, opt+"rho");
53  mgr->Add(co_gr3);
54  TGraphErrors* co_gr4 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name, "(mass[0]+mass[1] > 75.75) && (mass[0]+mass[1] < 100.0)", shell_volume,kOrange, opt+"rho");
55  mgr->Add(co_gr4);
56 
57  mgr->GetYaxis()->SetTitle("Sensitive Distance [Mpc]");
58  mgr->GetXaxis()->SetTitle("Magnitude Test Statistic (rho[1])");
59  mgr->GetXaxis()->SetLimits(MINRHO,MAXRHO);
60  // mgr->GetYaxis()->SetRangeUser(MINRADIUS,MAXRADIUS);
61  mgr->GetXaxis()->SetTitleOffset(1.3);
62  mgr->GetYaxis()->SetTitleOffset(1.25);
63  mgr->GetXaxis()->SetTickLength(0.01);
64  mgr->GetYaxis()->SetTickLength(0.01);
65  mgr->GetXaxis()->CenterTitle(kTRUE);
66  mgr->GetYaxis()->CenterTitle(kTRUE);
67  mgr->GetXaxis()->SetTitleFont(42);
68  mgr->GetXaxis()->SetLabelFont(42);
69  mgr->GetYaxis()->SetTitleFont(42);
70  mgr->GetYaxis()->SetLabelFont(42);
71 
72  mgr->Draw("aple3");
73  TLegend* leg = new TLegend(0.6, 0.7, 0.9, 0.9, "", "brNDC");
74  leg->AddEntry(co_gr1,"M_{total} #in [4.00, 27.25] M_{#odot}", "l");
75  leg->AddEntry(co_gr2,"M_{total} #in [27.25, 51.50] M_{#odot}", "l");
76  leg->AddEntry(co_gr3,"M_{total} #in [51.50, 75.75] M_{#odot}", "l");
77  leg->AddEntry(co_gr4,"M_{total} #in [75.75, 100.00] M_{#odot}", "l");
78  leg->SetFillColor(0);
79  leg->SetFillColorAlpha(0, 1.0);
80  leg->Draw();
81 
82  sprintf(fname, "%s/ROC_rho1_Mtot.png", netdir);
83  co_canvas->SetLogy();
84  co_canvas->Update();
85  co_canvas->SaveAs(fname);
86  co_canvas->SetLogy(0);
87 
88  //========== Sensitive Distance vs rho[1] for varius Xeff bins ================
89  TMultiGraph* mg2r = new TMultiGraph();
90  co_gr1 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
91  "(spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])>-1 && (spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])<-0.4", shell_volume,kViolet-1, opt+"rho");
92  mg2r->Add(co_gr1);
93  co_gr2 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
94  "(spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])>-0.4 && (spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])<0.4", shell_volume,kGreen-9, opt+"rho");
95  mg2r->Add(co_gr2);
96  co_gr3 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
97  "(spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])>0.4 && (spin[2]*mass[0]+spin[5]*mass[1])/(mass[1]+mass[0])<1", shell_volume,kRed, opt+"rho");
98  mg2r->Add(co_gr3);
99 
100  mg2r->GetYaxis()->SetTitle("Sensitive Distance [Mpc]");
101  mg2r->GetXaxis()->SetTitle("Magnitude Test Statistic (rho[1])");
102  mg2r->GetXaxis()->SetLimits(MINRHO,MAXRHO);
103  //mg2r->GetYaxis()->SetRangeUser(MINRADIUS,MAXRADIUS);
104  mg2r->GetXaxis()->SetTitleOffset(1.3);
105  mg2r->GetYaxis()->SetTitleOffset(1.25);
106  mg2r->GetXaxis()->SetTickLength(0.01);
107  mg2r->GetYaxis()->SetTickLength(0.01);
108  mg2r->GetXaxis()->CenterTitle(kTRUE);
109  mg2r->GetYaxis()->CenterTitle(kTRUE);
110  mg2r->GetXaxis()->SetTitleFont(42);
111  mg2r->GetXaxis()->SetLabelFont(42);
112  mg2r->GetYaxis()->SetTitleFont(42);
113  mg2r->GetYaxis()->SetLabelFont(42);
114 
115  mg2r->Draw("aple3");
116 
117  TLegend* leg2 = new TLegend(0.6, 0.8, 0.9, 0.9, "", "tlNDC");
118  leg2->AddEntry(co_gr1,"#chi_{eff} #in [-1, 0.4]", "l");
119  leg2->AddEntry(co_gr2,"#chi_{eff} #in [-0.4, 0.4]", "l");
120  leg2->AddEntry(co_gr3,"#chi_{eff} #in [0.4, 1]", "l");
121  leg2->SetFillColor(0);
122 
123  leg2->SetFillColorAlpha(0, 1.0);
124  leg2->Draw();
125 
126  sprintf(fname, "%s/ROC_rho1_chieff.png", netdir);
127  co_canvas->SetLogy();
128  co_canvas->Update();
129  co_canvas->SaveAs(fname);
130  co_canvas->SetLogy(0);
131 
132 
133  //========== Sensitive Distance vs rho[1] for varius Mchirp bins ================
134  TMultiGraph* mg3r = new TMultiGraph();
135  co_gr1 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
136  "chirp[0]>1.74 && chirp[0]<8.07",shell_volume,kBlue, opt+"rho");
137  mg3r->Add(co_gr1);
138  co_gr2 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
139  "chirp[0]>8.07 && chirp[0]<14.92",shell_volume,kCyan, opt+"rho");
140  mg3r->Add(co_gr2);
141  co_gr3 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
142  "chirp[0]>14.92 && chirp[0]<21.77",shell_volume,kGreen-9, opt+"rho");
143  mg3r->Add(co_gr3);
144  co_gr4 = CreateGraphRadiusIFAR(sim_file_name, mdc_file_name,
145  "chirp[0]>21.77 && chirp[0]<100.0",shell_volume,kOrange, opt+"rho");
146  mg3r->Add(co_gr4);
147 
148  mg3r->GetYaxis()->SetTitle("Sensitive Distance [Mpc]");
149  mg3r->GetXaxis()->SetTitle("Magnitude Test Statistic (rho[1])");
150  mg3r->GetXaxis()->SetLimits(MINRHO,MAXRHO);
151  // mg3r->GetYaxis()->SetRangeUser(MINRADIUS,MAXRADIUS);
152  mg3r->GetXaxis()->SetTitleOffset(1.3);
153  mg3r->GetYaxis()->SetTitleOffset(1.25);
154  mg3r->GetXaxis()->SetTickLength(0.01);
155  mg3r->GetYaxis()->SetTickLength(0.01);
156  mg3r->GetXaxis()->CenterTitle(kTRUE);
157  mg3r->GetYaxis()->CenterTitle(kTRUE);
158  mg3r->GetXaxis()->SetTitleFont(42);
159  mg3r->GetXaxis()->SetLabelFont(42);
160  mg3r->GetYaxis()->SetTitleFont(42);
161  mg3r->GetYaxis()->SetLabelFont(42);
162 
163  mg3r->Draw("aple3");
164 
165  //char lab[256];
166  TLegend* leg3 = new TLegend(0.6, 0.7, 0.9, 0.9, "", "tlNDC");
167  leg3->AddEntry(co_gr1,"M_{chirp} #in [1.74, 8.07] M_{#odot}", "l");
168  leg3->AddEntry(co_gr2,"M_{chirp} #in [8.07, 14.92] M_{#odot}", "l");
169  leg3->AddEntry(co_gr3,"M_{chirp} #in [14.92, 21.77] M_{#odot}", "l");
170  leg3->AddEntry(co_gr4,"M_{chirp} #in [21.77, 100.00] M_{#odot}", "l");
171  leg3->SetFillColor(0);
172  leg3->SetFillColorAlpha(0, 1.0);
173  leg3->Draw();
174 
175  sprintf(fname, "%s/ROC_rho1_chirp.png", netdir);
176  co_canvas->SetLogy();
177  co_canvas->Update();
178  co_canvas->SaveAs(fname);
179  delete co_canvas;
180  delete mgr,mg2r,mg3r;
181  delete leg, leg2, leg3;
182  delete co_gr1,co_gr2,co_gr3,co_gr4;
183  // exit(0);
184 
185 }
#define MAXRHO
TString opt
TString("c")
TGraphErrors * CreateGraphRadiusIFAR(char *sim_file_name, char *mdc_file_name, TString SEL, float shell_volume, Color_t color=kBlue, TString opt="default", double liveTot=1e6, float T_ifar=0.0, float T_win=0.2, int TRIALS=1, int nIFO=2)
char netdir[1024]
#define MINRHO
char fname[1024]
void DrawRadiusRhoplots(char *sim_file_name, char *mdc_file_name, float shell_volume, TString opt)
char sim_file_name[1024]
sprintf(tfres,"(1/%g)x(%g) (sec)x(Hz)", 2 *df, df)
float * shell_volume
char mdc_file_name[1024]
TCanvas * co_canvas