8 #define LIV_FILE_NAME "live.txt"
22 gStyle->SetNumberContours(
NCont);
23 double stops[
NRGBs] = { 0.10, 0.25, 0.45, 0.60, 0.75, 1.00 };
24 double red[
NRGBs] = { 0.00, 0.00, 0.00, 0.97, 0.97, 0.10 };
25 double green[
NRGBs] = { 0.97, 0.30, 0.40, 0.97, 0.00, 0.00 };
26 double blue[
NRGBs] = { 0.97, 0.97, 0.00, 0.00, 0.00, 0.00 };
27 TColor::CreateGradientColorTable(
NRGBs, stops, red, green, blue,
NCont);
39 float max_mass2 = MAX_MASS;
45 float min_mass1 = MIN_MASS;
51 float max_mass1 = MAX_MASS;
57 float min_mass2 = MIN_MASS;
67 cout <<
"cbc_plots.C starts..."<<endl;
69 cout <<
"Mass1 : ["<<min_mass1<<
","<<max_mass1<<
"] with "<<NBINS_mass1<<
" bins"<<endl;
70 cout <<
"Mass2 : ["<<min_mass2<<
","<<max_mass2<<
"] with "<<NBINS_mass2<<
" bins"<<endl;
75 TB.
checkFile(gSystem->Getenv(
"CWB_ROOTLOGON_FILE"));
76 TB.
checkFile(gSystem->Getenv(
"CWB_PARAMETERS_FILE"));
77 TB.
checkFile(gSystem->Getenv(
"CWB_UPARAMETERS_FILE"));
78 TB.
checkFile(gSystem->Getenv(
"CWB_PPARAMETERS_FILE"));
79 TB.
checkFile(gSystem->Getenv(
"CWB_UPPARAMETERS_FILE"));
80 TB.
checkFile(gSystem->Getenv(
"CWB_EPPARAMETERS_FILE"));
84 gStyle->SetTitleFillColor(kWhite);
86 gStyle->SetNumberContours(256);
87 gStyle->SetCanvasColor(kWhite);
88 gStyle->SetStatBorderSize(1);
89 gStyle->SetOptStat(kFALSE);
92 gStyle->SetFrameBorderMode(0);
98 if(strlen(
ifo[
i])>0)
sprintf(networkname,
"%s-%s",networkname,
ifo[i]);
118 if(
MDC.GetInspiralOption(
"--waveform")!=
""){waveform =
MDC.GetInspiralOption(
"--waveform");}
119 if(
MDC.GetInspiralOption(
"--min-mtotal")!=
""){minMtot = (float)
MDC.GetInspiralOption(
"--min-mtotal").Atof();bminMtot = 1;}
120 if(
MDC.GetInspiralOption(
"--max-mtotal")!=
""){maxMtot = (float)
MDC.GetInspiralOption(
"--max-mtotal").Atof(); bmaxMtot = 1;}
121 if(
MDC.GetInspiralOption(
"--min-distance")!=
""){minDistance = (float)
MDC.GetInspiralOption(
"--min-distance").Atof(); bminDistance = 1;}
122 if(
MDC.GetInspiralOption(
"--max-distance")!=
""){maxDistance = (float)
MDC.GetInspiralOption(
"--max-distance").Atof(); bmaxDistance = 1;}
123 if(
MDC.GetInspiralOption(
"--min-mratio")!=
""){minRatio = (float)
MDC.GetInspiralOption(
"--min-mratio").Atof(); bminRatio = 1;}
124 if(
MDC.GetInspiralOption(
"--max-mratio")!=
""){maxRatio = (float)
MDC.GetInspiralOption(
"--max-mratio").Atof(); bmaxRatio = 1;}
125 if(
MDC.GetInspiralOption(
"--d-distr")!=
""){
126 if(
MDC.GetInspiralOption(
"--d-distr").CompareTo(
"uniform")==0){DDistrUniform =1;cout <<
"Uniform distribution in linear distance"<<endl;}
127 else if(
MDC.GetInspiralOption(
"--d-distr").CompareTo(
"volume")==0){DDistrVolume =1;cout <<
"Uniform distribution in volume"<<endl;}
128 else {cout <<
"No defined distance distribution?????! Or different from uniform and volume???"<<endl;
exit(1);}
133 #ifdef FIXMAXDISTANCE
135 maxDistance=FIXMAXDISTANCE;
140 minRatio=FIXMINRATIO;
143 float MINRATIO = 0.0;
148 maxRatio=FIXMAXRATIO;
166 else {
float MINMtot = 0.0;}
170 int NBINS_MTOT = TMath::FloorNint((maxMtot-minMtot)/MASS_BIN/2.);
171 cout<<
"NBINS_MTOT: "<<NBINS_MTOT<<endl;
174 else {cout <<
"Undefined maximal total mass!! Define float MAXMtot"<<endl;
exit(1);}
177 else {cout <<
"Undefined minimal distance!! Defined float MINDISTANCE"<<endl;
exit(1);}
180 else {cout <<
"Undefined maximal distance!! Define float MAXDISTANCE"<<endl;
exit(1);}
186 float MINCHIRP = 0.9*pow(min_mass1*min_mass2,3./5.)/pow(maxMtot,1./5.);
187 float MAXCHIRP = 1.1*pow(max_mass1*max_mass2,3./5.)/pow(minMtot,1./5.);
197 TCanvas *
c1 =
new TCanvas(
"c1",
"c1",3,47,1000,802);
198 c1->Range(-1.216392,-477.6306,508.8988,2814.609);
200 c1->SetBorderMode(0);
201 c1->SetBorderSize(2);
204 c1->SetRightMargin(0.1154618);
205 c1->SetTopMargin(0.07642487);
206 c1->SetBottomMargin(0.1450777);
209 TH2F *
inj_events =
new TH2F(
"inj_events",
"D_Minj",NBINS_mass,MIN_MASS,MAX_MASS,NBINS_mass2,min_mass2,max_mass2);
210 inj_events->GetXaxis()->SetRangeUser(MIN_plot_mass1,MAX_plot_mass1);
211 inj_events->GetYaxis()->SetRangeUser(MIN_plot_mass2,MAX_plot_mass2);
212 inj_events->GetXaxis()->SetTitle(
"Mass 1 (M_{#odot})");
213 inj_events->GetYaxis()->SetTitle(
"Mass 2 (M_{#odot})");
214 inj_events->GetXaxis()->SetTitleOffset(1.3);
215 inj_events->GetYaxis()->SetTitleOffset(1.25);
216 inj_events->GetXaxis()->CenterTitle(kTRUE);
217 inj_events->GetYaxis()->CenterTitle(kTRUE);
218 inj_events->GetXaxis()->SetNdivisions(410);
219 inj_events->GetYaxis()->SetNdivisions(410);
220 inj_events->GetXaxis()->SetTickLength(0.01);
221 inj_events->GetYaxis()->SetTickLength(0.01);
222 inj_events->GetZaxis()->SetTickLength(0.01);
223 inj_events->GetXaxis()->SetTitleFont(42);
224 inj_events->GetXaxis()->SetLabelFont(42);
225 inj_events->GetYaxis()->SetTitleFont(42);
226 inj_events->GetYaxis()->SetLabelFont(42);
227 inj_events->GetZaxis()->SetLabelFont(42);
228 inj_events->GetZaxis()->SetLabelSize(0.03);
232 inj_events->SetTitle(
"");
235 inj_events->SetContour(
NCont);
238 TH2F *
rec_events =
new TH2F(
"rec_events",
"D_Mrec",NBINS_mass,MIN_MASS,MAX_MASS,NBINS_mass2,min_mass2,max_mass2);
239 rec_events->GetXaxis()->SetRangeUser(MIN_plot_mass1,MAX_plot_mass1);
240 rec_events->GetYaxis()->SetRangeUser(MIN_plot_mass2,MAX_plot_mass2);
241 rec_events->GetXaxis()->SetTitle(
"Mass 1 (M_{#odot})");
242 rec_events->GetYaxis()->SetTitle(
"Mass 2 (M_{#odot})");
243 rec_events->GetXaxis()->SetTitleOffset(1.3);
244 rec_events->GetYaxis()->SetTitleOffset(1.25);
245 rec_events->GetXaxis()->CenterTitle(kTRUE);
246 rec_events->GetYaxis()->CenterTitle(kTRUE);
247 rec_events->GetXaxis()->SetNdivisions(410);
248 rec_events->GetYaxis()->SetNdivisions(410);
249 rec_events->GetXaxis()->SetTickLength(0.01);
250 rec_events->GetYaxis()->SetTickLength(0.01);
251 rec_events->GetZaxis()->SetTickLength(0.01);
252 rec_events->GetXaxis()->SetTitleFont(42);
253 rec_events->GetXaxis()->SetLabelFont(42);
254 rec_events->GetYaxis()->SetTitleFont(42);
255 rec_events->GetYaxis()->SetLabelFont(42);
256 rec_events->GetZaxis()->SetLabelFont(42);
257 rec_events->GetZaxis()->SetLabelSize(0.03);
258 rec_events->SetTitle(
"");
261 rec_events->SetContour(
NCont);
264 factor_events_inj[
i]=
new TH2F(
"factor_events_inj",
"",NBINS_mass,MIN_MASS,MAX_MASS,NBINS_mass2,min_mass2,max_mass2);
266 TH2F *
factor_events_rec =
new TH2F(
"factor_events_rec",
"",NBINS_mass,MIN_MASS,MAX_MASS,NBINS_mass2,min_mass2,max_mass2);
269 TH2F *
D_Mtot_inj =
new TH2F(
"Distance vs Mtot inj.",
"",1000,MINMtot,MAXMtot,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000./
FACTORS[0]);
271 D_Mtot_inj->GetXaxis()->SetTitle(
"Total mass (M_{#odot})");
272 D_Mtot_inj->GetYaxis()->SetTitle(
"Distance (Mpc)");
273 D_Mtot_inj->GetXaxis()->SetTitleOffset(1.3);
274 D_Mtot_inj->GetYaxis()->SetTitleOffset(1.3);
275 D_Mtot_inj->GetXaxis()->SetTickLength(0.01);
276 D_Mtot_inj->GetYaxis()->SetTickLength(0.01);
277 D_Mtot_inj->GetXaxis()->CenterTitle(kTRUE);
278 D_Mtot_inj->GetYaxis()->CenterTitle(kTRUE);
279 D_Mtot_inj->GetXaxis()->SetTitleFont(42);
280 D_Mtot_inj->GetXaxis()->SetLabelFont(42);
281 D_Mtot_inj->GetYaxis()->SetTitleFont(42);
282 D_Mtot_inj->GetYaxis()->SetLabelFont(42);
283 D_Mtot_inj->SetMarkerStyle(20);
284 D_Mtot_inj->SetMarkerSize(0.5);
285 D_Mtot_inj->SetMarkerColor(2);
286 D_Mtot_inj->SetTitle(
"");
288 D_Mtot_inj->SetName(
"D_Mtotinj");
290 TH2F *
D_Mtot_rec =
new TH2F(
"Distance vs Mtot rec.",
"",1000,MINMtot,MAXMtot,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000/
FACTORS[0]);
292 D_Mtot_rec->SetMarkerStyle(20);
293 D_Mtot_rec->SetMarkerSize(0.5);
294 D_Mtot_rec->SetMarkerColor(4);
296 TH2F *
D_Mchirp_inj =
new TH2F(
"Distance vs MChirp inj.",
"",1000,MINCHIRP,MAXCHIRP,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000./
FACTORS[0]);
298 D_Mchirp_inj->GetXaxis()->SetTitle(
"Chirp mass (M_{#odot})");
299 D_Mchirp_inj->GetYaxis()->SetTitle(
"Distance (Mpc)");
300 D_Mchirp_inj->GetXaxis()->SetTitleOffset(1.3);
301 D_Mchirp_inj->GetYaxis()->SetTitleOffset(1.3);
302 D_Mchirp_inj->GetXaxis()->SetTickLength(0.01);
303 D_Mchirp_inj->GetYaxis()->SetTickLength(0.01);
304 D_Mchirp_inj->GetXaxis()->CenterTitle(kTRUE);
305 D_Mchirp_inj->GetYaxis()->CenterTitle(kTRUE);
306 D_Mchirp_inj->GetXaxis()->SetTitleFont(42);
307 D_Mchirp_inj->GetXaxis()->SetLabelFont(42);
308 D_Mchirp_inj->GetYaxis()->SetTitleFont(42);
309 D_Mchirp_inj->GetYaxis()->SetLabelFont(42);
310 D_Mchirp_inj->SetMarkerStyle(20);
311 D_Mchirp_inj->SetMarkerSize(0.5);
312 D_Mchirp_inj->SetMarkerColor(2);
313 D_Mchirp_inj->SetTitle(
"");
315 D_Mchirp_inj->SetName(
"D_Chirp_inj");
317 TH2F *
D_Mchirp_rec =
new TH2F(
"Distance vs MChirp rec.",
"",1000,MINCHIRP,MAXCHIRP,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000/
FACTORS[0]);
319 D_Mchirp_rec->SetMarkerStyle(20);
320 D_Mchirp_rec->SetMarkerSize(0.5);
321 D_Mchirp_rec->SetMarkerColor(4);
325 int NBINS_SPIN = (
int)((MAXCHI-MINCHI)/CHI_BIN); cout<<
"NBINS_SPIN: "<<NBINS_SPIN<<endl;
326 TH2F* inj_events_spin_mtot =
new TH2F(
"inj_spin_Mtot",
"",NBINS_SPIN,MINCHI,MAXCHI,NBINS_MTOT,minMtot,maxMtot);
327 TH2F* rec_events_spin_mtot =
new TH2F(
"rec_spin_Mtot",
"",NBINS_SPIN,MINCHI,MAXCHI,NBINS_MTOT,minMtot,maxMtot);
330 factor_events_spin_mtot_inj[
i]=
new TH2F(
"factor_events_spin_mtot_inj",
"",NBINS_SPIN,MINCHI,MAXCHI,NBINS_MTOT,minMtot,maxMtot);
333 TH2F *D_Chi_inj =
new TH2F(
"Distance vs Chi inj.",
"",1000,MINCHI,MAXCHI,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000./
FACTORS[0]);
335 D_Chi_inj->GetXaxis()->SetTitle(
"#chi_{z}");
336 D_Chi_inj->GetYaxis()->SetTitle(
"Distance (Mpc)");
337 D_Chi_inj->GetXaxis()->SetTitleOffset(1.3);
338 D_Chi_inj->GetYaxis()->SetTitleOffset(1.3);
339 D_Chi_inj->GetXaxis()->SetTickLength(0.01);
340 D_Chi_inj->GetYaxis()->SetTickLength(0.01);
341 D_Chi_inj->GetXaxis()->CenterTitle(kTRUE);
342 D_Chi_inj->GetYaxis()->CenterTitle(kTRUE);
343 D_Chi_inj->GetXaxis()->SetTitleFont(42);
344 D_Chi_inj->GetXaxis()->SetLabelFont(42);
345 D_Chi_inj->GetYaxis()->SetTitleFont(42);
346 D_Chi_inj->GetYaxis()->SetLabelFont(42);
347 D_Chi_inj->SetMarkerStyle(20);
348 D_Chi_inj->SetMarkerSize(0.5);
349 D_Chi_inj->SetMarkerColor(2);
350 D_Chi_inj->SetTitle(
"");
352 D_Chi_inj->SetName(
"D_Chi_inj");
354 TH2F *
D_Chi_injx = (TH2F*)D_Chi_inj->Clone(
"D_Chi_injx");
355 D_Chi_injx->GetXaxis()->SetTitle(
"#chi_{x}");
356 D_Chi_injx->SetName(
"D_Chi_injx");
357 TH2F *
D_Chi_injy = (TH2F*)D_Chi_inj->Clone(
"D_Chi_injy");
358 D_Chi_injy->GetXaxis()->SetTitle(
"#chi_{y}");
359 D_Chi_injy->SetName(
"D_Chi_injy");
361 TH2F *
D_Chi_rec =
new TH2F(
"Distance vs Chi rec.",
"",1000,MINCHI,MAXCHI,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000/
FACTORS[0]);
362 D_Chi_rec->SetMarkerStyle(20);
363 D_Chi_rec->SetMarkerSize(0.5);
364 D_Chi_rec->SetMarkerColor(4);
366 TH2F *
D_Chi_recx = (TH2F*)D_Chi_rec->Clone(
"D_Chi_recx");
367 TH2F *
D_Chi_recy = (TH2F*)D_Chi_rec->Clone(
"D_Chi_recy");
372 TH2F *
D_q_inj =
new TH2F(
"Distance vs q inj.",
"",1000,MINRATIO,MAXRATIO,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000./
FACTORS[0]);
374 D_q_inj->GetXaxis()->SetTitle(
"Mass ratio (M_{#odot})");
375 D_q_inj->GetYaxis()->SetTitle(
"Distance (Mpc)");
376 D_q_inj->GetXaxis()->SetTitleOffset(1.3);
377 D_q_inj->GetYaxis()->SetTitleOffset(1.3);
378 D_q_inj->GetXaxis()->SetTickLength(0.01);
379 D_q_inj->GetYaxis()->SetTickLength(0.01);
380 D_q_inj->GetXaxis()->CenterTitle(kTRUE);
381 D_q_inj->GetYaxis()->CenterTitle(kTRUE);
382 D_q_inj->GetXaxis()->SetTitleFont(42);
383 D_q_inj->GetXaxis()->SetLabelFont(42);
384 D_q_inj->GetYaxis()->SetTitleFont(42);
385 D_q_inj->GetYaxis()->SetLabelFont(42);
386 D_q_inj->SetMarkerStyle(20);
387 D_q_inj->SetMarkerSize(0.5);
388 D_q_inj->SetMarkerColor(2);
389 D_q_inj->SetTitle(
"");
391 D_q_inj->SetName(
"D_q_inj");
393 TH2F *
D_q_rec =
new TH2F(
"Distance vs q rec.",
"",1000,MINRATIO,MAXRATIO,5000,MINDISTANCE/1000./
FACTORS[nfactor-1],MAXDISTANCE/1000/
FACTORS[0]);
395 D_q_rec->SetMarkerStyle(20);
396 D_q_rec->SetMarkerSize(0.5);
397 D_q_rec->SetMarkerColor(4);
398 TH1F *
Dt =
new TH1F(
"Dt",
"",1000,-0.5,0.5);
399 Dt->SetMarkerStyle(20);
400 Dt->SetMarkerSize(0.5);
401 Dt->SetMarkerColor(4);
405 rhocc->SetTitle(
"0 < cc < 1");
406 rhocc->SetTitleOffset(1.3,
"Y");
407 rhocc->GetXaxis()->SetTitle(
"network correlation");
408 rhocc->GetYaxis()->SetTitle(
"#rho");
409 rhocc->SetStats(kFALSE);
410 rhocc->SetMarkerStyle(20);
411 rhocc->SetMarkerSize(0.5);
412 rhocc->SetMarkerColor(1);
415 rho_pf->SetTitle(
"chi2");
416 rho_pf->GetXaxis()->SetTitle(
"log10(chi2)");
417 rho_pf->SetTitleOffset(1.3,
"Y");
418 rho_pf->GetYaxis()->SetTitle(
"#rho");
419 rho_pf->SetMarkerStyle(20);
420 rho_pf->SetMarkerColor(1);
421 rho_pf->SetMarkerSize(0.5);
422 rho_pf->SetStats(kFALSE);
429 TChain
sim(
"waveburst");
440 mdc.SetBranchAddress(
"time",time);
441 mdc.SetBranchAddress(
"mass",mass);
442 mdc.SetBranchAddress(
"factor",&factor);
443 mdc.SetBranchAddress(
"distance",&distance);
444 mdc.SetBranchAddress(
"mchirp",&mchirp);
445 mdc.SetBranchAddress(
"spin",spin);
452 FILE*
finj = fopen(fname3,
"w");
453 fprintf(finj,
"#GPS@L1 mass1 mass2 distance spinx1 spiny1 spinz1 spinx2 spiny2 spinz2 \n");
455 for(
int g=0;
g<(
int)
mdc.GetEntries();
g++){
459 for(
int i=0;
i<3;
i++){chi[
i] = (spin[
i]*mass[1]+spin[
i+3]*mass[0])/(mass[1]+mass[0]);}
460 D_Chi_inj->Fill(chi[2],distance);
461 D_Chi_injx->Fill(chi[0],distance);
462 D_Chi_injy->Fill(chi[1],distance);
463 inj_events_spin_mtot->Fill(chi[2],mass[1]+mass[0]);
468 factor_events_inj[
i]->Fill(mass[1],mass[0]);
470 factor_events_spin_mtot_inj[
i]->Fill(chi[2],mass[1]+mass[0]);
476 inj_events->Fill(mass[1],mass[0]);
477 D_Mtot_inj->Fill(mass[1]+mass[0],distance);
478 D_Mchirp_inj->Fill(mchirp,distance);
479 D_q_inj->Fill(mass[0]/mass[1],distance);
481 fprintf(finj,
"%10.3f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f %3.2f\n",time[0],mass[0],mass[1],distance,spin[0],spin[1],spin[2],spin[3],spin[4],spin[5]);
486 cout <<
"Injected signals: " <<
mdc.GetEntries() << endl;
497 float iSNR[3],sSNR[3];
498 sim.SetBranchAddress(
"mass",mass);
499 sim.SetBranchAddress(
"factor",&factor);
501 sim.SetBranchAddress(
"distance",&distance);
502 sim.SetBranchAddress(
"mchirp",&mchirp);
504 sim.SetBranchAddress(
"range",range);
505 sim.SetBranchAddress(
"chirp",chirp);
507 sim.SetBranchAddress(
"rho",rho);
508 sim.SetBranchAddress(
"netcc",netcc);
509 sim.SetBranchAddress(
"neted",&neted);
510 sim.SetBranchAddress(
"ecor",&ecor);
511 sim.SetBranchAddress(
"penalty",&penalty);
512 sim.SetBranchAddress(
"time",time);
513 sim.SetBranchAddress(
"iSNR",iSNR);
514 sim.SetBranchAddress(
"sSNR",sSNR);
515 sim.SetBranchAddress(
"spin",spin);
518 cout<<
"Adding hveto flags.."<<endl;
519 UChar_t veto_hveto_L1, veto_hveto_H1,veto_hveto_V1;
520 sim.SetBranchAddress(
"veto_hveto_L1",&veto_hveto_L1);
521 sim.SetBranchAddress(
"veto_hveto_H1",&veto_hveto_H1);
522 sim.SetBranchAddress(
"veto_hveto_V1",&veto_hveto_V1);
526 cout<<
"Adding cat3 flags.."<<endl;
527 UChar_t veto_cat3_L1, veto_cat3_H1,veto_cat3_V1;
528 sim.SetBranchAddress(
"veto_cat3_L1",&veto_cat3_L1);
529 sim.SetBranchAddress(
"veto_cat3_H1",&veto_cat3_H1);
530 sim.SetBranchAddress(
"veto_cat3_V1",&veto_cat3_V1);
543 for(
int i = 0; i <NBINS_MTOT+1; i++){
544 for(
int j = 0;
j <NBINS_SPIN+1;
j++){
545 spin_mtot_volume[
i][
j] = 0.;
546 error_spin_mtot_volume[
i][
j] = 0.;
549 spin_mtot_radius[
i][
j] = 0.;
550 error_spin_mtot_radius[
i][
j] = 0.;
559 FILE* fev = fopen(fname2,
"w");
560 fprintf(fev,
"#GPS@L1 rho iSNR sSNR \n");
566 error_volume[
i][
j] = 0.;
567 volume_first_shell[
i][
j] = 0.;
568 error_volume_first_shell[
i][
j] = 0.;
570 error_radius[
i][
j] = 0.;
575 double dV,
dV1,dV_spin_mtot;
577 for(
int g=0;
g<(
int)
sim.GetEntries();
g++){
580 if(netcc[0]<=
T_cor){
continue;}
581 if((time[0]-time[nIFO])<-
T_win || (time[0]-time[nIFO])>2*
T_win) {
continue;}
582 if (
T_vED>0) {
if(neted/ecor>=
T_vED){
continue;}}
585 if (++cnt%1000==0) {cout << cnt <<
" - ";}
586 Dt->Fill(time[0]-time[nIFO]);
596 if(range[1]==0.0){
continue;}
597 D_Mtot_rec->Fill(mass[1]+mass[0],range[1]);
598 D_Mchirp_rec->Fill(chirp[0],range[1]);
599 D_q_rec->Fill(mass[0]/mass[1],range[1]);
601 rhocc->Fill(netcc[0],rho[
pp_irho]);
603 float chi2 = penalty>0 ? log10(penalty) : 0;
604 rho_pf->Fill(chi2,rho[pp_irho]);
608 l = TMath::FloorNint((m2-min_mass2)/MASS_BIN);
609 if(l>NBINS_mass2+1){cout<<
"l="<<l<<
" is larger than NBINS_mass2="<<NBINS_mass2<<
" m2="<<m2<<
" min_mass2="<<min_mass2<<endl;
exit(1);}
610 m = TMath::FloorNint((m1-MIN_MASS)/MASS_BIN);
611 if(m>NBINS_mass+1){cout<<
"m="<<m<<
" is larger than NBINS_mass="<<NBINS_mass<<
" m1="<<m1<<
" MIN_MASS="<<MIN_MASS<<endl;
exit(1);}
612 rec_events->Fill(mass[1],mass[0]);
614 for(
int i=0;i<3;i++){chi[
i] = (spin[
i]*mass[1]+spin[i+3]*mass[0])/(mass[1]+mass[0]);}
615 D_Chi_rec->Fill(chi[2],range[1]);
616 D_Chi_recx->Fill(chi[0],range[1]);
617 D_Chi_recy->Fill(chi[1],range[1]);
618 rec_events_spin_mtot->Fill(chi[2],mass[1]+mass[0]);
619 mt = TMath::FloorNint((m1+m2-minMtot)/MASS_BIN/2.);
620 if(mt>NBINS_MTOT){cout<<
"mt="<<mt<<
" is larger than NBINS_MTOT="<<NBINS_MTOT<<
" Mtot="<<m1+m2<<
" minMtot="<<minMtot<<endl;
exit(1);}
621 cz = TMath::FloorNint((chi[2]-MINCHI)/CHI_BIN);
622 if(cz>NBINS_SPIN){cout<<
"cz="<<cz<<
" is larger than NBINS_SPIN="<<NBINS_SPIN<<
" chi[2]="<<chi[2]<<
" MINCHI="<<MINCHI<<endl;
exit(1);}
628 for(
int i = 0; i<
nfactor; i++){
631 dV = 1./(pow(factor,3));
635 else if (DDistrUniform){
637 dV = pow(range[1],2)/
factor;
641 else {cout <<
"No defined distance distribution?????! WARNING: Assuming uniform in volume"<<endl;
643 dV = 1./(pow(factor,3));
645 dV1 = dV/factor_events_inj[
i]->GetEntries();
648 dV_spin_mtot = dV/factor_events_spin_mtot_inj[
i]->GetBinContent(cz+1,mt+1);
650 dV /= factor_events_inj[
i]->GetBinContent(m+1,l+1);
653 if(
fabs(factor-
FACTORS[nfactor-1])<TOLERANCE){factor_events_rec->Fill(mass[1],mass[0]);
660 for(
int i=0; i<
nT; i++){
663 eVrho[
i]+=pow(dV1,2);
673 fprintf(fev,
"%10.3f %3.2f %3.2f %3.2f\n",time[0],rho[pp_irho],sqrt(iSNR[0]+iSNR[1]+iSNR[2]),sqrt(sSNR[0]+sSNR[1]+sSNR[2]));
679 error_volume[
m][
l] += pow(dV,2);
682 spin_mtot_volume[
mt][
cz] += dV_spin_mtot;
683 error_spin_mtot_volume[
mt][
cz] += pow(dV_spin_mtot,2);
690 cout <<
"Recovered entries: " << cnt << endl;
691 cout <<
"Recovered entries: " << cnt2 << endl;
692 cout<<
"Recovered entries vetoed: "<<countv<<endl;
693 cout <<
"dV : "<<dV<<
" dV1 : "<<dV1<<endl;
694 for(
int i=0; i<
RHO_NBINS; i++){eVrho[
i]=TMath::Sqrt(eVrho[i]);}
695 cout <<
"Vrho[0] = "<<Vrho[0] <<
" +/- "<<eVrho[0]<<endl;
696 cout<<
"Vrho[RHO_NBINS-1] = "<<Vrho[RHO_NBINS-1] <<
" +/- "<<eVrho[RHO_NBINS-1] <<endl;
698 inj_events->Draw(
"colz");
700 int MAX_AXIS_Z = inj_events->GetBinContent(inj_events->GetMaximumBin()) + 1;
701 inj_events->GetZaxis()->SetRangeUser(0,MAX_AXIS_Z);
705 sprintf(inj_title,
"Injected events");
711 TPaveText *
p_inj =
new TPaveText(0.325301,0.926166,0.767068,0.997409,
"blNDC");
712 p_inj->SetBorderSize(0);
713 p_inj->SetFillColor(0);
714 p_inj->SetTextColor(1);
715 p_inj->SetTextFont(32);
716 p_inj->SetTextSize(0.045);
717 TText *
text = p_inj->AddText(inj_title);
749 c1->Update(); c1->SaveAs(fname);
754 if(
pp_rho_log) c1->SetLogy(kTRUE);
else c1->SetLogy(kFALSE);
755 rho_pf->Draw(
"colz");
757 c1->Update(); c1->SaveAs(fname);
765 char newcut[2048]=
"";
766 char newcut2[2048]=
"";
774 ptitle=
"Number of reconstructed events as a function of injected SNR";
775 gStyle->SetOptStat(0);
777 xtitle =
"Injected network snr";
785 sprintf(sel,
"sqrt(pow(snr[%d],2)",0);
786 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + pow(snr[%d],2)",sel,i);}
788 sprintf(sel,
"%s)>>hist(500)",sel);
792 cout <<
"nmdc : " << nmdc << endl;
794 TH2F *htemp = (TH2F*)gPad->GetPrimitive(
"hist");
795 htemp->GetXaxis()->SetTitle(xtitle);
796 htemp->GetYaxis()->SetTitle(ytitle);
800 htemp->GetYaxis()->SetRangeUser(1, pow(10.,TMath::Ceil(TMath::Log10(htemp->GetMaximum()))));
801 htemp->SetLineColor(kBlack);
802 htemp->SetLineWidth(3);
803 sprintf(newcut,
"(((time[0]-time[%d])>-%g) || (time[0]-time[%d])<%g) && rho[%d]> %g",nIFO,
T_win,nIFO,2*
T_win,pp_irho,
T_out);
806 sprintf(sel,
"sqrt(iSNR[%d]",0);
807 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + iSNR[%d]",sel,i);}
808 sprintf(sel,
"%s)>>hist2(500)",sel);
809 cout <<
"cut " << newcut << endl;
813 sim.Draw(sel,newcut,
"same");
814 TH2F *htemp2 = (TH2F*)gPad->GetPrimitive(
"hist2");
815 htemp2->SetFillColor(kRed);
816 htemp2->SetFillStyle(3017);
817 htemp2->SetLineColor(kRed);
818 htemp2->SetLineWidth(2);
821 cout <<
"nwave : " << nwave << endl;
826 cout <<
"final cut " << newcut2 << endl;
828 sel_fin.ReplaceAll(
"hist2",
"hist3");
832 sim.Draw(sel_fin,newcut2,
"same");
833 TH2F *htemp3 = (TH2F*)gPad->GetPrimitive(
"hist3");
834 htemp3->SetFillColor(kBlue);
835 htemp3->SetFillStyle(3017);
836 htemp3->SetLineColor(kBlue);
837 htemp3->SetLineWidth(2);
839 cout <<
"nwave_final : " << nwave_final << endl;
842 sprintf(title,
"%s",ptitle.Data());
843 htemp->SetTitle(title);
845 leg_snr =
new TLegend(0.6,0.755,0.885,0.923,
"",
"brNDC");
846 sprintf(lab,
"Injections Average SNR: %g",htemp->GetMean());
848 sprintf(lab,
"Injected: %i",nmdc);
849 leg_snr->AddEntry(htemp, lab,
"l");
850 sprintf(lab,
"Found(minimal cuts): %i",nwave);
851 leg_snr->AddEntry(htemp2, lab,
"l");
852 sprintf(lab,
"Found(final cuts): %i",nwave_final);
853 leg_snr->AddEntry(htemp3, lab,
"l");
863 sim.SetMarkerStyle(20);
864 sim.SetMarkerSize(0.5);
865 sim.SetMarkerColor(kRed);
868 sprintf(sel,
"sqrt(sSNR[%d]",0);
869 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + sSNR[%d]",sel,i);}
870 sprintf(sel,
"%s):sqrt(iSNR[%d]",sel,0);
871 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + iSNR[%d]",sel,i);}
872 sprintf(sel,
"%s)>>hist4(500)",sel);
873 sim.Draw(sel,newcut,
"");
874 TH2F *
htemp4 = (TH2F*)gPad->GetPrimitive(
"hist4");
875 htemp4->GetXaxis()->SetTitle(
"Injected network snr");
876 htemp4->GetYaxis()->SetTitle(
"Estimated network snr");
877 htemp4->GetXaxis()->SetRangeUser(5, pow(10.,TMath::Ceil(TMath::Log10(htemp4->GetMaximum()))));
878 htemp4->GetYaxis()->SetRangeUser(5, pow(10.,TMath::Ceil(TMath::Log10(htemp4->GetMaximum()))));
883 sim.SetMarkerColor(kBlue);
884 sim.Draw(sel,newcut2,
"same");
890 sprintf(fname,
"%s/Estimated_snr_vs_Injected_snr.eps",
netdir);
896 sprintf(sel,
"(sqrt(sSNR[%d]",0);
897 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + sSNR[%d]",sel,i);}
898 sprintf(sel,
"%s)-sqrt(iSNR[%d]",sel,0);
899 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + iSNR[%d]",sel,i);}
900 sprintf(sel,
"%s))/sqrt(iSNR[%d]",sel,0);
901 for(
int i=1;i<
nIFO;i++){
sprintf(sel,
"%s + iSNR[%d]",sel,i);}
903 cout <<
"Selection: "<< sel <<endl;
905 gStyle->SetOptStat(1);
906 gStyle->SetOptFit(1);
909 sim.Draw(sel,newcut2);
910 TH2F *
htemp5 = (TH2F*)gPad->GetPrimitive(
"hist5");
911 htemp5->GetXaxis()->SetTitle(
"(Estimated snr -Injected snr)/Injected snr");
912 htemp5->GetYaxis()->SetTitle(
"Counts");
913 sim.GetHistogram().Fit(
"gaus");
919 gStyle->SetOptStat(0);
920 gStyle->SetOptFit(0);
929 D_Mtot_inj->GetYaxis()->SetRangeUser(10.,3*MAXDISTANCE);
930 D_Mtot_inj->Draw(
"p");
931 D_Mtot_rec->Draw(
"p same");
933 leg_D =
new TLegend(0.679719,0.156425,0.997992,0.327409,
"",
"brNDC");
934 sprintf(lab,
"Injections: %i",(
int)
mdc.GetEntries());
935 leg_D->AddEntry(
"",lab,
"a");
937 leg_D->AddEntry(D_Mtot_rec, lab,
"p");
940 leg_D->AddEntry(D_Mtot_inj,lab,
"p");
942 leg_D->SetFillColor(0);
952 D_Mchirp_inj->GetYaxis()->SetRangeUser(10.,3*MAXDISTANCE);
954 D_Mchirp_inj->Draw(
"p");
955 D_Mchirp_rec->Draw(
"p same");
964 D_Chi_inj->GetYaxis()->SetRangeUser(10.,3*MAXDISTANCE);
966 D_Chi_inj->Draw(
"p");
967 D_Chi_rec->Draw(
"p same");
976 D_q_inj->GetYaxis()->SetRangeUser(10.,3*MAXDISTANCE);
978 D_q_rec->Draw(
"p same");
986 leg_D =
new TLegend(0.679719,0.826425,0.997992,0.997409,
"",
"brNDC");
987 sprintf(lab,
"Injections: %i",(
int)
mdc.GetEntries());
988 leg_D->AddEntry(
"",lab,
"a");
990 leg_D->AddEntry(D_Mtot_rec, lab,
"p");
993 leg_D->AddEntry(D_Mtot_inj,lab,
"p");
995 leg_D->SetFillColor(0);
999 TH1D*
D_inj = D_Mtot_inj->ProjectionY();
1000 D_inj->GetXaxis()->SetTitle(
"Distance (Mpc)");
1001 D_inj->GetYaxis()->SetTitle(
"Events");
1002 D_inj->GetXaxis()->SetTickLength(0.02);
1003 D_inj->GetYaxis()->SetTickLength(0.01);
1004 D_inj->GetXaxis()->SetTitleOffset(1.3);
1005 D_inj->GetYaxis()->SetTitleOffset(1.3);
1006 D_inj->GetXaxis()->CenterTitle(kTRUE);
1007 D_inj->GetYaxis()->CenterTitle(kTRUE);
1008 D_inj->GetXaxis()->SetTitleFont(42);
1009 D_inj->GetXaxis()->SetLabelFont(42);
1010 D_inj->GetYaxis()->SetTitleFont(42);
1011 D_inj->GetYaxis()->SetLabelFont(42);
1012 D_inj->SetLineWidth(4);
1013 D_inj->SetLineColor(2);
1014 D_inj->SetFillColor(2);
1015 D_inj->SetFillStyle(3017);
1017 D_inj->GetXaxis()->SetRangeUser(10.,MAX_EFFECTIVE_RADIUS);
1018 D_inj->GetYaxis()->SetRangeUser(0.1,pow(10.,TMath::Ceil(TMath::Log10(D_inj->GetMaximum()))));
1021 TH1D*
D_rec=D_Mtot_rec->ProjectionY();
1022 D_rec->SetLineWidth(4);
1023 D_rec->SetLineColor(4);
1024 D_rec->SetFillColor(4);
1025 D_rec->SetFillStyle(3017);
1027 D_rec->Draw(
"lp same");
1029 TPaveText *
p_radius =
new TPaveText(0.125301,0.926166,0.567068,0.997409,
"blNDC");
1030 p_radius->SetBorderSize(0);
1031 p_radius->SetFillColor(0);
1032 p_radius->SetTextColor(1);
1033 p_radius->SetTextFont(32);
1034 p_radius->SetTextSize(0.045);
1035 TText *text = p_radius->AddText(
"Found&Lost vs distance");
1038 sprintf(fname,
"%s/Injected_distances_distribution.png",
netdir);
1044 TH1D*
Mtot_inj = D_Mtot_inj->ProjectionX();
1045 Mtot_inj->GetXaxis()->SetTitle(
"Total Mass");
1046 Mtot_inj->GetYaxis()->SetTitle(
"Events");
1047 Mtot_inj->GetXaxis()->SetTickLength(0.02);
1048 Mtot_inj->GetYaxis()->SetTickLength(0.01);
1049 Mtot_inj->GetXaxis()->SetTitleOffset(1.3);
1050 Mtot_inj->GetYaxis()->SetTitleOffset(1.3);
1051 Mtot_inj->GetXaxis()->CenterTitle(kTRUE);
1052 Mtot_inj->GetYaxis()->CenterTitle(kTRUE);
1053 Mtot_inj->GetXaxis()->SetTitleFont(42);
1054 Mtot_inj->GetXaxis()->SetLabelFont(42);
1055 Mtot_inj->GetYaxis()->SetLabelFont(42);
1056 Mtot_inj->SetLineWidth(4);
1057 Mtot_inj->SetLineColor(2);
1058 Mtot_inj->SetFillColor(2);
1059 Mtot_inj->SetFillStyle(3017);
1060 Mtot_inj->SetTitle(0);
1062 Mtot_inj->GetXaxis()->SetRangeUser(MINMtot,MAXMtot);
1063 Mtot_inj->GetYaxis()->SetRangeUser(1,pow(10.,TMath::Ceil(TMath::Log10(Mtot_inj->GetMaximum()))));
1064 Mtot_inj->Draw(
"lp");
1065 TH1D*
Mtot_rec = D_Mtot_rec->ProjectionX();
1066 Mtot_rec->SetLineWidth(4);
1067 Mtot_rec->SetLineColor(4);
1068 Mtot_rec->SetFillColor(4);
1069 Mtot_rec->SetFillStyle(3017);
1070 Mtot_rec->SetTitle(0);
1071 Mtot_rec->Draw(
"lp same");
1077 TH1D*
Mchirp_inj = D_Mchirp_inj->ProjectionX();
1078 Mchirp_inj->GetXaxis()->SetTitle(
"Chirp Mass");
1079 Mchirp_inj->GetYaxis()->SetTitle(
"Events");
1080 Mchirp_inj->GetXaxis()->SetTickLength(0.02);
1081 Mchirp_inj->GetYaxis()->SetTickLength(0.01);
1082 Mchirp_inj->GetXaxis()->SetTitleOffset(1.3);
1083 Mchirp_inj->GetYaxis()->SetTitleOffset(1.3);
1084 Mchirp_inj->GetXaxis()->CenterTitle(kTRUE);
1085 Mchirp_inj->GetYaxis()->CenterTitle(kTRUE);
1086 Mchirp_inj->GetXaxis()->SetTitleFont(42);
1087 Mchirp_inj->GetXaxis()->SetLabelFont(42);
1088 Mchirp_inj->GetYaxis()->SetTitleFont(42);
1089 Mchirp_inj->GetYaxis()->SetLabelFont(42);
1090 Mchirp_inj->SetLineWidth(4);
1091 Mchirp_inj->SetLineColor(2);
1092 Mchirp_inj->SetFillColor(2);
1093 Mchirp_inj->SetFillStyle(3017);
1094 Mchirp_inj->SetTitle(0);
1096 Mchirp_inj->GetXaxis()->SetRangeUser(MINCHIRP,MAXCHIRP);
1097 Mchirp_inj->GetYaxis()->SetRangeUser(1,pow(10.,TMath::Ceil(TMath::Log10(Mtot_inj->GetMaximum()))));
1098 Mchirp_inj->Draw(
"lp");
1099 TH1D*
Mchirp_rec = D_Mchirp_rec->ProjectionX();
1100 Mchirp_rec->SetLineWidth(4);
1101 Mchirp_rec->SetLineColor(4);
1102 Mchirp_rec->SetFillColor(4);
1103 Mchirp_rec->SetFillStyle(3017);
1104 Mchirp_rec->SetTitle(0);
1105 Mchirp_rec->Draw(
"lp same");
1112 TH1D* Chi_inj = D_Chi_inj->ProjectionX();
1113 Chi_inj->GetXaxis()->SetTitle(
"#chi_{z}");
1114 Chi_inj->GetYaxis()->SetTitle(
"Events");
1115 Chi_inj->GetXaxis()->SetTickLength(0.02);
1116 Chi_inj->GetYaxis()->SetTickLength(0.01);
1117 Chi_inj->GetXaxis()->SetTitleOffset(1.3);
1118 Chi_inj->GetYaxis()->SetTitleOffset(1.3);
1119 Chi_inj->GetXaxis()->CenterTitle(kTRUE);
1120 Chi_inj->GetYaxis()->CenterTitle(kTRUE);
1121 Chi_inj->GetXaxis()->SetTitleFont(42);
1122 Chi_inj->GetXaxis()->SetLabelFont(42);
1123 Chi_inj->GetYaxis()->SetTitleFont(42);
1124 Chi_inj->GetYaxis()->SetLabelFont(42);
1125 Chi_inj->SetLineWidth(4);
1126 Chi_inj->SetLineColor(2);
1127 Chi_inj->SetFillColor(2);
1128 Chi_inj->SetFillStyle(3017);
1129 Chi_inj->SetTitle(0);
1131 Chi_inj->GetXaxis()->SetRangeUser(MINCHI,MAXCHI);
1132 Chi_inj->GetYaxis()->SetRangeUser(1,pow(10.,TMath::Ceil(TMath::Log10(Mtot_inj->GetMaximum()))));
1133 Chi_inj->Draw(
"lp");
1134 TH1D* Chi_rec = D_Chi_rec->ProjectionX();
1135 Chi_rec->SetLineWidth(4);
1136 Chi_rec->SetLineColor(4);
1137 Chi_rec->SetFillColor(4);
1138 Chi_rec->SetFillStyle(3017);
1139 Chi_rec->SetTitle(0);
1140 Chi_rec->Draw(
"lp same");
1146 TH1D* Chi_injx = D_Chi_injx->ProjectionX();
1147 Chi_injx->SetLineWidth(4);
1148 Chi_injx->SetLineColor(2);
1149 Chi_injx->SetFillColor(2);
1150 Chi_injx->SetFillStyle(3017);
1151 Chi_injx->SetTitle(0);
1152 Chi_injx->Draw(
"lp");
1153 TH1D* Chi_recx = D_Chi_recx->ProjectionX();
1154 Chi_recx->SetLineWidth(4);
1155 Chi_recx->SetLineColor(4);
1156 Chi_recx->SetFillColor(4);
1157 Chi_recx->SetFillStyle(3017);
1158 Chi_recx->SetTitle(0);
1159 Chi_recx->Draw(
"lp same");
1165 TH1D* Chi_injy = D_Chi_injy->ProjectionX();
1166 Chi_injy->SetLineWidth(4);
1167 Chi_injy->SetLineColor(2);
1168 Chi_injy->SetFillColor(2);
1169 Chi_injy->SetFillStyle(3017);
1170 Chi_injy->SetTitle(0);
1171 Chi_injy->Draw(
"lp");
1172 TH1D* Chi_recy = D_Chi_recy->ProjectionX();
1173 Chi_recy->SetLineWidth(4);
1174 Chi_recy->SetLineColor(4);
1175 Chi_recy->SetFillColor(4);
1176 Chi_recy->SetFillStyle(3017);
1177 Chi_recy->SetTitle(0);
1178 Chi_recy->Draw(
"lp same");
1186 TH1D*
q_inj = D_q_inj->ProjectionX();
1187 q_inj->GetXaxis()->SetTitle(
"Mass Ratio");
1188 q_inj->GetYaxis()->SetTitle(
"Events");
1189 q_inj->GetXaxis()->SetTickLength(0.02);
1190 q_inj->GetYaxis()->SetTickLength(0.01);
1191 q_inj->GetXaxis()->SetTitleOffset(1.3);
1192 q_inj->GetYaxis()->SetTitleOffset(1.3);
1193 q_inj->GetXaxis()->CenterTitle(kTRUE);
1194 q_inj->GetYaxis()->CenterTitle(kTRUE);
1195 q_inj->GetXaxis()->SetTitleFont(42);
1196 q_inj->GetXaxis()->SetLabelFont(42);
1197 q_inj->GetYaxis()->SetTitleFont(42);
1198 q_inj->GetYaxis()->SetLabelFont(42);
1199 q_inj->SetLineWidth(4);
1200 q_inj->SetLineColor(2);
1201 q_inj->SetFillColor(2);
1202 q_inj->SetFillStyle(3017);
1205 q_inj->GetXaxis()->SetRangeUser(MINRATIO,MAXRATIO);
1206 q_inj->GetYaxis()->SetRangeUser(1,pow(10.,TMath::Ceil(TMath::Log10(Mtot_inj->GetMaximum()))));
1208 TH1D*
q_rec = D_q_rec->ProjectionX();
1209 q_rec->SetLineWidth(4);
1210 q_rec->SetLineColor(4);
1211 q_rec->SetFillColor(4);
1212 q_rec->SetFillStyle(3017);
1214 q_rec->Draw(
"lp same");
1230 TH2F *
efficiency = (TH2F*) rec_events->Clone();
1231 efficiency->SetName(
"efficiency");
1232 efficiency->Divide(inj_events);
1233 efficiency->GetZaxis()->SetRangeUser(0,1.0);
1234 efficiency->SetTitle(
"");
1237 efficiency->Draw(
"colz text");
1240 TExec *
ex1 =
new TExec(
"ex1",
"gStyle->SetPaintTextFormat(\".2f\");");
1245 sprintf(eff_title,
"Efficiency");
1247 sprintf(eff_title,
"%s (%.1f < #chi < %.1f)",eff_title,MIN_CHI,MAX_CHI);
1251 TPaveText *
p_eff =
new TPaveText(0.325301,0.926166,0.767068,0.997409,
"blNDC");
1252 p_eff->SetBorderSize(0);
1253 p_eff->SetFillColor(0);
1254 p_eff->SetTextColor(1);
1255 p_eff->SetTextFont(32);
1256 p_eff->SetTextSize(0.045);
1257 TText *text = p_eff->AddText(eff_title);
1263 sprintf(fname,
"%s/Efficiency_mass1_mass2_chi_%f_%f.png",
netdir,MIN_CHI,MAX_CHI);
1279 float volume_internal_sphere = 4.*
TMath::Pi()*pow(minDistance/1000.,3)/(3*pow(
FACTORS[nfactor-1],3));
1281 else if (DDistrUniform){
1283 float volume_internal_sphere = 4.*
TMath::Pi()*minDistance/1000./
FACTORS[nfactor-1];
1285 else {cout <<
"No defined distance distribution?????!"<<endl;
exit(1);}
1288 cout <<
"Shell volume: " <<
shell_volume <<
", internal sphere volume: " << volume_internal_sphere << endl;
1291 efficiency_first_shell->Divide(factor_events_inj[nfactor-1]);
1304 volume_first_shell[
j][
k] = efficiency_first_shell->GetBinContent(
j+1,
k+1);
1305 if(factor_events_rec->GetBinContent(
j+1,
k+1) != 0.) {
1306 error_volume_first_shell[
j][
k] = 1./TMath::Sqrt(factor_events_rec->GetBinContent(
j+1,
k+1));
1310 volume[
j][
k] =
shell_volume*volume[
j][
k] + volume_internal_sphere*volume_first_shell[
j][
k];
1312 error_volume[
j][
k] =
shell_volume*TMath::Sqrt(error_volume[
j][
k]) + volume_internal_sphere*volume_first_shell[
j][
k]*error_volume_first_shell[
j][
k];
1314 radius[
j][
k] = pow(3.*volume[
j][k]/(4*
TMath::Pi()),1./3);
1315 if(volume[
j][k] != 0.) error_radius[
j][
k] = (1./3)*pow(3./(4*
TMath::Pi()),1./3)*pow(1./pow(volume[
j][k],2),1./3)*error_volume[
j][k];
1319 cout <<
"Average Volume at threshold V0 = "<<V0/massbins <<endl;
1322 TH2F*
h_radius =
new TH2F(
"h_radius",
"",NBINS_mass,MIN_MASS,MAX_MASS,NBINS_mass2,min_mass2,max_mass2);
1323 h_radius->GetXaxis()->SetRangeUser(MIN_plot_mass1,MAX_plot_mass1);
1324 h_radius->GetYaxis()->SetRangeUser(MIN_plot_mass2,MAX_plot_mass2);
1325 h_radius->GetXaxis()->SetTitle(
"Mass 1 (M_{#odot})");
1326 h_radius->GetYaxis()->SetTitle(
"Mass 2 (M_{#odot})");
1327 h_radius->GetXaxis()->SetTitleOffset(1.3);
1328 h_radius->GetYaxis()->SetTitleOffset(1.25);
1329 h_radius->GetXaxis()->CenterTitle(kTRUE);
1330 h_radius->GetYaxis()->CenterTitle(kTRUE);
1331 h_radius->GetXaxis()->SetNdivisions(410);
1332 h_radius->GetYaxis()->SetNdivisions(410);
1333 h_radius->GetXaxis()->SetTickLength(0.01);
1334 h_radius->GetYaxis()->SetTickLength(0.01);
1335 h_radius->GetZaxis()->SetTickLength(0.01);
1336 h_radius->GetXaxis()->SetTitleFont(42);
1337 h_radius->GetXaxis()->SetLabelFont(42);
1338 h_radius->GetYaxis()->SetTitleFont(42);
1339 h_radius->GetYaxis()->SetLabelFont(42);
1340 h_radius->GetZaxis()->SetLabelFont(42);
1341 h_radius->GetZaxis()->SetLabelSize(0.03);
1342 h_radius->SetTitle(
"");
1347 h_radius->SetBinContent(i,
j,radius[i-1][
j-1]);
1348 h_radius->SetBinError(i,
j,error_radius[i-1][
j-1]);
1353 h_radius->SetContour(
NCont);
1354 h_radius->SetEntries(1);
1355 h_radius->Draw(
"colz text colsize=2");
1357 h_radius->GetZaxis()->SetRangeUser(0,MAX_EFFECTIVE_RADIUS/2.);
1359 TExec *
ex2 =
new TExec(
"ex2",
"gStyle->SetPaintTextFormat(\".0f\");");
1365 sprintf(radius_title,
"%s : Effective radius (Mpc)",networkname);
1368 TPaveText *p_radius =
new TPaveText(0.325301,0.926166,0.767068,0.997409,
"blNDC");
1369 p_radius->SetBorderSize(0);
1370 p_radius->SetFillColor(0);
1371 p_radius->SetTextColor(1);
1372 p_radius->SetTextFont(32);
1373 p_radius->SetTextSize(0.045);
1374 TText *text = p_radius->AddText(radius_title);
1380 TH2F *chirp_mass =
new TH2F(
"Chirp_Mass",
"",NBINS_mass*10,MIN_plot_mass1,MAX_plot_mass1*1.1,NBINS_mass2*10,MIN_plot_mass2,MAX_plot_mass2*1.1);
1382 for (Int_t i = 0; i < NBINS_mass*10; i++) {
1383 for(Int_t
j = 0;
j < NBINS_mass2*10;
j++){
1384 M1=MIN_plot_mass1+i*(MAX_plot_mass1-MIN_plot_mass1*1.1)/NBINS_mass/10.;
1385 M2=MIN_plot_mass2+
j*(MAX_plot_mass2-MIN_plot_mass2*1.1)/NBINS_mass/10.;
1386 chirp_mass->SetBinContent(i,
j,(
float) TMath::Power(pow(M1*M2,3.)/(M1+M2),1./5));
1391 for(
int i=0;i<
CONTOURS;i++){contours[
i] = TMath::Nint((i+1)*MAXCHIRP/CONTOURS);}
1392 chirp_mass->GetZaxis()->SetRangeUser(0,MAXCHIRP);
1393 chirp_mass->SetContour(CONTOURS, contours);
1396 TCanvas* c1t =
new TCanvas(
"c1t",
"Contour List",610,0,600,600);
1397 c1t->SetTopMargin(0.15);
1400 chirp_mass->Draw(
"CONT Z LIST");
1404 TObjArray *conts = (TObjArray*)gROOT->GetListOfSpecials()->FindObject(
"contours");
1405 TList* contLevel = NULL;
1406 TGraph* curv = NULL;
1413 printf(
"*** No Contours Were Extracted!\n");
1417 TotalConts = conts->GetSize();
1420 printf(
"TotalConts = %d\n", TotalConts);
1423 contLevel = (TList*)conts->At(i);
1424 printf(
"Contour %d has %d Graphs\n", i, contLevel->GetSize());
1425 nGraphs += contLevel->GetSize();
1430 Double_t
x0, y0,
z0;
1432 Tl.SetTextSize(0.02);
1435 for(i = 0; i < TotalConts-1; i++){
1436 contLevel = (TList*)conts->At(i);
1439 printf(
"Z-Level Passed in as: Z = %f\n", z0);
1442 curv = (TGraph*)contLevel->First();
1444 for(
j = 0;
j < contLevel->GetSize();
j++){
1445 point = curv->GetN()-1;
1446 curv->GetPoint(point, x0, y0);
1450 while (((x0 < MIN_plot_mass1)||(x0 > MAX_plot_mass1)||(y0 < MIN_plot_mass2)||(y0 > MAX_plot_mass2))&&(point>0)){
1452 curv->GetPoint(point, x0, y0);
1458 curv->SetLineWidth(1);
1459 curv->SetLineStyle(3);
1462 printf(
"\tGraph: %d -- %d Elements\n", nGraphs,curv->GetN());
1463 printf(
"\tCoordinate Point # %d : x0 = %f y0 = %f \n",point,x0,y0);
1467 gc = (TGraph*)curv->Clone();
1471 sprintf(val,
"#it{M_{c}}=%g",z0);
1473 Tl.DrawLatex(x0-1.,y0+0.5,val);
1485 #ifdef PLOT_MASS_RATIO
1486 TH2F *mass_ratio =
new TH2F(
"Mass_Ratio",
"",NBINS_mass*10,MIN_plot_mass1,MAX_plot_mass1*1.1,NBINS_mass2*10,MIN_plot_mass2,MAX_plot_mass2*1.1);
1490 for(
int i=0; i<NBINS_mass*10; i++) {
1491 for(
int j=0;
j<NBINS_mass*10;
j++){
1493 M1 = MIN_MASS + i*(MAX_plot_mass1-MIN_plot_mass1*1.1)/NBINS_mass/10.;
1494 M2 = MIN_MASS +
j*(MAX_plot_mass2-MIN_plot_mass2*1.1)/NBINS_mass/10.;
1496 mass_ratio->SetBinContent(i,
j,(
float) M1/M2);
1501 Double_t contours2[5];
1509 mass_ratio->SetContour(5, contours2);
1511 TCanvas* c1t2 =
new TCanvas(
"c1t2",
"Contour List2",610,0,600,600);
1512 c1t2->SetTopMargin(0.15);
1515 mass_ratio->Draw(
"CONT Z LIST");
1519 TObjArray *conts2 = (TObjArray*)gROOT->GetListOfSpecials()->FindObject(
"contours");
1520 TList* contLevel2 = NULL;
1521 TGraph* curv2 = NULL;
1527 if(conts2 == NULL){
printf(
"*** No Contours Were Extracted!\n"); TotalConts = 0;
return; }
1528 else{ TotalConts = conts2->GetSize(); }
1529 printf(
"TotalConts = %d\n", TotalConts);
1532 contLevel2 = (TList*)conts2->At(i);
1533 printf(
"Contour %d has %d Graphs\n", i, contLevel2->GetSize());
1534 nGraphs += contLevel2->GetSize();
1538 Double_t
x0, y0,
z0;
1540 Tl2.SetTextSize(0.02);
1545 contLevel2 = (TList*)conts2->At(i);
1548 printf(
"Z-Level Passed in as: Z = %f\n", z0);
1551 curv2 = (TGraph*)contLevel2->First();
1554 for(
j=0;
j<contLevel2->GetSize();
j++){
1556 point = curv2->GetN()-1;
1557 curv2->GetPoint(point, x0, y0);
1559 printf(
"\tCoordinate Point # %d : x0 = %f y0 = %f \n",point,x0,y0);
1561 while(((x0 < MIN_plot_mass1)||(x0 > MAX_plot_mass1-4.)||(y0 < MIN_plot_mass2)||(y0 > MAX_plot_mass2 -2))&&(point>0)){
1562 curv2->GetPoint(point, x0, y0);
1567 curv2->SetLineWidth(1);
1568 curv2->SetLineStyle(3);
1571 printf(
"\tGraph: %d -- %d Elements\n", nGraphs,curv2->GetN());
1572 printf(
"\tCoordinate Point # %d : x0 = %f y0 = %f \n",point,x0,y0);
1576 gc2 = (TGraph*)curv2->Clone();
1579 sprintf(val,
"#it{q}=%.2g",1./z0);
1580 Tl2.DrawLatex(x0,y0,val);
1607 int spin_mtot_bins = 0;
1608 double V0_spin_mtot = 0.0;
1609 for(
int j=0;
j<NBINS_MTOT+1;
j++){
1610 for(
int k=0;
k<NBINS_SPIN+1;
k++){
1617 if(spin_mtot_volume[
j][
k] != 0.) {
1619 V0_spin_mtot += spin_mtot_volume[
j][
k];
1620 error_spin_mtot_volume[
j][
k] =
shell_volume*TMath::Sqrt(error_spin_mtot_volume[
j][
k]);
1622 spin_mtot_radius[
j][
k] = pow(3.*spin_mtot_volume[
j][
k]/(4*
TMath::Pi()),1./3);
1624 error_spin_mtot_radius[
j][
k] = (1./3)*pow(3./(4*
TMath::Pi()),1./3)*pow(1./pow(spin_mtot_volume[
j][
k],2),1./3)*error_spin_mtot_volume[
j][k];
1627 cout<<
j<<
" "<<
k<<
" "<<spin_mtot_volume[
j][
k]<<
" "<<spin_mtot_radius[
j][
k]<<endl;
1630 cout <<
"Average Spin-Mtot Volume at threshold V0 = "<<V0_spin_mtot/spin_mtot_bins <<endl;
1633 TH2F* h_spin_mtot_radius =
new TH2F(
"h_spin_mtot_radius",
"",NBINS_SPIN,MINCHI,MAXCHI,NBINS_MTOT,minMtot,maxMtot);
1636 h_spin_mtot_radius->GetXaxis()->SetTitle(
"#chi_{z}");
1637 h_spin_mtot_radius->GetYaxis()->SetTitle(
"Total Mass (M_{#odot})");
1638 h_spin_mtot_radius->GetXaxis()->SetTitleOffset(1.3);
1639 h_spin_mtot_radius->GetYaxis()->SetTitleOffset(1.25);
1640 h_spin_mtot_radius->GetXaxis()->CenterTitle(kTRUE);
1641 h_spin_mtot_radius->GetYaxis()->CenterTitle(kTRUE);
1642 h_spin_mtot_radius->GetXaxis()->SetNdivisions(410);
1643 h_spin_mtot_radius->GetYaxis()->SetNdivisions(410);
1644 h_spin_mtot_radius->GetXaxis()->SetTickLength(0.01);
1645 h_spin_mtot_radius->GetYaxis()->SetTickLength(0.01);
1646 h_spin_mtot_radius->GetZaxis()->SetTickLength(0.01);
1647 h_spin_mtot_radius->GetXaxis()->SetTitleFont(42);
1648 h_spin_mtot_radius->GetXaxis()->SetLabelFont(42);
1649 h_spin_mtot_radius->GetYaxis()->SetTitleFont(42);
1650 h_spin_mtot_radius->GetYaxis()->SetLabelFont(42);
1651 h_spin_mtot_radius->GetZaxis()->SetLabelFont(42);
1652 h_spin_mtot_radius->GetZaxis()->SetLabelSize(0.03);
1653 h_spin_mtot_radius->SetTitle(
"");
1656 for(
int i=1; i<=NBINS_MTOT+1; i++){
1657 for(
int j=1;
j<=NBINS_SPIN+1;
j++){
1658 h_spin_mtot_radius->SetBinContent(
j,i,spin_mtot_radius[i-1][
j-1]);
1659 h_spin_mtot_radius->SetBinError(
j,i,error_spin_mtot_radius[i-1][
j-1]);
1660 cout<<
j<<
" "<<i<<
" "<<h_spin_mtot_radius->GetBinContent(
j,i)<<endl;
1665 h_spin_mtot_radius->SetContour(
NCont);
1666 h_spin_mtot_radius->SetEntries(1);
1667 h_spin_mtot_radius->Draw(
"colz text colsize=2");
1669 h_spin_mtot_radius->GetZaxis()->SetRangeUser(0,MAX_EFFECTIVE_RADIUS/2.);
1671 TExec *ex2 =
new TExec(
"ex2",
"gStyle->SetPaintTextFormat(\".0f\");");
1676 sprintf(radius_title,
"Effective radius Mtot vs #chi_{z} (Mpc, %.1f < #chi_{z} < %.1f)",MINCHI,MAXCHI);
1680 TPaveText *p_radius =
new TPaveText(0.325301,0.926166,0.767068,0.997409,
"blNDC");
1681 p_radius->SetBorderSize(0);
1682 p_radius->SetFillColor(0);
1683 p_radius->SetTextColor(1);
1684 p_radius->SetTextFont(32);
1685 p_radius->SetTextSize(0.045);
1686 TText *text = p_radius->AddText(radius_title);
1707 Rrho[
i] = pow(3.*Vrho[i]/(4*
TMath::Pi()),1./3);
1708 eRrho[
i] = pow(3./(4*
TMath::Pi()),1./3)*1./3*pow(Vrho[i],-2./3)*eVrho[
i];
1723 if(BKG_NTUPLE==
"True"){
1726 if(gSystem->Getenv(
"CWB_BKG_TREE")==NULL) {
1727 cout <<
"Error : environment CWB_BKG_TREE is not defined!!!" << endl;
exit(1);
1729 Compare_tree=
TString(gSystem->Getenv(
"CWB_BKG_TREE"));
1734 sprintf(net_file_name,
"%s",Compare_tree.Data());
1738 sprintf(net_file_name,
"%s",BKG_NTUPLE);
1739 TString Liv_file_name = BKG_NTUPLE;
1743 Liv_file_name.ReplaceAll(
"wave_",
"live_");
1744 sprintf(liv_file_name,
"%s",Liv_file_name.Data());
1746 cout << net_file_name << endl;
1747 cout << liv_file_name << endl;
1752 TChain
wave(
"waveburst");
1753 TChain liv(
"liveTime");
1754 wave.Add(net_file_name);
1755 liv.Add(liv_file_name);
1760 cout <<
"bkg size : " << bkg_size << endl;
1766 #ifdef SKIP_GETLIVETIME
1767 cout <<
"WARNING!!! Skipping actual calculation of BKG and zero lag live time"<<endl;
1774 cout <<
"Start CWB::CBCTool::getLiveTime of current ntuple : " << endl;
1776 cout<<
"Elapsed time: "<<w.RealTime()<<
" s"<<endl;
1777 cout <<
"Start CWB::CBCTool::getZero(lag)LiveTime of current ntuple : " << endl;
1780 cout<<
"Elapsed time: "<<w.RealTime()<<
" s"<<endl;
1782 liveTot-=zerolagtime;
1786 double OLIVETIME_yr = liveZero/86400./365.;
1787 double BKG_LIVETIME_yr = liveTot/86400./365.;
1788 double OLIVETIME_Myr = OLIVETIME_yr/(1.e6);
1789 double BKG_LIVETIME_Myr = BKG_LIVETIME_yr/(1.e6);
1792 cout <<
"Total live time ---> zero lag: " << liveZero <<
" s, background: " << liveTot <<
" s" << endl;
1793 cout <<
"Total live time ---> zero lag: " << OLIVETIME_yr <<
" yr, background: " << BKG_LIVETIME_yr <<
" yr" << endl;
1794 cout <<
"Total live time ---> zero lag: " << OLIVETIME_Myr <<
" Myr, background: " << BKG_LIVETIME_Myr <<
" Myr" << endl;
1800 char bkg_threshold[256];
1803 sprintf(s1,
"!(lag[%i]==0&&slag[%i]==0)", nIFO, nIFO);
1804 #if defined(HVETO_VETO) || defined(CAT3_VETO)
1810 sprintf(
SEL,
"rho[%d]",pp_irho);
1811 wave.Draw(
SEL,bkg_threshold,
"goff");
1812 int sel_events =
wave.GetSelectedRows();
1813 const int bkg_entries = sel_events;
1816 double* rho_bkg=
wave.GetV1();
1819 cout <<
"Threshold on background events:" << endl;
1820 cout << bkg_threshold << endl;
1821 cout <<
"Background events above thresholds: " << bkg_entries << endl;
1823 Int_t *
index =
new Int_t[bkg_entries];
1825 TMath::Sort(bkg_entries,rho_bkg,index);
1826 double RHO_MAX = ceil(rho_bkg[index[0]]*1.05);
1827 double VRHO[bkg_entries];
1828 for(
int i = 0 ; i < bkg_entries ; i++) {VRHO[
i] = rho_bkg[index[
i]];}
1830 cout <<
"Background loudest event: " << VRHO[0] <<
", largest considered rho: " << RHO_MAX << endl;
1834 cout <<
"Opening lag: " << OPEN_LAG << endl;
1837 sprintf(s2,
"(lag[%i]==%i&&slag[%i]==0)", nIFO, OPEN_LAG, nIFO);
1839 TString lag_cut = bkg_threshold;
1840 lag_cut.ReplaceAll(s1,s2); cout<<lag_cut.Data()<<endl;
1842 wave.Draw(
SEL,lag_cut,
"goff");
1843 int lag_events =
wave.GetSelectedRows();
1844 const int fl_entries = lag_events;
1846 double* rho_lag =
wave.GetV1();
1848 Int_t *indexl =
new Int_t[fl_entries];
1849 TMath::Sort(fl_entries,rho_lag,indexl);
1851 cout <<
"Total entries in lag["<<OPEN_LAG <<
"]: " << lag_events << endl;
1854 double LFAD[fl_entries];
1855 double LRHO[fl_entries];
1856 double LMU[fl_entries];
1858 for(
int i = 0 ; i < fl_entries ; i++) {LRHO[
i] = rho_lag[indexl[
i]]; LFAD[
i] = 0.0;LMU[
i] = 0.0;}
1869 cout<<
"Mass averaged Visible volume @rho="<<
RHO_MIN<<
" : "<<Vrho[0]<<
" on "<<massbins<<
" mass bins" <<endl;
1870 cout<<
"OLIVETIME_Myr : "<<OLIVETIME_Myr<<
" shell_volume : "<<shell_volume<<endl;
1879 TGraph* grtmp =
new TGraph(RHO_NBINS,Trho,Vrho);
1881 f2->SetParameters(500.,-2.5,0.0);
1882 grtmp->Fit(
"f2",
"R");
1884 grtmp->SetMarkerStyle(20);
1885 grtmp->SetMarkerSize(1.0);
1887 TMultiGraph *multigraph =
new TMultiGraph();
1888 multigraph->Add(grtmp);
1889 multigraph->Paint(
"AP");
1890 multigraph->GetHistogram()->GetXaxis()->SetTitle(
"#rho");
1891 multigraph->GetHistogram()->GetXaxis()->SetRangeUser(
RHO_MIN,RHO_MAX);
1892 multigraph->GetHistogram()->GetYaxis()->SetRangeUser(f2->Eval(RHO_MAX),f2->Eval(
RHO_MIN));
1893 multigraph->GetHistogram()->GetYaxis()->SetTitle(
"Productivity(Mpc^{3} Myr)");
1894 multigraph->GetXaxis()->SetTitleOffset(1.3);
1895 multigraph->GetYaxis()->SetTitleOffset(1.25);
1896 multigraph->GetXaxis()->SetTickLength(0.01);
1897 multigraph->GetYaxis()->SetTickLength(0.01);
1898 multigraph->GetXaxis()->CenterTitle(kTRUE);
1899 multigraph->GetYaxis()->CenterTitle(kTRUE);
1900 multigraph->GetXaxis()->SetTitleFont(42);
1901 multigraph->GetXaxis()->SetLabelFont(42);
1902 multigraph->GetYaxis()->SetTitleFont(42);
1903 multigraph->GetYaxis()->SetLabelFont(42);
1904 multigraph->GetYaxis()->SetMoreLogLabels(kTRUE);
1905 multigraph->GetYaxis()->SetNoExponent(kTRUE);
1909 gStyle->SetOptFit(kTRUE);
1911 multigraph->Draw(
"ALP");
1912 sprintf(radius_title,
"%s : Productivity (%s) ", networkname, waveform.Data());
1914 TText *text = p_radius->AddText(radius_title);
1923 double VFAD[bkg_entries];
1925 double MU[bkg_entries];
1931 double K = OLIVETIME_Myr/BKG_LIVETIME_Myr;
1932 for (
int i = 0;i<bkg_entries;i++){
1935 dFAD = 1.0/f2->Eval(VRHO[i]);
1941 MU[
i] = VFAD[
i]/dFAD ;
1945 while((VRHO[i]<=LRHO[lag_cnt])&&lag_cnt < fl_entries){
1948 cout << i+
j <<
" Rho : " << VRHO[
i] <<
" Productivity : " << MU[
i]/VFAD[
i] <<
" FAD : "<<VFAD[
i]<<
" MU : "<<MU[
i]<< endl;
1949 if (i==0){cout <<
"BEWARE!!! Loudest lag event larger than loudest bkg event: "<< LRHO[lag_cnt] <<
" "<<VRHO[0] <<endl;LFAD[lag_cnt]=FAD;LMU[lag_cnt] = MU[
i];lag_cnt++;}
1952 LFAD[lag_cnt] = (VFAD[
i]-VFAD[i-1])/(VRHO[i]-VRHO[i-1])*(LRHO[lag_cnt]-VRHO[i-1])+VFAD[i-1];
1953 LMU[lag_cnt] = (MU[
i]-MU[i-1])/(VRHO[i]-VRHO[i-1])*(LRHO[lag_cnt]-VRHO[i-1])+MU[i-1];
1954 cout <<
"Lag["<< OPEN_LAG <<
"]: #"<< lag_cnt <<
" rho=" << LRHO[lag_cnt] <<
" FAD="<<LFAD[lag_cnt] <<
" MU="<<LMU[lag_cnt]<<endl;
1967 cout <<
"Loop ends..."<<endl;
1971 gStyle->SetOptFit(kFALSE);
1972 TGraph* grFAD =
new TGraph(bkg_entries,VRHO,VFAD);
1974 grFAD->GetHistogram()->GetXaxis()->SetRangeUser(
RHO_MIN,RHO_MAX);
1976 grFAD->GetXaxis()->SetTitle(
"#rho");
1977 grFAD->GetYaxis()->SetTitle(
"FAD (Mpc^{-3} Myr^{-1})");
1978 grFAD->GetXaxis()->SetTitleOffset(1.3);
1979 grFAD->GetYaxis()->SetTitleOffset(1.25);
1980 grFAD->GetXaxis()->SetTickLength(0.01);
1981 grFAD->GetYaxis()->SetTickLength(0.01);
1982 grFAD->GetXaxis()->CenterTitle(kTRUE);
1983 grFAD->GetYaxis()->CenterTitle(kTRUE);
1984 grFAD->GetXaxis()->SetTitleFont(42);
1985 grFAD->GetXaxis()->SetLabelFont(42);
1986 grFAD->GetYaxis()->SetTitleFont(42);
1987 grFAD->GetYaxis()->SetLabelFont(42);
1988 grFAD->SetMarkerStyle(20);
1989 grFAD->SetMarkerSize(1.0);
1990 grFAD->SetMarkerColor(1);
1991 grFAD->SetLineColor(kBlue);
1992 grFAD->SetTitle(
"");
1996 TGraph* gr_LAG =
new TGraph(fl_entries,LRHO,LFAD);
1997 gr_LAG->SetMarkerStyle(20);
1998 gr_LAG->SetMarkerSize(1.0);
1999 gr_LAG->SetMarkerColor(2);
2000 gr_LAG->Draw(
"p,SAME");
2005 leg_FAD =
new TLegend(0.707831,0.735751,0.940763,0.897668,
"",
"brNDC");
2006 leg_FAD->AddEntry(grFAD,leg,
"p");
2010 sprintf(leg,
"Events from lag[%i]",OPEN_LAG);
2011 leg_FAD->AddEntry(gr_LAG,leg,
"p");
2013 leg_FAD->SetFillColor(0);
2018 char FAD_title[256];
2019 sprintf(FAD_title,
"%s : FAD distribution (%s) ", networkname, waveform.Data());
2023 TPaveText *title1 =
new TPaveText(0.2941767,0.9274611,0.7359438,0.9974093,
"blNDC");
2024 title1->SetBorderSize(0);
2025 title1->SetFillColor(0);
2026 title1->SetTextColor(1);
2027 title1->SetTextFont(32);
2028 title1->SetTextSize(0.045);
2029 TText *text = title1->AddText(FAD_title);
2042 gStyle->SetOptFit(kFALSE);
2043 TGraph* grMU =
new TGraph(bkg_entries,VRHO,MU);
2044 grMU->GetHistogram()->GetYaxis()->SetTitle(
"#mu");
2045 grMU->GetHistogram()->GetXaxis()->SetTitle(
"#rho");
2046 grMU->GetHistogram()->GetXaxis()->SetRangeUser(
RHO_MIN,RHO_MAX);
2048 grMU->GetXaxis()->SetTitleOffset(1.3);
2049 grMU->GetYaxis()->SetTitleOffset(1.25);
2050 grMU->GetXaxis()->SetTickLength(0.01);
2051 grMU->GetYaxis()->SetTickLength(0.01);
2052 grMU->GetXaxis()->CenterTitle(kTRUE);
2053 grMU->GetYaxis()->CenterTitle(kTRUE);
2054 grMU->GetXaxis()->SetTitleFont(42);
2055 grMU->GetXaxis()->SetLabelFont(42);
2056 grMU->GetYaxis()->SetTitleFont(42);
2057 grMU->GetYaxis()->SetLabelFont(42);
2058 grMU->SetMarkerStyle(20);
2059 grMU->SetMarkerSize(1.0);
2060 grMU->SetMarkerColor(1);
2061 grMU->SetLineColor(kBlue);
2066 TGraph* gr_LAG_MU =
new TGraph(fl_entries,LRHO,LMU);
2067 gr_LAG_MU->SetMarkerStyle(20);
2068 gr_LAG_MU->SetMarkerSize(1.0);
2069 gr_LAG_MU->SetMarkerColor(2);
2070 gr_LAG_MU->Draw(
"p,SAME");
2074 sprintf(FAD_title,
"%s : Expected events per Observation time ", networkname);
2078 TText *text = title1->AddText(FAD_title);
2086 wave.Scan(
"rho[1]:time[0]:netcc[0]:run",lag_cut,
"colsize=12");
static double g(double e)
delete[] spin_mtot_volume
printf("total live time: non-zero lags = %10.1f \n", liveTot)
fprintf(stdout,"start=%f duration=%f rate=%f\n", x.start(), x.size()/x.rate(), x.rate())
sprintf(inj_title,"Injected events")
TH2F * efficiency_first_shell
delete[] volume_first_shell
TCut netcc("netcc","netcc[0]>0.7")
dV
Temporay patch for redshifted mass distributions, i.e. point-like in source frame and spread over mul...
delete[] factor_events_spin_mtot_inj
float shell_volume[nfactor]
delete[] error_spin_mtot_radius
delete[] error_volume_first_shell
std::vector< double > iSNR[NIFO_MAX]
delete[] error_spin_mtot_volume
delete[] spin_mtot_radius
TH2F * factor_events_inj[nfactor]
double fabs(const Complex &x)
TString sel("slag[1]:rho[1]")
strcpy(cfg->tmp_dir,"tmp")
char veto_not_vetoed[1024]
detectorParams detParms[4]