Ejemplo n.º 1
0
void
plotTanb(const char* filename, const char* channel, bool draw_injected_=false, double min_=0., double max_=60., bool log_=false, std::string dataset_="CMS Preliminary,  H#rightarrow#tau#tau,  4.9 fb^{-1} at 7 TeV, 19.8 fb^{-1} at 8 TeV", std::string xaxis_="m_{A} [GeV]", std::string yaxis_="#bf{tan#beta}")
{
  TFile* file = TFile::Open(filename);
  // retrieve TGraphs from file
  TGraph* expected = (TGraph*)file->Get(std::string(channel).append("/expected").c_str());
  TGraph* expected_low = (TGraph*)file->Get(std::string(channel).append("/expected_low").c_str());
  TGraph* observed = (TGraph*)file->Get(std::string(channel).append("/observed").c_str());
  TGraph* observed_low = (TGraph*)file->Get(std::string(channel).append("/observed_low").c_str());
  TGraph* upperLEP = (TGraph*)file->Get(std::string(channel).append("/upperLEP").c_str());
  TGraph* lowerLEP = (TGraph*)file->Get(std::string(channel).append("/lowerLEP").c_str());
  TGraphAsymmErrors* innerBand = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/innerBand").c_str());
  TGraphAsymmErrors* innerBand_low = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/innerBand_low").c_str());
  TGraphAsymmErrors* outerBand = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/outerBand").c_str());
  TGraphAsymmErrors* outerBand_low = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/outerBand_low").c_str()); 
  TGraphAsymmErrors* plain = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/plain").c_str());
  TGraphAsymmErrors* plain_low = (TGraphAsymmErrors*)file->Get(std::string(channel).append("/plain_low").c_str());

  // this is new for injected plot 
  TGraph* injected = 0;;
  if(draw_injected_) {injected = (TGraph*)file->Get("injected/observed");}

  if(draw_injected_){
    for( int i=0; i<expected->GetN(); i++){
      double shift = injected->GetY()[i]-expected->GetY()[i];
      innerBand->SetPoint(i, innerBand->GetX()[i], innerBand->GetY()[i]+shift);
      outerBand->SetPoint(i, outerBand->GetX()[i], outerBand->GetY()[i]+shift);
    }
  }

  // this functionality is not yet supported
  std::map<double, TGraphAsymmErrors*> higgsBands;
  // this functionality is not yet supported
  std::map<std::string, TGraph*> comparisons;

  // set up styles
  SetStyle();
  // do the plotting 
  TCanvas canv = TCanvas("canv", "Limits", 600, 600);
  // do the plotting 
  plottingTanb(canv, plain, plain_low, innerBand, innerBand_low, outerBand, outerBand_low, expected, expected_low, observed, observed_low, lowerLEP, upperLEP, higgsBands, comparisons, xaxis_, yaxis_, injected, min_, max_, log_);
  /// setup the CMS Preliminary
  CMSPrelim(dataset_.c_str(), "", 0.145, 0.835);
  // write results to files
  canv.Print(std::string(channel).append("_tanb").append(".png").c_str());
  canv.Print(std::string(channel).append("_tanb").append(".pdf").c_str()); 
  canv.Print(std::string(channel).append("_tanb").append(".eps").c_str()); 
  return;
}
void
plotTanb(const char* filename, const char* channel, bool draw_injected_=false, double min_=0.5, double max_=60., bool MSSMvsSM_=false, bool log_=false, bool transparent_=false,  std::string dataset_="#scale[1.5]{CMS}   H#rightarrow#tau#tau                            19.7 fb^{-1} (8 TeV) + 4.9 fb^{-1} (7 TeV)", std::string xaxis_="m_{A} [GeV]", std::string yaxis_="#bf{tan#beta}", std::string theory_="MSSM m_{h}^{max} scenario")
{
  TFile* file = TFile::Open(filename);
  // Grabbing contours
  TH2D *plane_expected = 0;
  std::vector<TGraph*> gr_minus2sigma;
  std::vector<TGraph*> gr_minus1sigma;
  std::vector<TGraph*> gr_expected;
  std::vector<TGraph*> gr_plus1sigma;
  std::vector<TGraph*> gr_plus2sigma;
  std::vector<TGraph*> gr_observed;
  std::vector<TGraph*> gr_higgslow;
  std::vector<TGraph*> gr_higgshigh;
  std::vector<std::vector<TGraph*>> gr_higgsBands; 
  std::vector<TGraph*> gr_injected;
  // retrieve TGraphs from file 
  plane_expected=(TH2D *)file->Get(TString::Format("%s/plane_expected", channel)); 
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_minus2sigma_%d", channel, i))) gr_minus2sigma.push_back((TGraph *)file->Get(TString::Format("%s/gr_minus2sigma_%d", channel, i)));
  //   else break;
  // }
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_minus1sigma_%d", channel, i))) gr_minus1sigma.push_back((TGraph *)file->Get(TString::Format("%s/gr_minus1sigma_%d", channel, i)));
  //   else break;
  // }
  
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_expected_%d", channel, i))) gr_expected.push_back((TGraph *)file->Get(TString::Format("%s/gr_expected_%d", channel, i)));
  //   else break;
  // }
  
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_plus1sigma_%d", channel, i))) gr_plus1sigma.push_back((TGraph *)file->Get(TString::Format("%s/gr_plus1sigma_%d", channel, i)));
  //   else break;
  // }
  
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_plus2sigma_%d", channel, i))) gr_plus2sigma.push_back((TGraph *)file->Get(TString::Format("%s/gr_plus2sigma_%d", channel, i)));
  //   else break;
  // }
  
  // for(unsigned int i=0; i<10; i++){
  //   if((TGraph *)file->Get(TString::Format("%s/gr_observed_%d", channel, i))) gr_observed.push_back((TGraph *)file->Get(TString::Format("%s/gr_observed_%d", channel, i)));
  //   else break;
  // } 
  for(unsigned int i=0; i<10; i++){
    if((TGraph *)file->Get(TString::Format("%s/gr_higgslow_%d", channel, i))) gr_higgslow.push_back((TGraph *)file->Get(TString::Format("%s/gr_higgslow_%d", channel, i)));
    else break;
  }
  gr_higgsBands.push_back(gr_higgslow);
  for(unsigned int i=0; i<10; i++){
    if((TGraph *)file->Get(TString::Format("%s/gr_higgshigh_%d", channel, i))) gr_higgshigh.push_back((TGraph *)file->Get(TString::Format("%s/gr_higgshigh_%d", channel, i)));
    else break;
  } 
  gr_higgsBands.push_back(gr_higgshigh);
  
  // this is new for injected plot together with observed
  if(draw_injected_) {
    for(unsigned int i=0; i<10; i++){
      if((TGraph *)file->Get(TString::Format("%s/gr_observed_%d", "injected", i))) gr_injected.push_back((TGraph *)file->Get(TString::Format("%s/gr_observed_%d", "injected", i)));
      else break;
    }
  }

  TGraph* gr_m2s = new TGraph();
  gr_m2s->SetPoint( 0,   90, 4.85);
  gr_m2s->SetPoint( 1,  100, 0.5);
  gr_m2s->SetPoint( 2,  120, 3.06);
  gr_m2s->SetPoint( 3,  130, 3.22);
  gr_m2s->SetPoint( 4,  140, 0.5);
  gr_m2s->SetPoint( 5,  160, 0.5);
  gr_m2s->SetPoint( 6,  180, 0.5);
  gr_m2s->SetPoint( 7,  200, 0.5);
  gr_m2s->SetPoint( 8,  250, 0.5);
  gr_m2s->SetPoint( 9,  300, 8.92);
  gr_m2s->SetPoint(10,  350, 9.68);
  gr_m2s->SetPoint(11,  400, 13.49);
  gr_m2s->SetPoint(12,  450, 14.56);
  gr_m2s->SetPoint(13,  500, 17.80);
  gr_m2s->SetPoint(14,  600, 21.31);
  gr_m2s->SetPoint(15,  700, 26.60);
  gr_m2s->SetPoint(16,  800, 32.86);
  gr_m2s->SetPoint(17,  900, 37.82);
  gr_m2s->SetPoint(18, 1000, 47.05);
  gr_m2s->SetPoint(19, 1010, 60);
  gr_m2s->SetPoint(20,   80, 60);
  gr_m2s->SetPoint(21,   80, 0.05);
  gr_m2s->SetPoint(22,   90, 4.85);
  gr_minus2sigma.push_back(gr_m2s);
  TGraph* gr_m2s2 = new TGraph();
  gr_m2s2->SetPoint( 0,   90, 3.15);
  gr_m2s2->SetPoint( 1,  100, 0.5);
  gr_m2s2->SetPoint( 2,  120, 0.95);
  gr_m2s2->SetPoint( 3,  130, 1.38);
  gr_m2s2->SetPoint( 4,  140, 0.5);
  gr_m2s2->SetPoint( 5,  160, 0.5);
  gr_m2s2->SetPoint( 6,  180, 0.5);
  gr_m2s2->SetPoint( 7,  200, 0.5);
  gr_m2s2->SetPoint( 8,  250, 0.5);
  gr_m2s2->SetPoint( 9,  300, 3.01);
  gr_m2s2->SetPoint(10,  350, 2.85);
  gr_m2s2->SetPoint(11,  400, 2.56);
  gr_m2s2->SetPoint(12,  450, 2.56);
  gr_m2s2->SetPoint(13,  500, 2.55);
  gr_m2s2->SetPoint(14,  600, 2.55);
  gr_m2s2->SetPoint(15,  700, 2.54);
  gr_m2s2->SetPoint(16,  800, 2.62);
  gr_m2s2->SetPoint(17,  900, 2.52);
  gr_m2s2->SetPoint(18, 1000, 2.65);
  gr_m2s2->SetPoint(19, 1010, 0.05);
  gr_m2s2->SetPoint(20, 1010, 0);
  gr_m2s2->SetPoint(21,   90, 0);
  gr_m2s2->SetPoint(22,   90, 3.15);
  gr_minus2sigma.push_back(gr_m2s2);

  TGraph* gr_m1s = new TGraph();
  gr_m1s->SetPoint( 0,   90, 5.32);
  gr_m1s->SetPoint( 1,  100, 4.99);
  gr_m1s->SetPoint( 2,  120, 3.47);
  gr_m1s->SetPoint( 3,  130, 3.56);
  gr_m1s->SetPoint( 4,  140, 2.50);
  gr_m1s->SetPoint( 5,  160, 0.5);
  gr_m1s->SetPoint( 6,  180, 0.5);
  gr_m1s->SetPoint( 7,  200, 0.5);
  gr_m1s->SetPoint( 8,  250, 6.00);
  gr_m1s->SetPoint( 9,  300, 9.22);
  gr_m1s->SetPoint(10,  350, 10.71);
  gr_m1s->SetPoint(11,  400, 14.03);
  gr_m1s->SetPoint(12,  450, 15.61);
  gr_m1s->SetPoint(13,  500, 18.65);
  gr_m1s->SetPoint(14,  600, 23.16);
  gr_m1s->SetPoint(15,  700, 28.41);
  gr_m1s->SetPoint(16,  800, 34.34);
  gr_m1s->SetPoint(17,  900, 40.63);
  gr_m1s->SetPoint(18, 1000, 51.39);
  gr_m1s->SetPoint(19, 1010, 60);
  gr_m1s->SetPoint(20,   80, 60);
  gr_m1s->SetPoint(21,   80, 0.05);
  gr_m1s->SetPoint(22,   90, 5.32);
  gr_minus1sigma.push_back(gr_m1s);
  TGraph* gr_m1s2 = new TGraph();
  gr_m1s2->SetPoint( 0,   90, 2.46);
  gr_m1s2->SetPoint( 1,  100, 2.80);
  gr_m1s2->SetPoint( 2,  120, 0.84);
  gr_m1s2->SetPoint( 3,  130, 1.21);
  gr_m1s2->SetPoint( 4,  140, 1.75);
  gr_m1s2->SetPoint( 5,  160, 0.5);
  gr_m1s2->SetPoint( 6,  180, 0.5);
  gr_m1s2->SetPoint( 7,  200, 0.5);
  gr_m1s2->SetPoint( 8,  250, 6.00);
  gr_m1s2->SetPoint( 9,  300, 2.60);
  gr_m1s2->SetPoint(10,  350, 2.51);
  gr_m1s2->SetPoint(11,  400, 2.34);
  gr_m1s2->SetPoint(12,  450, 2.31);
  gr_m1s2->SetPoint(13,  500, 2.31);
  gr_m1s2->SetPoint(14,  600, 2.31);
  gr_m1s2->SetPoint(15,  700, 2.29);
 gr_m1s2->SetPoint(16,  800, 2.28);
  gr_m1s2->SetPoint(17,  900, 2.28);
  gr_m1s2->SetPoint(18, 1000, 2.31);
  gr_m1s2->SetPoint(19, 1010, 0.05);
  gr_m1s2->SetPoint(20, 1010, 0);
  gr_m1s2->SetPoint(21,   90, 0);
  gr_m1s2->SetPoint(22,   90, 2.46);
  gr_minus1sigma.push_back(gr_m1s2);

  TGraph* gr_exp = new TGraph();
  gr_exp->SetPoint( 0,   90, 6.65);
  gr_exp->SetPoint( 1,  100, 6.88);
  gr_exp->SetPoint( 2,  120, 3.92);
  gr_exp->SetPoint( 3,  130, 3.81);
  gr_exp->SetPoint( 4,  140, 3.50);
  gr_exp->SetPoint( 5,  160, 2.03);
  gr_exp->SetPoint( 6,  180, 4.51);
  gr_exp->SetPoint( 7,  200, 5.13);
  gr_exp->SetPoint( 8,  250, 7.95);
  gr_exp->SetPoint( 9,  300, 9.63);
  gr_exp->SetPoint(10,  350, 12.24);
  gr_exp->SetPoint(11,  400, 14.62);
  gr_exp->SetPoint(12,  450, 18.41);
  gr_exp->SetPoint(13,  500, 19.69);
  gr_exp->SetPoint(14,  600, 24.69);
  gr_exp->SetPoint(15,  700, 31.28);
  gr_exp->SetPoint(16,  800, 38.48);
  gr_exp->SetPoint(17,  900, 45.36);
  gr_exp->SetPoint(18, 1000, 57.77);
  gr_exp->SetPoint(19, 1010, 60);
  gr_exp->SetPoint(20,   80, 60);
  gr_exp->SetPoint(21,   80, 0.05);
  gr_exp->SetPoint(22,   90, 6.65);
  gr_expected.push_back(gr_exp);
  TGraph* gr_exp2 = new TGraph();
  gr_exp2->SetPoint( 0,   90, 1.34);
  gr_exp2->SetPoint( 1,  100, 1.10);
  gr_exp2->SetPoint( 2,  120, 0.5);
  gr_exp2->SetPoint( 3,  130, 1.08);
  gr_exp2->SetPoint( 4,  140, 1.29);
  gr_exp2->SetPoint( 5,  160, 0.5);
  gr_exp2->SetPoint( 6,  180, 2.87);
  gr_exp2->SetPoint( 7,  200, 2.46);
  gr_exp2->SetPoint( 8,  250, 1.39);
  gr_exp2->SetPoint( 9,  300, 0.5);
  gr_exp2->SetPoint(10,  300, 0);
  gr_exp2->SetPoint(11,   90, 0);
  gr_exp2->SetPoint(12,   90, 0.5);
  gr_expected.push_back(gr_exp2);
  
  TGraph* gr_p1s = new TGraph();
  gr_p1s->SetPoint( 0,   90, 7.72);
  gr_p1s->SetPoint( 1,  100, 7.84);
  gr_p1s->SetPoint( 2,  120, 5.60);
  gr_p1s->SetPoint( 3,  130, 4.82);
  gr_p1s->SetPoint( 4,  140, 4.49);
  gr_p1s->SetPoint( 5,  160, 5.23);
  gr_p1s->SetPoint( 6,  180, 5.71);
  gr_p1s->SetPoint( 7,  200, 6.34);
  gr_p1s->SetPoint( 8,  250, 8.64);
  gr_p1s->SetPoint( 9,  300, 10.99);
  gr_p1s->SetPoint(10,  350, 13.10);
  gr_p1s->SetPoint(11,  400, 17.64);
  gr_p1s->SetPoint(12,  450, 19.56);
  gr_p1s->SetPoint(13,  500, 23.29);
  gr_p1s->SetPoint(14,  600, 28.59);
  gr_p1s->SetPoint(15,  700, 34.83);
  gr_p1s->SetPoint(16,  800, 43.70);
  gr_p1s->SetPoint(17,  900, 52.51);
  gr_p1s->SetPoint(18, 1000, 70);
  gr_p1s->SetPoint(19, 1010, 71);
  gr_p1s->SetPoint(20,   80, 71);
  gr_p1s->SetPoint(21,   80, 0.05);
  gr_p1s->SetPoint(22,   90, 7.72);
  gr_plus1sigma.push_back(gr_p1s);
  TGraph* gr_p1s2 = new TGraph();
  gr_p1s2->SetPoint( 0,  120, 0.5);
  gr_p1s2->SetPoint( 1,  130, 0.89);
  gr_p1s2->SetPoint( 2,  140, 1.12);
  gr_p1s2->SetPoint( 3,  160, 0.5);
  gr_p1s2->SetPoint( 4,  160, 0);
  gr_p1s2->SetPoint( 5,  120, 0);
  gr_p1s2->SetPoint( 5,  120, 05);
  gr_plus1sigma.push_back(gr_p1s2);

  TGraph* gr_p2s = new TGraph();
  gr_p2s->SetPoint( 0,   90, 8.79);
  gr_p2s->SetPoint( 1,  100, 8.95);
  gr_p2s->SetPoint( 2,  120, 7.22);
  gr_p2s->SetPoint( 3,  130, 5.83);
  gr_p2s->SetPoint( 4,  140, 5.67);
  gr_p2s->SetPoint( 5,  160, 5.84);
  gr_p2s->SetPoint( 6,  180, 7.05);
  gr_p2s->SetPoint( 7,  200, 7.64);
  gr_p2s->SetPoint( 8,  250, 8.97);
  gr_p2s->SetPoint( 9,  300, 12.51);
  gr_p2s->SetPoint(10,  350, 15.40);
  gr_p2s->SetPoint(11,  400, 19.33);
  gr_p2s->SetPoint(12,  450, 22.78);
  gr_p2s->SetPoint(13,  500, 24.72);
  gr_p2s->SetPoint(14,  600, 31.71);
  gr_p2s->SetPoint(15,  700, 39.41);
  gr_p2s->SetPoint(16,  800, 49.30);
  gr_p2s->SetPoint(17,  900, 59.55);
  gr_p2s->SetPoint(18, 1000, 80);
  gr_p2s->SetPoint(19, 1010, 81);
  gr_p2s->SetPoint(20,   80, 81);
  gr_p2s->SetPoint(21,   80, 0.05);
  gr_p2s->SetPoint(22,   90, 8.79);
  gr_plus2sigma.push_back(gr_p2s);
  TGraph* gr_p2s2 = new TGraph();
  gr_p2s2->SetPoint( 0,  130, 0.5);
  gr_p2s2->SetPoint( 1,  140, 1.04);
  gr_p2s2->SetPoint( 2,  160, 0.5);
  gr_p2s2->SetPoint( 3,  160, 0);
  gr_p2s2->SetPoint( 4,  130, 0);
  gr_p2s2->SetPoint( 5,  130, 0.5);
  gr_plus2sigma.push_back(gr_p2s2);


  TGraph* gr_obs = new TGraph();
  gr_obs->SetPoint( 0,   90, 6.80);
  gr_obs->SetPoint( 1,  100, 7.30);
  gr_obs->SetPoint( 2,  120, 3.73);
  gr_obs->SetPoint( 3,  130, 3.67);
  gr_obs->SetPoint( 4,  140, 3.02);
  gr_obs->SetPoint( 5,  160, 3.29);
  gr_obs->SetPoint( 6,  180, 4.49);
  gr_obs->SetPoint( 7,  200, 4.95);
  gr_obs->SetPoint( 8,  250, 7.23);
  gr_obs->SetPoint( 9,  300, 9.53);
  gr_obs->SetPoint(10,  350, 14.05);
  gr_obs->SetPoint(11,  400, 19.16);
  gr_obs->SetPoint(12,  450, 19.45);
  gr_obs->SetPoint(13,  500, 20.94);
  gr_obs->SetPoint(14,  600, 26.66);
  gr_obs->SetPoint(15,  700, 33.65);
  gr_obs->SetPoint(16,  800, 42.17);
  gr_obs->SetPoint(17,  900, 49.67);
  gr_obs->SetPoint(18, 1000, 60);
  gr_obs->SetPoint(19, 1010, 61);
  gr_obs->SetPoint(20,   80, 61);
  gr_obs->SetPoint(21,   80, 0.05);
  gr_obs->SetPoint(22,   90, 6.80);
  gr_observed.push_back(gr_obs);
  TGraph* gr_obs2 = new TGraph();
  gr_obs2->SetPoint(0,  120, 0.5);
  gr_obs2->SetPoint(1,  130, 1.17);
  gr_obs2->SetPoint(2,  140, 1.51);
  gr_obs2->SetPoint(3,  160, 0.5);
  gr_obs2->SetPoint(4,  160, 0);
  gr_obs2->SetPoint(5,  120, 0);
  gr_obs2->SetPoint(6,  120, 0.5);
  gr_observed.push_back(gr_obs2);	
    

// #            mX                    -2 sigma                    -1 sigma                      Median                    +1 sigma                    +2 sigma             Obs. Limit [pb]
//            90     60.00-4.85; 3.15-0.50;      60.00-5.32; 2.46-0.50;      60.00-6.65; 1.34-0.50;                 60.00-7.73;                 60.00-8.79;                 60.00-6.80; 
//           100                60.00-0.50;      60.00-4.99; 2.80-0.50;      60.00-6.88; 1.10-0.50;                 60.00-7.84;                 60.00-8.95;                 60.00-7.30; 
//           120     60.00-3.06; 0.95-0.59;      60.00-3.47; 0.84-0.68;                 60.00-3.92;                 60.00-5.60;                 60.00-7.22;                 60.00-3.73; 
//           130     60.00-3.22; 1.38-0.50;      60.00-3.56; 1.21-0.50;      60.00-3.81; 1.08-0.56;      60.00-4.82; 0.89-0.69;                 60.00-5.83;      60.00-3.67; 1.17-0.50; 
//           140                60.00-0.50;      60.00-2.50; 1.75-0.50;      60.00-3.50; 1.29-0.50;      60.00-4.49; 1.12-0.50;      60.00-5.67; 1.04-0.60;      60.00-3.02; 1.51-0.50; 
//           160                60.00-0.50;                 60.00-0.50;                 60.00-2.03;                 60.00-5.23;                 60.00-5.84;                 60.00-3.29; 
//           180                60.00-0.50;                 60.00-0.50;      60.00-4.51; 2.87-0.50;                 60.00-5.71;                 60.00-7.05;                 60.00-4.49; 
//           200                60.00-0.50;                 60.00-0.50;      60.00-5.13; 2.46-0.50;                 60.00-6.34;                 60.00-7.64;                 60.00-4.95; 
//           250                60.00-0.50;      60.00-6.00; 6.00-0.50;      60.00-7.95; 1.39-0.61;                 60.00-8.64;                 60.00-8.97;                 60.00-7.23; 
//           300     60.00-8.92; 3.01-0.50;      60.00-9.22; 2.60-0.50;                 60.00-9.63;                60.00-10.99;                60.00-12.51;                 60.00-9.53; 
//           350     60.00-9.68; 2.85-0.50;     60.00-10.71; 2.51-0.50;                60.00-12.24;                60.00-13.10;                60.00-15.40;                60.00-14.05; 
//           400    60.00-13.49; 2.56-0.50;     60.00-14.03; 2.34-0.50;                60.00-14.62;                60.00-17.64;                60.00-19.33;                60.00-19.16; 
//           450    60.00-14.56; 2.56-0.50;     60.00-15.61; 2.31-0.50;                60.00-18.41;                60.00-19.56;                60.00-22.78;                60.00-19.45; 
//           500    60.00-17.80; 2.55-0.50;     60.00-18.65; 2.31-0.50;                60.00-19.69;                60.00-23.29;                60.00-24.72;                60.00-20.94; 
//           600    60.00-21.31; 2.55-0.50;     60.00-23.16; 2.31-0.50;                60.00-24.69;                60.00-28.59;                60.00-31.71;                60.00-26.66; 
//           700    60.00-26.60; 2.54-0.50;     60.00-28.41; 2.29-0.50;                60.00-31.28;                60.00-34.83;                60.00-39.41;                60.00-33.65; 
//           800    60.00-32.86; 2.62-0.50;     60.00-34.34; 2.28-0.50;                60.00-38.48;                60.00-43.70;                60.00-49.30;                60.00-42.17; 
//           900    60.00-37.83; 2.52-0.50;     60.00-40.63; 2.28-0.50;                60.00-45.36;                60.00-52.51;                60.00-59.55;                60.00-49.67; 
//         1e+03    60.00-47.05; 2.65-0.50;     60.00-51.39; 2.31-0.50;                60.00-57.77;                           -                           -                           - 





  const char* model;
  if(theory_=="MSSM m_{h}^{max} scenario") {model = "mhmax-mu+200";}
  if(theory_=="MSSM m_{h}^{mod-} scenario") {model = "mhmodm";}
  if(theory_=="MSSM m_{h}^{mod+} scenario") {model = "mhmodp";}
  if(theory_=="MSSM low-m_{H} scenario") {model = "lowmH";}
  if(theory_=="MSSM light-stau scenario") {model = "lightstau1";}
  if(theory_=="MSSM #scale[1.3]{#bf{#tau}}-phobic scenario") {model = "tauphobic";}
  if(theory_=="MSSM light-stop scenario") {model = "lightstopmod";}
  if(theory_=="MSSM low-tan#beta-high scenario") {model = "low-tb-high";}
  if(theory_=="2HDM type-I") {model = "2HDMtyp1";}
  if(theory_=="2HDM type-II") {model = "2HDMtyp2";}

  // this functionality is not yet supported
  std::map<std::string, TGraph*> comparisons;

  // set up styles
  SetStyle();
  // do the plotting
  TCanvas canv = TCanvas("canv", "Limits", 600, 600);
  plottingTanb(canv, plane_expected, gr_minus2sigma, gr_minus1sigma, gr_expected, gr_plus1sigma, gr_plus2sigma, gr_observed, gr_injected, gr_higgsBands, comparisons, xaxis_, yaxis_, theory_, min_, max_, log_, transparent_, false, MSSMvsSM_, "", false, false); 

  /// setup the CMS Preliminary
  //TPaveText* cmsprel = new TPaveText(0.135, 0.735, 0.145+0.30, 0.785, "NDC"); 
  TPaveText* cmsprel = new TPaveText(0.145, 0.835+0.045, 0.145+0.30, 0.835+0.145, "NDC");
  cmsprel->SetBorderSize(   0 );
  cmsprel->SetFillStyle(    0 );
  cmsprel->SetTextAlign(   11 );
  cmsprel->SetTextSize ( 0.03 );
  cmsprel->SetTextColor(    1 );
  cmsprel->SetTextFont (   62 );
  cmsprel->AddText(dataset_.c_str());
  cmsprel->Draw();
  // write results to files
  canv.Print(std::string(channel).append("_").append(model).append("_tanb").append(".png").c_str());
  canv.Print(std::string(channel).append("_").append(model).append("_tanb").append(".pdf").c_str()); 
  canv.Print(std::string(channel).append("_").append(model).append("_tanb").append(".eps").c_str()); 
  return;
}