the main function takes the arguments inputfile gL gQ lup qup which specify the file containing the simulation results for a BGL model and draws the plots for that model
361 std::cerr<<
"Usage: "<<argv[0]<<
" inputfile gL gQ lup qup"<<std::endl;
367 cout<<
"RATIO "<<cmu*cmu<<endl;
370 int gL=atoi(argv[2]);
371 int gQ=atoi(argv[3]);
372 int lup=atoi(argv[4]);
373 int qup=atoi(argv[5]);
380 string ll[2][3]={{
"#nu_{1}",
"#nu_{2}",
"#nu_{3}"},{
"e",
"#mu",
"#tau"}};
381 string qq[2][3]={{
"u",
"c",
"t"},{
"d",
"s",
"b"}};
383 Double_t r[] = {1, 0.3};
384 Double_t g[] = {1, 0.3};
385 Double_t b[] = {1, 0.3};
386 Double_t stop[] = {0., 1.0};
387 TColor::CreateGradientColorTable(2, stop, r, g,b, 100);
392 double init1=-3, final1=3;
393 double init2=10, final2=1000;
394 double initBmumu=0, finalBmumu=3;
395 double initBsmumu=0, finalBsmumu=6;
397 double llmax=-1000,McHmax=1000,MRmax=1000,MImax=1000,tbmax=1;
399 TFile *f=
new TFile(argv[1],
"read");
400 if(!f->IsOpen()) cout<<
"NOFILE"<<endl;
403 TH2F *limits4,*Bmumu_Bsmumu,*limits_tb_MR,*limits_tb_MI;
404 TH2F *limits_MR_MI,*limits_MR_McH,*limits_MI_McH;
406 f->GetObject(
"limits4;1",limits4);
407 f->GetObject(
"Bmumu_Bsmumu;1",Bmumu_Bsmumu);
408 f->GetObject(
"limits_tb_MR;1",limits_tb_MR);
409 f->GetObject(
"limits_tb_MI;1",limits_tb_MI);
410 f->GetObject(
"limits_MR_MI;1",limits_MR_MI);
411 f->GetObject(
"limits_MR_McH;1",limits_MR_McH);
412 f->GetObject(
"limits_MI_McH;1",limits_MI_McH);
414 TVectorD* vllmax=NULL;
416 f->GetObject(
"vllmax;1",vllmax);
417 if(!vllmax) cout<<
"ERROR"<<endl;
423 cout<<llmax<<
" "<<tbmax<<
" "<<McHmax<<
" "<<MRmax<<
" "<<MImax<<
" "<<endl;
439 uint min1=npoints, min2=npoints, min3=npoints;
440 uint min11=npoints, min21=npoints, min31=npoints;
441 uint min12=npoints, min22=npoints, min32=npoints;
443 for(
uint i=0;i<npoints;i++)
444 for(
uint j=0;j<npoints;j++){
445 int binmax=limits4->GetBin(i+1,j+1);
446 double rest=limits4->GetBinContent(binmax);
447 if(rest>=llmax) rest=1;
448 else rest=TMath::Prob(-2*(rest-llmax),2);
449 if(rest>=0.05 && j<min1){min1=j;}
450 if(rest>=0.05 && j<min11 && j>
uint(180*npoints/990)){min11=j;}
451 if(rest>=0.05 && j<min12 && j>
uint(400*npoints/990)){min12=j;}
452 limits4->SetBinContent(i+1,j+1,rest);
454 rest=Bmumu_Bsmumu->GetBinContent(binmax);
455 if(rest>=llmax) rest=1;
456 else rest=TMath::Prob(-2*(rest-llmax),2);
461 Bmumu_Bsmumu->SetBinContent(i+1,j+1,rest);
463 rest=limits_MR_MI->GetBinContent(binmax);
464 if(rest>=llmax) rest=1;
465 else rest=TMath::Prob(-2*(rest-llmax),2);
466 limits_MR_MI->SetBinContent(i+1,j+1,rest);
468 rest=limits_MR_McH->GetBinContent(binmax);
469 if(rest>=llmax) rest=1;
470 else rest=TMath::Prob(-2*(rest-llmax),2);
471 if(rest>=0.05 && i<min2){min2=i;}
472 if(rest>=0.05 && i<min21 && j>
uint(180*npoints/990)){min21=i;}
473 if(rest>=0.05 && i<min22 && j>
uint(400*npoints/990)){min22=i;}
474 limits_MR_McH->SetBinContent(i+1,j+1,rest);
476 rest=limits_MI_McH->GetBinContent(binmax);
477 if(rest>=llmax) rest=1;
478 else rest=TMath::Prob(-2*(rest-llmax),2);
479 if(rest>=0.05 && i<min3){min3=i;}
480 if(rest>=0.05 && i<min31 && j>
uint(180*npoints/990)){min31=i;}
481 if(rest>=0.05 && i<min32 && j>
uint(400*npoints/990)){min32=i;}
482 limits_MI_McH->SetBinContent(i+1,j+1,rest);
485 rest=limits_tb_MR->GetBinContent(binmax);
486 if(rest>=llmax) rest=1;
487 else rest=TMath::Prob(-2*(rest-llmax),2);
488 limits_tb_MR->SetBinContent(i+1,j+1,rest);
490 double mmin1=init2+((min1+0.5)*(final2-init2))/npoints;
491 double mmin2=init2+((min2+0.5)*(final2-init2))/npoints;
492 double mmin3=init2+((min3+0.5)*(final2-init2))/npoints;
494 double mmin11=init2+((min11+0.5)*(final2-init2))/npoints;
495 double mmin21=init2+((min21+0.5)*(final2-init2))/npoints;
496 double mmin31=init2+((min31+0.5)*(final2-init2))/npoints;
498 double mmin12=init2+((min12+0.5)*(final2-init2))/npoints;
499 double mmin22=init2+((min22+0.5)*(final2-init2))/npoints;
500 double mmin32=init2+((min32+0.5)*(final2-init2))/npoints;
504 ofstream maxs((
string(
"maxs_")+
string(name)+
string(
".out")).c_str());
505 maxs<<mmin1<<
" "<<mmin2<<
" "<<mmin3<<endl;
506 maxs<<mmin11<<
" "<<mmin21<<
" "<<mmin31<<endl;
507 maxs<<mmin12<<
" "<<mmin22<<
" "<<mmin32<<endl;
508 maxs<<llmax<<
" "<<tbmax<<
" "<<McHmax<<
" "<<MRmax<<
" "<<MImax<<
" "<<endl;
520 double ma=0,me=.2, x0=1,y0=120;
521 gStyle->SetOptTitle(0);
522 gStyle->SetPaperSize(10.,10.);
523 TCanvas * c21=
new TCanvas(
"c21",
"",
int(800*(1+ma+me)),
int(600*(1+ma+me)));
524 c21->SetMargin(me,ma,me,ma);
527 limits4->SetStats(0);
528 limits4->GetXaxis()->SetTitle(
"log_{10}(tan\\beta)");
529 limits4->GetYaxis()->SetTitle(
"M_{H+} (GeV)");
531 Bmumu_Bsmumu->SetStats(0);
532 Bmumu_Bsmumu->GetXaxis()->SetTitle(
"Br(B\\to\\mu\\mu)/10^{-10}");
533 Bmumu_Bsmumu->GetYaxis()->SetTitle(
"Br(B_{s}\\to\\mu\\mu)/10^{-9}");
535 limits_MR_MI->SetStats(0);
536 limits_MR_MI->GetYaxis()->SetTitle(
"M_{I} (GeV)");
537 limits_MR_MI->GetXaxis()->SetTitle(
"M_{R} (GeV)");
540 limits_MR_McH->SetStats(0);
541 limits_MR_McH->GetYaxis()->SetTitle(
"M_{H+} (GeV)");
542 limits_MR_McH->GetXaxis()->SetTitle(
"M_{R} (GeV)");
544 limits_MI_McH->SetStats(0);
545 limits_MI_McH->GetYaxis()->SetTitle(
"M_{H+} (GeV)");
546 limits_MI_McH->GetXaxis()->SetTitle(
"M_{I} (GeV)");
548 limits_tb_MR->SetStats(0);
549 limits_tb_MR->GetXaxis()->SetTitle(
"log_{10}(tan\\beta)");
550 limits_tb_MR->GetYaxis()->SetTitle(
"M_{R} (GeV)");
554 Double_t contours[3];
562 limits4->SetContour(3, contours);
564 limits4->GetYaxis()->SetLabelSize(0.08);
565 limits4->GetYaxis()->SetTitleSize(0.08);
566 limits4->GetYaxis()->SetTitleOffset(1.2);
567 limits4->GetYaxis()->SetLimits(1,999);
572 limits4->GetXaxis()->SetLabelSize(0.08);
573 limits4->GetXaxis()->SetTitleSize(0.08);
574 limits4->GetXaxis()->SetTitleOffset(1.2);
575 limits4->GetXaxis()->SetLimits(-2.99,2.99);
581 string ss=qq[qup][gQ]+
","+ll[lup][gL];
584 limits4->Draw(
"CONT Z LIST");
588 l.DrawLatex(x0,y0,ss.c_str());
590 c21->SaveAs((
string(
"pdf_")+
string(name)+
string(
".png")).c_str());
594 Bmumu_Bsmumu->Rebin2D(2,2);
598 Bmumu_Bsmumu->GetYaxis()->SetLabelSize(0.08);
599 Bmumu_Bsmumu->GetYaxis()->SetTitleSize(0.08);
600 Bmumu_Bsmumu->GetYaxis()->SetTitleOffset(0.8);
601 Bmumu_Bsmumu->GetYaxis()->SetLimits(0.01,4.99);
605 Bmumu_Bsmumu->GetYaxis()->SetNdivisions(5, kTRUE);
606 Bmumu_Bsmumu->GetXaxis()->SetNdivisions(5, kTRUE);
608 Bmumu_Bsmumu->GetXaxis()->SetLabelSize(0.08);
609 Bmumu_Bsmumu->GetXaxis()->SetTitleSize(0.08);
610 Bmumu_Bsmumu->GetXaxis()->SetTitleOffset(1.2);
611 Bmumu_Bsmumu->GetXaxis()->SetLimits(0.01,1.99);
614 TCanvas * cB=
new TCanvas(
"cB",
"",
int(800*(1+ma+me)),
int(600*(1+ma+me)));
615 cB->SetMargin(.14,ma,me,ma);
618 Bmumu_Bsmumu->Draw(
"COLZ");
620 l.DrawLatex(1.5,1,ss.c_str());
622 cB->SaveAs((
string(
"Bmumu_Bsmumu_")+
string(name)+
string(
".png")).c_str());
626 limits_MR_MI->SetContour(3, contours);
628 limits_MR_MI->GetYaxis()->SetLabelSize(0.06);
629 limits_MR_MI->GetYaxis()->SetTitleSize(0.06);
630 limits_MR_MI->GetYaxis()->SetTitleOffset(1.1);
631 limits_MR_MI->GetYaxis()->SetLimits(1,999);
633 limits_MR_MI->GetXaxis()->SetLabelSize(0.06);
634 limits_MR_MI->GetXaxis()->SetTitleSize(0.06);
635 limits_MR_MI->GetXaxis()->SetTitleOffset(1.1);
636 limits_MR_MI->GetXaxis()->SetLimits(1,999);
638 TCanvas * c3=
new TCanvas(
"c3",
"",800,600);
639 c3->SetMargin(me,ma,me,ma);
642 limits_MR_MI->Draw(
"CONT LIST");
644 c3->SaveAs((
string(
"pdf_")+
string(name)+
string(
"_MRMI.png")).c_str());
646 limits_MR_McH->SetContour(3, contours);
648 limits_MR_McH->GetYaxis()->SetLabelSize(0.06);
649 limits_MR_McH->GetYaxis()->SetTitleSize(0.06);
650 limits_MR_McH->GetYaxis()->SetTitleOffset(1.1);
651 limits_MR_McH->GetYaxis()->SetLimits(1,999);
653 limits_MR_McH->GetXaxis()->SetLabelSize(0.06);
654 limits_MR_McH->GetXaxis()->SetTitleSize(0.06);
655 limits_MR_McH->GetXaxis()->SetTitleOffset(1.1);
656 limits_MR_McH->GetXaxis()->SetLimits(1,999);
658 TCanvas * c4=
new TCanvas(
"c4",
"",800,600);
659 limits_MR_McH->Draw(
"CONT LIST");
660 c4->SetMargin(me,ma,me,ma);
662 c4->SaveAs((
string(
"pdf_")+
string(name)+
string(
"_MRMcH.png")).c_str());
664 limits_MI_McH->SetContour(3, contours);
666 limits_MI_McH->GetYaxis()->SetLabelSize(0.06);
667 limits_MI_McH->GetYaxis()->SetTitleSize(0.06);
668 limits_MI_McH->GetYaxis()->SetTitleOffset(1.1);
669 limits_MI_McH->GetYaxis()->SetLimits(1,999);
671 limits_MI_McH->GetXaxis()->SetLabelSize(0.06);
672 limits_MI_McH->GetXaxis()->SetTitleSize(0.06);
673 limits_MI_McH->GetXaxis()->SetTitleOffset(1.1);
674 limits_MI_McH->GetXaxis()->SetLimits(1,999);
676 TCanvas * c6=
new TCanvas(
"c6",
"",800,600);
677 limits_MI_McH->Draw(
"CONT LIST");
678 c6->SetMargin(me,ma,me,ma);
680 c6->SaveAs((
string(
"pdf_")+
string(name)+
string(
"_MIMcH.png")).c_str());
682 TCanvas * c5=
new TCanvas(
"c5",
"",800,600);
683 limits_tb_MR->Draw(
"colz");
685 c5->SaveAs((
string(
"pdf_")+
string(name)+
string(
"_tbMR.png")).c_str());
std::complex< double > CD
const Matrixx Vud(13.04 *M_PI/180, 0.201 *M_PI/180, 2.38 *M_PI/180, 1.2)