예제 #1
0
void SetStyle(TH1& h, double size, int color, int style, int fillstyle=0, int linestyle=1){
	h.SetMarkerSize(size);
	h.SetMarkerColor(color);
	h.SetLineColor(color);
	h.SetMarkerStyle(style);
	h.SetFillStyle(fillstyle);
	h.SetLineStyle(linestyle);
	h.GetXaxis()->SetTitleFont(42);
	h.GetYaxis()->SetTitleFont(42);
	h.GetXaxis()->SetTitleSize(0.048);
	h.GetYaxis()->SetTitleSize(0.048);
	h.GetXaxis()->CenterTitle();
	h.GetYaxis()->CenterTitle();
}
void histogramStyle(TH1& hist, int color, int lineStyle, int markerStyle, float markersize, int filled) 
{
  hist.SetLineWidth(3);
  hist.SetStats(kFALSE);
  hist.SetLineColor  (color);
  hist.SetMarkerColor(color);  
  hist.SetMarkerStyle(markerStyle);
  hist.SetMarkerSize(markersize);
  hist.SetLineStyle(lineStyle);
  if(filled==1){
  hist.SetFillStyle(1001);
  hist.SetFillColor(color);
  }
  else{
    hist.SetFillStyle(0);
  }
}
void makePlot(const std::string& inputFilePath, const std::string& canvasName, const std::string& sample, int massPoint, const std::string& channel, double k, 
	      const std::string& inputFileName, const std::string& outputFilePath, const std::string& outputFileName)
{
  std::string inputFileName_full = Form("%s%s", inputFilePath.data(), inputFileName.data());
  TFile* inputFile = new TFile(inputFileName_full.data());
  if ( !inputFile ) {
    std::cerr << "Failed to open input file = " << inputFileName_full << " !!" << std::endl;
    assert(0);
  }

  inputFile->ls();

  TCanvas* canvas = dynamic_cast<TCanvas*>(inputFile->Get(canvasName.data()));
  if ( !canvas ) {
    std::cerr << "Failed to load canvas = " << canvasName << " !!" << std::endl;
    assert(0);
  }

  int idxPad = -1;
  if ( massPoint ==  90 ) idxPad = 1;
  if ( massPoint == 125 ) idxPad = 2;
  if ( massPoint == 200 ) idxPad = 3;
  if ( massPoint == 300 ) idxPad = 4;
  if ( massPoint == 500 ) idxPad = 5;
  if ( massPoint == 800 ) idxPad = 6;  
  if ( !(idxPad >= 1 && idxPad <= 6) ) {
    std::cerr << "Invalid sample = " << sample << " !!" << std::endl;
    assert(0);
  }
  TVirtualPad* pad = canvas->GetPad(idxPad);
  std::cout << "pad = " << pad << ": ClassName = " << pad->ClassName() << std::endl;

  TCanvas* canvas_new = new TCanvas("canvas_new", "canvas_new", 900, 800);
  canvas_new->SetFillColor(10);
  canvas_new->SetBorderSize(2);
  canvas_new->SetTopMargin(0.065);
  canvas_new->SetLeftMargin(0.17);
  canvas_new->SetBottomMargin(0.165);
  canvas_new->SetRightMargin(0.015);
  canvas_new->SetLogx(true);
  canvas_new->SetLogy(true);
  canvas_new->Draw();
  canvas_new->cd();

  //TList* pad_primitives = canvas->GetListOfPrimitives();
  TList* pad_primitives = pad->GetListOfPrimitives();

  TH1* histogramCA            = 0;
  TH1* histogramSVfit         = 0;
  TH1* histogramSVfitMEMkEq0  = 0;
  TH1* histogramSVfitMEMkNeq0 = 0;

  TIter pad_nextObj(pad_primitives);
  while ( TObject* obj = pad_nextObj() ) {
    std::string objName = "";
    if ( dynamic_cast<TNamed*>(obj) ) objName = (dynamic_cast<TNamed*>(obj))->GetName();    
    std::cout << "obj = " << obj << ": name = " << objName << ", type = " << obj->ClassName() << std::endl;

    TH1* tmpHistogram = dynamic_cast<TH1*>(obj);
    if ( tmpHistogram ) {
      std::cout << "tmpHistogram:" 
		<< " fillColor = " << tmpHistogram->GetFillColor() << ", fillStyle = " << tmpHistogram->GetFillStyle() << ","
		<< " lineColor = " << tmpHistogram->GetLineColor() << ", lineStyle = " << tmpHistogram->GetLineStyle() << ", lineWidth = " << tmpHistogram->GetLineWidth() << ","
		<< " markerColor = " << tmpHistogram->GetMarkerColor() << ", markerStyle = " << tmpHistogram->GetMarkerStyle() << ", markerSize = " << tmpHistogram->GetMarkerSize() << ","
		<< " integral = " << tmpHistogram->Integral() << std::endl;
      std::cout << "(mean = " << tmpHistogram->GetMean() << ", rms = " << tmpHistogram->GetRMS() << ": rms/mean = " << (tmpHistogram->GetRMS()/tmpHistogram->GetMean()) << ")" << std::endl;
      if ( tmpHistogram->GetLineColor() == 416 ) histogramCA            = tmpHistogram;
      if ( tmpHistogram->GetLineColor() == 600 ) histogramSVfit         = tmpHistogram;
      if ( tmpHistogram->GetLineColor() == 616 ) histogramSVfitMEMkEq0  = tmpHistogram;
      if ( tmpHistogram->GetLineColor() == 632 ) histogramSVfitMEMkNeq0 = tmpHistogram;
    }
  }

  if ( !(histogramCA && histogramSVfit && histogramSVfitMEMkEq0 && histogramSVfitMEMkNeq0) ) {
    std::cerr << "Failed to load histograms !!" << std::endl;
    assert(0);
  }

  //gStyle->SetLineStyleString(2,"40 10 10 10 10 10 10 10");
  //gStyle->SetLineStyleString(3,"25 15");
  //gStyle->SetLineStyleString(4,"60 25");

  //int colors[4] = { kBlack, kGreen - 6, kBlue - 7, kMagenta - 7  };
  int colors[4] = { 28, kGreen - 6, kBlue - 7, kBlack };
  //int lineStyles[4] = { 2, 3, 4, 1 };
  int lineStyles[4] = { 7, 1, 1, 1 };
  //int lineWidths[4] = { 3, 3, 4, 3 };
  int lineWidths[4] = { 3, 3, 1, 1 };
  int markerStyles[4] = { 20, 25, 21, 24 };
  int markerSizes[4] = { 2, 2, 2, 2 };

  histogramCA->SetFillColor(0);
  histogramCA->SetFillStyle(0);
  histogramCA->SetLineColor(colors[0]);
  histogramCA->SetLineStyle(lineStyles[0]);
  histogramCA->SetLineWidth(lineWidths[0]);
  histogramCA->SetMarkerColor(colors[0]);
  histogramCA->SetMarkerStyle(markerStyles[0]);
  histogramCA->SetMarkerSize(markerSizes[0]);

  histogramSVfit->SetFillColor(0);
  histogramSVfit->SetFillStyle(0);
  histogramSVfit->SetLineColor(colors[1]);
  histogramSVfit->SetLineStyle(lineStyles[1]);
  histogramSVfit->SetLineWidth(lineWidths[1]);
  histogramSVfit->SetMarkerColor(colors[1]);
  histogramSVfit->SetMarkerStyle(markerStyles[1]);
  histogramSVfit->SetMarkerSize(markerSizes[1]);

  histogramSVfitMEMkEq0->SetFillColor(0);
  histogramSVfitMEMkEq0->SetFillStyle(0);
  histogramSVfitMEMkEq0->SetLineColor(colors[2]);
  histogramSVfitMEMkEq0->SetLineStyle(lineStyles[2]);
  histogramSVfitMEMkEq0->SetLineWidth(lineWidths[2]);
  histogramSVfitMEMkEq0->SetMarkerColor(colors[2]);
  histogramSVfitMEMkEq0->SetMarkerStyle(markerStyles[2]);
  histogramSVfitMEMkEq0->SetMarkerSize(markerSizes[2]);
  // CV: fix pathological bins at high mass for which dN/dm increases
  int numBins = histogramSVfitMEMkEq0->GetNbinsX();
  for ( int idxBin = 1; idxBin <= numBins; ++idxBin ) {
    double binCenter = histogramSVfitMEMkEq0->GetBinCenter(idxBin);
    if ( (channel == "#tau_{h}#tau_{h}" && massPoint == 500 && binCenter > 1500.) ||
	 (channel == "#tau_{h}#tau_{h}" && massPoint == 800 && binCenter > 2000.) ||
	 (channel == "#mu#tau_{h}"      && massPoint == 500 && binCenter > 1500.) ||
	 (channel == "#mu#tau_{h}"      && massPoint == 800 && binCenter > 2500.) ) {
      histogramSVfitMEMkEq0->SetBinContent(idxBin, 0.);
    }
  }

  histogramSVfitMEMkNeq0->SetFillColor(0);
  histogramSVfitMEMkNeq0->SetFillStyle(0);
  histogramSVfitMEMkNeq0->SetLineColor(colors[3]);
  histogramSVfitMEMkNeq0->SetLineStyle(lineStyles[3]);
  histogramSVfitMEMkNeq0->SetLineWidth(lineWidths[3]);
  histogramSVfitMEMkNeq0->SetMarkerColor(colors[3]);
  histogramSVfitMEMkNeq0->SetMarkerStyle(markerStyles[3]);
  histogramSVfitMEMkNeq0->SetMarkerSize(markerSizes[3]);

  TAxis* xAxis = histogramCA->GetXaxis();
  xAxis->SetTitle("m_{#tau#tau} [GeV]");
  xAxis->SetTitleOffset(1.15);
  xAxis->SetTitleSize(0.070);
  xAxis->SetTitleFont(42);
  xAxis->SetLabelOffset(0.010);
  xAxis->SetLabelSize(0.055);
  xAxis->SetLabelFont(42);
  xAxis->SetTickLength(0.040);
  xAxis->SetNdivisions(510);

  //double xMin = 20.;
  //double xMax = xAxis->GetXmax();
  //xAxis->SetRangeUser(xMin, xMax);

  TAxis* yAxis = histogramCA->GetYaxis();
  yAxis->SetTitle("dN/dm_{#tau#tau} [1/GeV]");
  yAxis->SetTitleOffset(1.20);
  yAxis->SetTitleSize(0.070);
  yAxis->SetTitleFont(42);
  yAxis->SetLabelOffset(0.010);
  yAxis->SetLabelSize(0.055);
  yAxis->SetLabelFont(42);
  yAxis->SetTickLength(0.040);  
  yAxis->SetNdivisions(505);

  double massPoint_double = 0.;
  if ( massPoint == 90 ) massPoint_double = 91.2;
  else massPoint_double = massPoint;
  double dLog = (TMath::Log(5.*massPoint_double) - TMath::Log(50.))/25.; // xMin = 50, xMax = 5*massPoint, numBins = 25
  double binWidth = TMath::Exp(TMath::Log(massPoint_double) + 0.5*dLog) - TMath::Exp(TMath::Log(massPoint_double) - 0.5*dLog);
  double sf_binWidth = 1./binWidth;
  std::cout << "massPoint = " << massPoint << ": sf_binWidth = " << sf_binWidth << std::endl;

  histogramCA->SetTitle("");
  histogramCA->SetStats(false);
  histogramCA->SetMaximum(sf_binWidth*0.79);
  histogramCA->SetMinimum(sf_binWidth*1.1e-4);
  histogramCA->Draw("hist");
  histogramSVfit->Draw("histsame");
  //histogramSVfitMEMkEq0->Draw("histsame");
  histogramSVfitMEMkEq0->Draw("epsame");
  //histogramSVfitMEMkNeq0->Draw("histsame");
  histogramSVfitMEMkNeq0->Draw("epsame");
  histogramCA->Draw("axissame");

  //TPaveText* label_sample = new TPaveText(0.21, 0.86, 0.46, 0.94, "NDC");
  TPaveText* label_sample = new TPaveText(0.1700, 0.9475, 0.4600, 1.0375, "NDC");
  label_sample->SetFillStyle(0);
  label_sample->SetBorderSize(0);
  label_sample->AddText(sample.data());
  label_sample->SetTextFont(42);
  label_sample->SetTextSize(0.055);
  label_sample->SetTextColor(1);
  label_sample->SetTextAlign(13);
  label_sample->Draw();

  //TLegend* legend_new = new TLegend(0.225, 0.52, 0.41, 0.82, NULL, "brNDC");
  TLegend* legend_new = new TLegend(0.30, 0.30, 0.80, 0.80, NULL, "brNDC");
  legend_new->SetFillColor(10);
  legend_new->SetFillStyle(0);
  legend_new->SetBorderSize(0);
  legend_new->SetTextFont(42);
  legend_new->SetTextSize(0.055);
  legend_new->SetTextColor(1);
  legend_new->SetMargin(0.20);
  legend_new->AddEntry(histogramCA, "CA", "l");
  legend_new->AddEntry(histogramSVfit, "SVfit", "l");
  //legend_new->AddEntry(histogramSVfitMEMkEq0, "SVfitMEM (k=0)", "l");
  legend_new->AddEntry(histogramSVfitMEMkEq0, "SVfitMEM (k=0)", "p");
  //legend_new->AddEntry(histogramSVfitMEMkNeq0, Form("SVfitMEM(k=%1.0f)", k), "l");
  legend_new->AddEntry(histogramSVfitMEMkNeq0, Form("SVfitMEM (k=%1.0f)", k), "p");
  //legend_new->Draw();

  double label_channel_y0;
  if      ( channel == "e#mu"             ) label_channel_y0 = 0.9275;
  else if ( channel == "#mu#tau_{h}"      ) label_channel_y0 = 0.9400;
  else if ( channel == "#tau_{h}#tau_{h}" ) label_channel_y0 = 0.9350;
  else {
    std::cerr << "Invalid channel = " << channel << " !!" << std::endl;
    assert(0);
  }
  TPaveText* label_channel = new TPaveText(0.895, label_channel_y0, 0.975, label_channel_y0 + 0.055, "NDC");
  label_channel->SetFillStyle(0);
  label_channel->SetBorderSize(0);
  label_channel->AddText(channel.data());
  label_channel->SetTextFont(62);
  label_channel->SetTextSize(0.055);
  label_channel->SetTextColor(1);
  label_channel->SetTextAlign(31);
  label_channel->Draw();

  canvas_new->Update();

  std::string outputFileName_full = Form("%s%s", outputFilePath.data(), outputFileName.data());
  size_t idx = outputFileName_full.find_last_of('.');
  std::string outputFileName_plot = std::string(outputFileName_full, 0, idx);
  canvas_new->Print(std::string(outputFileName_plot).append(".pdf").data());
  canvas_new->Print(std::string(outputFileName_plot).append(".root").data());

  std::string channel_string;
  if      ( channel == "e#mu"             ) channel_string = "emu";
  else if ( channel == "#mu#tau_{h}"      ) channel_string = "muhad";
  else if ( channel == "#tau_{h}#tau_{h}" ) channel_string = "hadhad";
  else {
    std::cerr << "Invalid channel = " << channel << " !!" << std::endl;
    assert(0);
  }
  std::string outputFileName_legend = Form("makeSVfitMEM_PerformancePlots_legend_%s.pdf", channel_string.data());
  makePlot_legend(legend_new, outputFilePath, outputFileName_legend);

  delete label_sample;
  delete legend_new;
  delete label_channel;
  delete canvas_new;

  delete inputFile;
}
예제 #4
0
//------------------------------------------------------------------------------
void PlotAlignmentValidation::plotSubDetResiduals(bool plotNormHisto,unsigned int subDetId)
{
  setNiceStyle();
 
  gStyle->SetOptStat(11111);
  gStyle->SetOptFit(0000);

  TCanvas *c = new TCanvas("c", "c", 600,600);
  c->SetTopMargin(0.15);
  TString histoName= "";
  if (plotNormHisto) {histoName= "h_NormXprime";}
  else histoName= "h_Xprime_";
  switch (subDetId){
  case 1 : histoName+="TPBBarrel_0";break;
  case 2 : histoName+="TPEendcap_1";break;
  case 3 : histoName+="TPEendcap_2";break;
  case 4 : histoName+="TIBBarrel_0";break;
  case 5 : histoName+="TIDEndcap_1";break;
  case 6 : histoName+="TIDEndcap_2";break;
  case 7 : histoName+="TOBBarrel_3";break;
  case 8 : histoName+="TECEndcap_4";break;
  case 9 : histoName+="TECEndcap_5";break;
  }
  int tmpcounter = 0;
  TH1 *sumHisto = 0;
  for(std::vector<TkOfflineVariables*>::iterator it = sourceList.begin();
      it != sourceList.end(); ++it) {
    if (tmpcounter == 0 ) {
      TFile *f= (*it)->getFile();
      sumHisto =(TH1*) f->FindKeyAny(histoName)->ReadObj();//FindObjectAny(histoName.Data());
      sumHisto->SetLineColor(tmpcounter+1);
      sumHisto->SetLineStyle(tmpcounter+1);
      sumHisto->GetFunction("tmp")->SetBit(TF1::kNotDraw);
      sumHisto->Draw();
      
      //get statistic box coordinate to plot all boxes one below the other
      //gStyle->SetStatY(0.91);
      //gStyle->SetStatW(0.15);
      //gStyle->SetStatBorderSize(1);
      //gStyle->SetStatH(0.10);
      
      
      tmpcounter++;
    } else {
      sumHisto = (TH1*) (*it)->getFile()->FindObjectAny(histoName);
      sumHisto->SetLineColor(tmpcounter+1);
      sumHisto->SetLineStyle(tmpcounter+1);
      sumHisto->GetFunction("tmp")->SetBit(TF1::kNotDraw);
      //hstack->Add(sumHisto);
      
      c->Update();
      tmpcounter++;  
    }
    TObject *statObj = sumHisto->GetListOfFunctions()->FindObject("stats");
    if (statObj && statObj->InheritsFrom(TPaveStats::Class())) {
      TPaveStats *stats = static_cast<TPaveStats*>(statObj);
      stats->SetLineColor(tmpcounter+1);
      stats->SetTextColor(tmpcounter+1);
      stats->SetFillColor(10);
      stats->SetX1NDC(0.91-tmpcounter*0.1);
      stats->SetX2NDC(0.15);
      stats->SetY1NDC(1);
      stats->SetY2NDC(0.10);
      sumHisto->Draw("sames");
    }
  }
  //hstack->Draw("nostack");
  char PlotName[1000];
  sprintf( PlotName, "%s/%s.eps", outputDir.c_str(), histoName.Data() );
  
  c->Print(PlotName);
  //delete c;
  //c=0;
    
}
예제 #5
0
//------------------------------------------------------------------------------
THStack* PlotAlignmentValidation::addHists(const char *selection, const TString &residType,
					   bool printModuleIds)
{
  enum ResidType {
    xPrimeRes, yPrimeRes, xPrimeNormRes, yPrimeNormRes, xRes, yRes, xNormRes, /*yResNorm*/
    ResXvsXProfile,  ResXvsYProfile, ResYvsXProfile, ResYvsYProfile
  };
  ResidType rType = xPrimeRes;
  if (residType == "xPrime") rType = xPrimeRes;
  else if (residType == "yPrime") rType = yPrimeRes;
  else if (residType == "xPrimeNorm") rType = xPrimeNormRes;
  else if (residType == "yPrimeNorm") rType = yPrimeNormRes;
  else if (residType == "x") rType = xRes;
  else if (residType == "y") rType = yRes;
  else if (residType == "xNorm") rType = xNormRes;
  // else if (residType == "yNorm") rType = yResNorm;
  else if (residType == "ResXvsXProfile") rType = ResXvsXProfile;
  else if (residType == "ResYvsXProfile") rType = ResYvsXProfile;
  else if (residType == "ResXvsYProfile") rType = ResXvsYProfile;
  else if (residType == "ResYvsYProfile") rType = ResYvsYProfile;
  else {
    std::cout << "PlotAlignmentValidation::addHists: Unknown residual type "
	      << residType << std::endl; 
    return 0;
  }

  cout << "PlotAlignmentValidation::addHists: using selection " << selection << endl;
  THStack * retHistoStack = new THStack();
  double legendY = 0.80;
  TLegend * myLegend = new TLegend(0.17, legendY, 0.85, 0.88);
  setLegendStyle( *myLegend );

  for(std::vector<TkOfflineVariables*>::iterator itSourceFile = sourceList.begin();
      itSourceFile != sourceList.end(); ++itSourceFile) {

    //  TFile *f = (*sourceList.begin())->getFile();
    TFile *f = (*itSourceFile)->getFile();
    //  TTree *tree= (*sourceList.begin())->getTree();
    TTree *tree= (*itSourceFile)->getTree();
    int myLineColor = (*itSourceFile)->getLineColor();
    int myLineStyle = (*itSourceFile)->getLineStyle();
    TString myLegendName = (*itSourceFile)->getName();
    if (!f || !tree) {
      std::cout << "PlotAlignmentValidation::addHists: no tree or no file" << std::endl;
      return 0;
    }

    // Todo: TLegend?
  
    // first loop on tree to find out which entries (i.e. modules) fulfill the selection
    // 'Entry$' gives the entry number in the tree
    Long64_t nSel = tree->Draw("Entry$", selection, "goff");
    if (nSel == -1) return 0; // error in selection
    if (nSel == 0) {
      std::cout << "PlotAlignmentValidation::addHists: no selected module." << std::endl;
      return 0;
    }
    // copy entry numbers that fulfil the selection
    const std::vector<double> selected(tree->GetV1(), tree->GetV1() + nSel);

    TH1 *h = 0;       // becomes result
    UInt_t nEmpty = 0;// selected, but empty hists
    Long64_t nentries =  tree->GetEntriesFast();
    std::vector<double>::const_iterator iterEnt = selected.begin();

    // second loop on tree:
    // for each selected entry get the hist from the file and merge
    TkOffTreeVariables *treeMem = 0; // ROOT will initialise
    tree->SetBranchAddress("TkOffTreeVariables", &treeMem);
    for (Long64_t i = 0; i < nentries; i++){
      if (i < *iterEnt - 0.1             // smaller index (with tolerance): skip
	  || iterEnt == selected.end()) { // at the end: skip 
	continue;
      } else if (TMath::Abs(i - *iterEnt) < 0.11) {
	++iterEnt; // take this entry!
      } else std::cout << "Must not happen: " << i << " " << *iterEnt << std::endl;

      tree->GetEntry(i);
      if (printModuleIds) {
	std::cout << treeMem->moduleId << ": " << treeMem->entries << " entries" << std::endl;
      }
      if (treeMem->entries <= 0) {  // little speed up: skip empty hists
	++nEmpty;
	continue;
      }
      TString hName;
      switch(rType) {
      case xPrimeRes:     hName = treeMem->histNameX.c_str();          break;
      case yPrimeRes:     hName = treeMem->histNameY.c_str();          break;
      case xPrimeNormRes: hName = treeMem->histNameNormX.c_str();      break;
      case yPrimeNormRes: hName = treeMem->histNameNormY.c_str();      break;
      case xRes:          hName = treeMem->histNameLocalX.c_str();     break;
      case yRes:          hName = treeMem->histNameLocalY.c_str();     break;
      case xNormRes:      hName = treeMem->histNameNormLocalX.c_str(); break;
	/*case yResNorm:      hName = treeMem->histNameNormLocalY.c_str(); break;*/
      case ResXvsXProfile: hName = treeMem->profileNameResXvsX.c_str();    break;
      case ResXvsYProfile: hName = treeMem->profileNameResXvsY.c_str();    break;
      case ResYvsXProfile: hName = treeMem->profileNameResYvsX.c_str();    break;
      case ResYvsYProfile: hName = treeMem->profileNameResYvsY.c_str();    break;
      }
      TKey *histKey = f->FindKeyAny(hName);
      TH1 *newHist = (histKey ? static_cast<TH1*>(histKey->ReadObj()) : 0);
      if (!newHist) {
	std::cout << "Hist " << hName << " not found in file, break loop." << std::endl;
	break;
      }
      newHist->SetLineColor(myLineColor);
      newHist->SetLineStyle(myLineStyle);
      if (!h) { // first hist: clone, but rename keeping only first part of name
	TString name(newHist->GetName());
	Ssiz_t pos_ = 0;
	for (UInt_t i2 = 0; i2 < 3; ++i2) pos_ = name.Index("_", pos_+1);
	name = name(0, pos_); // only up to three '_'
	h = static_cast<TH1*>(newHist->Clone("summed_"+name));
	//      TString myTitle = Form("%s: %lld modules", selection, nSel);
	//	h->SetTitle( myTitle );
      } else { // otherwise just add
	h->Add(newHist);
      }
      delete newHist;
    }

    std::cout << "PlotAlignmentValidation::addHists" << "Result is merged from " << nSel-nEmpty
	      << " modules, " << nEmpty << " hists were empty." << std::endl;

    if (nSel-nEmpty == 0) continue;

    myLegend->AddEntry(myLegendName, myLegendName, "L");
    
    retHistoStack->Add(h);
  }
  myLegend->Draw();
  return retHistoStack;
}
예제 #6
0
//------------------------------------------
TH1* GetHistoClSize(int npix,int id,TObjArray* harr)
{
  // book histos
  TH1* h = 0;
  if (!harr) harr = &histoArr;
  //
  if (npix<1) {
    if (harr->GetEntriesFast()>=id && (h=(TH1*)harr->At(id))) return h;
    h = new TH1F("npixAll","npixAll",150,0.5,54.5); 
    h->SetDirectory(0);
    h->SetLineColor(kRed);
    harr->AddAtAndExpand(h, kNPixAll);
    //
    h = new TH1F("npixSpl","npixSpl",150,0.5,54.5);
    h->SetLineColor(kBlue);
    h->SetDirectory(0);
    harr->AddAtAndExpand(h, kNPixSPL);
    //
    h = (TH1*)harr->At(id);
    if (!h) {printf("Unknown histo id=%d\n",id); exit(1);}
    return h;
  }
  //
  int idh = npix*10+id;
  if (harr->GetEntriesFast()>=idh && (h=(TH1*)harr->At(idh))) return h;
  //
  const int nbin=100;
  const double kdiff=80;
  // need to create set of histos
  //
  h = new TH1F(Form("dxy_npix%d",npix),Form("dr_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetDirectory(0);
  harr->AddAtAndExpand(h, npix*10 + kDR);
  //
  h  = new TH1F(Form("dtxODD_npix%d",npix),Form("dtxODD_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetDirectory(0);
  h->SetLineColor(kRed);
  harr->AddAtAndExpand(h, npix*10 + kDTXodd);
  h  = new TH1F(Form("dtxEVN_npix%d",npix),Form("dtxEVN_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetDirectory(0);
  h->SetLineColor(kBlue);
  harr->AddAtAndExpand(h, npix*10 + kDTXeven);
  //
  h  = new TH1F(Form("dtz_npix%d",npix),Form("dtz_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetLineColor(kGreen);
  h->SetDirectory(0);
  harr->AddAtAndExpand(h, npix*10 + kDTZ);
  //
  //
  h  = new TH1F(Form("SPL_dtxODD_npix%d",npix),Form("SPL_dtxODD_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetLineColor(kMagenta);
  h->SetFillColor(kMagenta);
  h->SetFillStyle(3001);  
  h->SetLineStyle(2);
  h->SetDirectory(0);

  harr->AddAtAndExpand(h, npix*10 + kDTXoddSPL);
  h  = new TH1F(Form("SPL_dtxEVN_npix%d",npix),Form("SPL_dtxEVN_npix%d",npix),nbin,-kdiff,kdiff);
  h->SetLineColor(kCyan);
  h->SetFillColor(kCyan);
  h->SetFillStyle(3006);  
  h->SetLineStyle(2);
  h->SetDirectory(0);
  harr->AddAtAndExpand(h, npix*10 + kDTXevenSPL);
  //
  h  = new TH1F(Form("SPL_dtz_npix%d",npix),Form("SPLdtz_npix%d",npix),nbin,-kdiff,kdiff);
  harr->AddAtAndExpand(h, npix*10 + kDTZSPL);
  h->SetDirectory(0);
  //
  h->SetLineColor(kGreen+2);
  h->SetFillColor(kGreen+2);
  h->SetLineStyle(2);
  h->SetFillStyle(3001);
  h = (TH1*)harr->At(idh);
  if (!h) {printf("Unknown histo id=%d\n",idh); exit(1);}
  return h;
}
void makePlot(const std::string& inputFilePath, const std::string& canvasName, const std::string& histogram, const std::string& channel, const std::string& xAxisTitle, const std::string& yAxisTitle,
	      const std::string& inputFileName, const std::string& outputFilePath, const std::string& outputFileName)
{
  std::string inputFileName_full = Form("%s%s", inputFilePath.data(), inputFileName.data());
  TFile* inputFile = new TFile(inputFileName_full.data());
  if ( !inputFile ) {
    std::cerr << "Failed to open input file = " << inputFileName_full << " !!" << std::endl;
    assert(0);
  }

  inputFile->ls();

  TCanvas* canvas = dynamic_cast<TCanvas*>(inputFile->Get(canvasName.data()));
  if ( !canvas ) {
    std::cerr << "Failed to load canvas = " << canvasName << " !!" << std::endl;
    assert(0);
  }

  int idxPad = -1;
  if ( histogram == "mVis"    ) idxPad = 1;
  if ( histogram == "mTauTau" ) idxPad = 2;
  if ( !(idxPad >= 1 && idxPad <= 2) ) {
    std::cerr << "Invalid histogram = " << histogram << " !!" << std::endl;
    assert(0);
  }
  TVirtualPad* pad = canvas->GetPad(idxPad);
  std::cout << "pad = " << pad << ": ClassName = " << pad->ClassName() << std::endl;

  TCanvas* canvas_new = new TCanvas("canvas_new", "canvas_new", 900, 850);
  canvas_new->SetFillColor(10);
  canvas_new->SetBorderSize(2);
  canvas_new->SetTopMargin(0.065);
  canvas_new->SetLeftMargin(0.17);
  canvas_new->SetBottomMargin(0.155);
  canvas_new->SetRightMargin(0.045);
  canvas_new->SetLogx(false);
  canvas_new->SetLogy(false);
  canvas_new->Draw();
  canvas_new->cd();

  //TList* pad_primitives = canvas->GetListOfPrimitives();
  TList* pad_primitives = pad->GetListOfPrimitives();

  TH1* histogramDYJets   = 0;
  TH1* histogramHiggs125 = 0;
  TH1* histogramHiggs200 = 0;
  TH1* histogramHiggs300 = 0;

  TIter pad_nextObj(pad_primitives);
  while ( TObject* obj = pad_nextObj() ) {
    std::string objName = "";
    if ( dynamic_cast<TNamed*>(obj) ) objName = (dynamic_cast<TNamed*>(obj))->GetName();    
    std::cout << "obj = " << obj << ": name = " << objName << ", type = " << obj->ClassName() << std::endl;

    TH1* tmpHistogram = dynamic_cast<TH1*>(obj);
    if ( tmpHistogram ) {
      std::cout << "tmpHistogram:" 
		<< " fillColor = " << tmpHistogram->GetFillColor() << ", fillStyle = " << tmpHistogram->GetFillStyle() << ","
		<< " lineColor = " << tmpHistogram->GetLineColor() << ", lineStyle = " << tmpHistogram->GetLineStyle() << ", lineWidth = " << tmpHistogram->GetLineWidth() << ","
		<< " markerColor = " << tmpHistogram->GetMarkerColor() << ", markerStyle = " << tmpHistogram->GetMarkerStyle() << ", markerSize = " << tmpHistogram->GetMarkerSize() << ","
		<< " integral = " << tmpHistogram->Integral() << std::endl;
      if ( tmpHistogram->GetFillColor() ==   0 ) histogramDYJets   = tmpHistogram;
      if ( tmpHistogram->GetFillColor() == 632 ) histogramHiggs125 = tmpHistogram;
      if ( tmpHistogram->GetFillColor() == 616 ) histogramHiggs200 = tmpHistogram;
      if ( tmpHistogram->GetFillColor() == 600 ) histogramHiggs300 = tmpHistogram;
    }
  }

  if ( !(histogramDYJets && histogramHiggs125 && histogramHiggs200 && histogramHiggs300) ) {
    std::cerr << "Failed to load histograms !!" << std::endl;
    assert(0);
  }

  int lineColors[4] = { 1, 2, 6, 4 };
  int lineStyles[4] = { 1, 1, 1, 1 };
  int lineWidths[4] = { 2, 2, 2, 2 };
  int fillColors[4] = { 10, 2, 6, 4 };
  int fillStyles[4] = { 0, 3002, 3004, 3005 };

  histogramDYJets->SetFillColor(fillColors[0]);
  histogramDYJets->SetFillStyle(fillStyles[0]);
  histogramDYJets->SetLineColor(lineColors[0]);
  histogramDYJets->SetLineStyle(lineStyles[0]);
  histogramDYJets->SetLineWidth(lineWidths[0]);

  histogramHiggs125->SetFillColor(fillColors[1]);
  histogramHiggs125->SetFillStyle(fillStyles[1]);
  histogramHiggs125->SetLineColor(lineColors[1]);
  histogramHiggs125->SetLineStyle(lineStyles[1]);
  histogramHiggs125->SetLineWidth(lineWidths[1]);

  histogramHiggs200->SetFillColor(fillColors[2]);
  histogramHiggs200->SetFillStyle(fillStyles[2]);
  histogramHiggs200->SetLineColor(lineColors[2]);
  histogramHiggs200->SetLineStyle(lineStyles[2]);
  histogramHiggs200->SetLineWidth(lineWidths[2]);

  histogramHiggs300->SetFillColor(fillColors[3]);
  histogramHiggs300->SetFillStyle(fillStyles[3]);
  histogramHiggs300->SetLineColor(lineColors[3]);
  histogramHiggs300->SetLineStyle(lineStyles[3]);
  histogramHiggs300->SetLineWidth(lineWidths[3]);

  TAxis* xAxis = histogramHiggs300->GetXaxis();
  if ( histogram == "mVis"    ) xAxis->SetRangeUser(0,350);
  else xAxis->SetRangeUser(0,450);
  xAxis->SetTitle(xAxisTitle.data());
  xAxis->SetTitleOffset(1.00);
  xAxis->SetTitleSize(0.070);
  xAxis->SetTitleFont(42);
  xAxis->SetLabelOffset(0.010);
  xAxis->SetLabelSize(0.050);
  xAxis->SetLabelFont(42);
  xAxis->SetTickLength(0.040);
  xAxis->SetNdivisions(505);

  //double xMin = 20.;
  //double xMax = xAxis->GetXmax();
  //xAxis->SetRangeUser(xMin, xMax);

  TAxis* yAxis = histogramHiggs300->GetYaxis();
  yAxis->SetTitle(yAxisTitle.data());
  yAxis->SetTitleOffset(1.20);
  yAxis->SetTitleSize(0.070);
  yAxis->SetTitleFont(42);
  yAxis->SetLabelOffset(0.010);
  yAxis->SetLabelSize(0.055);
  yAxis->SetLabelFont(42);
  yAxis->SetTickLength(0.040);  
  yAxis->SetNdivisions(505);

  histogramHiggs300->SetTitle("");
  histogramHiggs300->SetStats(false);
  histogramHiggs300->SetMaximum(1.2*histogramDYJets->GetMaximum());
  histogramHiggs300->SetMinimum(0.);
  histogramHiggs300->Draw("hist");
  histogramHiggs200->Draw("histsame");
  histogramHiggs125->Draw("histsame");
  histogramDYJets->Draw("histsame");
  histogramHiggs300->Draw("axissame");

  TLegend* legend_new = new TLegend(0.50, 0.62, 0.87, 0.92, NULL, "brNDC");
  legend_new->SetFillColor(10);
  legend_new->SetFillStyle(0);
  legend_new->SetBorderSize(0);
  legend_new->SetTextFont(42);
  legend_new->SetTextSize(0.055);
  legend_new->SetTextColor(1);
  legend_new->SetMargin(0.20);
  legend_new->AddEntry(histogramDYJets, "Z/#gamma* #rightarrow #tau#tau", "f");
  legend_new->AddEntry(histogramHiggs125, "H(125 GeV) #rightarrow #tau#tau", "f");
  legend_new->AddEntry(histogramHiggs200, "H(200 GeV) #rightarrow #tau#tau", "f");
  legend_new->AddEntry(histogramHiggs300, "H(300 GeV) #rightarrow #tau#tau", "f");
  legend_new->Draw();

  double label_channel_y0;
  if      ( channel == "e#mu"             ) label_channel_y0 = 0.9275;
  else if ( channel == "#mu#tau_{h}"      ) label_channel_y0 = 0.9400;
  else if ( channel == "#tau_{h}#tau_{h}" ) label_channel_y0 = 0.9350;
  else {
    std::cerr << "Invalid channel = " << channel << " !!" << std::endl;
    assert(0);
  }
  TPaveText* label_channel = new TPaveText(0.855, label_channel_y0, 0.945, label_channel_y0 + 0.055, "NDC");
  label_channel->SetFillStyle(0);
  label_channel->SetBorderSize(0);
  label_channel->AddText(channel.data());
  label_channel->SetTextFont(62);
  label_channel->SetTextSize(0.055);
  label_channel->SetTextColor(1);
  label_channel->SetTextAlign(31);
  label_channel->Draw();

  canvas_new->Update();

  std::string outputFileName_full = Form("%s%s", outputFilePath.data(), outputFileName.data());
  size_t idx = outputFileName_full.find_last_of('.');
  std::string outputFileName_plot = std::string(outputFileName_full, 0, idx);
  canvas_new->Print(std::string(outputFileName_plot).append(".pdf").data());
  //canvas_new->Print(std::string(outputFileName_plot).append(".root").data());

  delete legend_new;
  delete label_channel;
  delete canvas_new;

  delete inputFile;
}
예제 #8
0
파일: trigeff.C 프로젝트: CmsHI/CVS_ASYoon
void trigeff(){

   gROOT->Reset();
//=========Macro generated from canvas: cEvtSel/EvtSel
//=========  (Wed Apr 14 17:19:34 2010) by ROOT version5.22/00d

   TCanvas *cEvtSel = new TCanvas("cEvtSel", "EvtSel",550,600);

   /*
   TCanvas *cEvtSel = new TCanvas("cEvtSel", "EvtSel",0,22,550,600);
   gStyle->SetOptFit(1);
   gStyle->SetOptStat(0);
   cEvtSel->Range(-13.62658,-0.215625,63.58861,1.221875);
   cEvtSel->SetFillColor(0);
   cEvtSel->SetBorderMode(0);
   cEvtSel->SetBorderSize(0);
   cEvtSel->SetTickx(1);
   cEvtSel->SetTicky(1);
   cEvtSel->SetLeftMargin(0.17);
   cEvtSel->SetRightMargin(0.04);
   cEvtSel->SetTopMargin(0.05);
   cEvtSel->SetBottomMargin(0.15);
   cEvtSel->SetFrameLineColor(0);
   cEvtSel->SetFrameBorderMode(0);
   cEvtSel->SetFrameLineColor(0);
   cEvtSel->SetFrameBorderMode(0);
   */

   TH1 *hFrame1 = new TH2D("hFrame1","",1,-0.5,60.5,1,0,1.15);
   hFrame1->SetDirectory(0);
   hFrame1->SetStats(0);
   hFrame1->GetXaxis()->SetTitle("Charged-particle multiplicity");
   hFrame1->GetXaxis()->CenterTitle(true);
   hFrame1->GetYaxis()->SetTitle("Selection efficiency");
   hFrame1->GetYaxis()->CenterTitle(true);
   hFrame1->Draw("");
   
   hFrame1->GetXaxis()->SetNdivisions(312);

   /*
   TH1 *hFrame1 = new TH2D("hFrame1","",1,-0.5,60.5,1,0,1.15);
   hFrame1->SetDirectory(0);
   hFrame1->SetStats(0);
   hFrame1->SetFillColor(1);
   hFrame1->SetFillStyle(0);
   hFrame1->SetLineStyle(0);
   hFrame1->SetMarkerStyle(20);
   hFrame1->SetMarkerSize(1.5);
   hFrame1->GetXaxis()->SetTitle("Charged-particle multiplicity");
   hFrame1->GetXaxis()->CenterTitle(true);
   hFrame1->GetXaxis()->SetNdivisions(312);
   hFrame1->GetXaxis()->SetLabelFont(42);
   hFrame1->GetXaxis()->SetLabelOffset(0.01);
   hFrame1->GetXaxis()->SetLabelSize(0.045);
   hFrame1->GetXaxis()->SetTitleSize(0.055);
   hFrame1->GetXaxis()->SetTitleFont(42);
   hFrame1->GetYaxis()->SetTitle("Selection efficiency");
   hFrame1->GetYaxis()->CenterTitle(true);
   hFrame1->GetYaxis()->SetLabelFont(42);
   hFrame1->GetYaxis()->SetLabelOffset(0.01);
   hFrame1->GetYaxis()->SetLabelSize(0.045);
   hFrame1->GetYaxis()->SetTitleSize(0.055);
   hFrame1->GetYaxis()->SetTitleOffset(1.6);
   hFrame1->GetYaxis()->SetTitleFont(42);
   hFrame1->GetZaxis()->SetLabelFont(42);
   hFrame1->GetZaxis()->SetLabelSize(0.045);
   hFrame1->GetZaxis()->SetTitleFont(42);
   hFrame1->Draw("");
   */
   
   TH1 *trigeff = new TH1D("trigeff","trigeff",200,0,200);
   trigeff->SetBinContent(1,0.007879584);
   trigeff->SetBinContent(2,0.3524112);
   trigeff->SetBinContent(3,0.5050529);
   trigeff->SetBinContent(4,0.5978595);
   trigeff->SetBinContent(5,0.6587795);
   trigeff->SetBinContent(6,0.7034895);
   trigeff->SetBinContent(7,0.7451056);
   trigeff->SetBinContent(8,0.7911818);
   trigeff->SetBinContent(9,0.8363224);
   trigeff->SetBinContent(10,0.873251);
   trigeff->SetBinContent(11,0.9012649);
   trigeff->SetBinContent(12,0.9177872);
   trigeff->SetBinContent(13,0.9395182);
   trigeff->SetBinContent(14,0.9502278);
   trigeff->SetBinContent(15,0.9600504);
   trigeff->SetBinContent(16,0.9667429);
   trigeff->SetBinContent(17,0.9722969);
   trigeff->SetBinContent(18,0.977478);
   trigeff->SetBinContent(19,0.9801504);
   trigeff->SetBinContent(20,0.9840849);
   trigeff->SetBinContent(21,0.9843521);
   trigeff->SetBinContent(22,0.9856779);
   trigeff->SetBinContent(23,0.9894354);
   trigeff->SetBinContent(24,0.9892805);
   trigeff->SetBinContent(25,0.9913111);
   trigeff->SetBinContent(26,0.9934833);
   trigeff->SetBinContent(27,0.9907814);
   trigeff->SetBinContent(28,0.9928126);
   trigeff->SetBinContent(29,0.990099);
   trigeff->SetBinContent(30,0.9918119);
   trigeff->SetBinContent(31,0.994504);
   trigeff->SetBinContent(32,0.9938513);
   trigeff->SetBinContent(33,0.993073);
   trigeff->SetBinContent(34,0.9965539);
   trigeff->SetBinContent(35,0.9955737);
   trigeff->SetBinContent(36,0.9952005);
   trigeff->SetBinContent(37,0.9940288);
   trigeff->SetBinContent(38,0.9946929);
   trigeff->SetBinContent(39,0.9973046);
   trigeff->SetBinContent(40,0.9959936);
   trigeff->SetBinContent(41,0.9964897);
   trigeff->SetBinContent(42,0.9943966);
   trigeff->SetBinContent(43,0.9940175);
   trigeff->SetBinContent(44,0.9947941);
   trigeff->SetBinContent(45,0.9960804);
   trigeff->SetBinContent(46,0.9970282);
   trigeff->SetBinContent(47,0.9963936);
   trigeff->SetBinContent(48,0.9968187);
   trigeff->SetBinContent(49,0.9956733);
   trigeff->SetBinContent(50,0.996085);
   trigeff->SetBinContent(51,0.9988466);
   trigeff->SetBinContent(52,0.9982079);
   trigeff->SetBinContent(53,0.99625);
   trigeff->SetBinContent(54,0.9962802);
   trigeff->SetBinContent(55,0.9980328);
   trigeff->SetBinContent(56,0.9960396);
   trigeff->SetBinContent(57,0.9993271);
   trigeff->SetBinContent(58,0.9978261);
   trigeff->SetBinContent(59,0.9950843);
   trigeff->SetBinContent(60,0.9992459);
   trigeff->SetBinContent(61,0.9977925);
   trigeff->SetBinContent(62,0.9960599);
   trigeff->SetBinContent(63,0.9952456);
   trigeff->SetBinContent(64,0.9960661);
   trigeff->SetBinContent(65,0.9965428);
   trigeff->SetBinContent(66,0.995094);
   trigeff->SetBinContent(67,0.9962441);
   trigeff->SetBinContent(68,0.9990842);
   trigeff->SetBinContent(69,0.9981413);
   trigeff->SetBinContent(70,0.9981007);
   trigeff->SetBinContent(71,0.9980676);
   trigeff->SetBinContent(72,0.9990512);
   trigeff->SetBinContent(73,0.9969636);
   trigeff->SetBinContent(74,0.9959432);
   trigeff->SetBinContent(75,0.9969008);
   trigeff->SetBinContent(76,0.994929);
   trigeff->SetBinContent(77,0.9978425);
   trigeff->SetBinContent(78,0.9989396);
   trigeff->SetBinContent(79,0.9955996);
   trigeff->SetBinContent(80,0.9988975);
   trigeff->SetBinContent(81,0.998829);
   trigeff->SetBinContent(82,0.9960682);
   trigeff->SetBinContent(83,0.9963986);
   trigeff->SetBinContent(84,0.995098);
   trigeff->SetBinContent(85,0.9962169);
   trigeff->SetBinContent(86,0.9973615);
   trigeff->SetBinContent(87,0.9987562);
   trigeff->SetBinContent(88,0.9987212);
   trigeff->SetBinContent(89,0.9987374);
   trigeff->SetBinContent(90,0.9986264);
   trigeff->SetBinContent(91,0.9972973);
   trigeff->SetBinContent(92,1);
   trigeff->SetBinContent(93,0.9959459);
   trigeff->SetBinContent(94,0.9945504);
   trigeff->SetBinContent(95,0.9985612);
   trigeff->SetBinContent(96,1);
   trigeff->SetBinContent(97,1);
   trigeff->SetBinContent(98,0.9968454);
   trigeff->SetBinContent(99,0.9983471);
   trigeff->SetBinContent(100,0.9968);
   trigeff->SetBinContent(101,0.9983871);
   trigeff->SetBinContent(102,0.9966044);
   trigeff->SetBinContent(103,0.9984);
   trigeff->SetBinContent(104,1);
   trigeff->SetBinContent(105,0.9946996);
   trigeff->SetBinContent(106,0.9946333);
   trigeff->SetBinContent(107,0.9981343);
   trigeff->SetBinContent(108,1);
   trigeff->SetBinContent(109,0.9962963);
   trigeff->SetBinContent(110,0.9923225);
   trigeff->SetBinContent(111,1);
   trigeff->SetBinContent(112,0.9979633);
   trigeff->SetBinContent(113,0.9978166);
   trigeff->SetBinContent(114,1);
   trigeff->SetBinContent(115,0.9980237);
   trigeff->SetBinContent(116,0.9952494);
   trigeff->SetBinContent(117,0.9979253);
   trigeff->SetBinContent(118,1);
   trigeff->SetBinContent(119,1);
   trigeff->SetBinContent(120,0.9950125);
   trigeff->SetBinContent(121,0.9975728);
   trigeff->SetBinContent(122,0.9921466);
   trigeff->SetBinContent(123,0.9974874);
   trigeff->SetBinContent(124,1);
   trigeff->SetBinContent(125,0.9974874);
   trigeff->SetBinContent(126,0.9969419);
   trigeff->SetBinContent(127,0.994723);
   trigeff->SetBinContent(128,0.9940299);
   trigeff->SetBinContent(129,1);
   trigeff->SetBinContent(130,0.9966667);
   trigeff->SetBinContent(131,1);
   trigeff->SetBinContent(132,1);
   trigeff->SetBinContent(133,0.9931507);
   trigeff->SetBinContent(134,0.9963504);
   trigeff->SetBinContent(135,1);
   trigeff->SetBinContent(136,0.9959677);
   trigeff->SetBinContent(137,1);
   trigeff->SetBinContent(138,1);
   trigeff->SetBinContent(139,1);
   trigeff->SetBinContent(140,0.9959514);
   trigeff->SetBinContent(141,1);
   trigeff->SetBinContent(142,0.9955556);
   trigeff->SetBinContent(143,1);
   trigeff->SetBinContent(144,1);
   trigeff->SetBinContent(145,1);
   trigeff->SetBinContent(146,0.989418);
   trigeff->SetBinContent(147,0.9940828);
   trigeff->SetBinContent(148,1);
   trigeff->SetBinContent(149,0.9942857);
   trigeff->SetBinContent(150,1);
   trigeff->SetBinContent(151,1);
   trigeff->SetBinContent(152,1);
   trigeff->SetBinContent(153,1);
   trigeff->SetBinContent(154,1);
   trigeff->SetBinContent(155,0.9923077);
   trigeff->SetBinContent(156,1);
   trigeff->SetBinContent(157,1);
   trigeff->SetBinContent(158,1);
   trigeff->SetBinContent(159,1);
   trigeff->SetBinContent(160,0.9901961);
   trigeff->SetBinContent(161,1);
   trigeff->SetBinContent(162,1);
   trigeff->SetBinContent(163,1);
   trigeff->SetBinContent(164,1);
   trigeff->SetBinContent(165,0.9767442);
   trigeff->SetBinContent(166,1);
   trigeff->SetBinContent(167,1);
   trigeff->SetBinContent(168,1);
   trigeff->SetBinContent(169,1);
   trigeff->SetBinContent(170,1);
   trigeff->SetBinContent(171,1);
   trigeff->SetBinContent(172,1);
   trigeff->SetBinContent(173,0.9807692);
   trigeff->SetBinContent(174,1);
   trigeff->SetBinContent(175,0.9850746);
   trigeff->SetBinContent(176,1);
   trigeff->SetBinContent(177,1);
   trigeff->SetBinContent(178,1);
   trigeff->SetBinContent(179,1);
   trigeff->SetBinContent(180,1);
   trigeff->SetBinContent(181,1);
   trigeff->SetBinContent(182,1);
   trigeff->SetBinContent(183,1);
   trigeff->SetBinContent(184,1);
   trigeff->SetBinContent(185,1);
   trigeff->SetBinContent(186,1);
   trigeff->SetBinContent(187,1);
   trigeff->SetBinContent(188,1);
   trigeff->SetBinContent(189,1);
   trigeff->SetBinContent(190,1);
   trigeff->SetBinContent(191,1);
   trigeff->SetBinContent(192,1);
   trigeff->SetBinContent(193,1);
   trigeff->SetBinContent(194,1);
   trigeff->SetBinContent(195,0.9333333);
   trigeff->SetBinContent(196,1);
   trigeff->SetBinContent(197,0.9230769);
   trigeff->SetBinContent(198,1);
   trigeff->SetBinContent(199,1);
   trigeff->SetBinContent(200,1);
   trigeff->SetBinContent(201,1);
   trigeff->SetBinError(1,0.0006283812);
   trigeff->SetBinError(2,0.005498682);
   trigeff->SetBinError(3,0.0054516);
   trigeff->SetBinError(4,0.005047444);
   trigeff->SetBinError(5,0.004707652);
   trigeff->SetBinError(6,0.004447388);
   trigeff->SetBinError(7,0.004290336);
   trigeff->SetBinError(8,0.003953715);
   trigeff->SetBinError(9,0.003594607);
   trigeff->SetBinError(10,0.003181503);
   trigeff->SetBinError(11,0.002795854);
   trigeff->SetBinError(12,0.002534088);
   trigeff->SetBinError(13,0.002203234);
   trigeff->SetBinError(14,0.002035759);
   trigeff->SetBinError(15,0.001857668);
   trigeff->SetBinError(16,0.001750359);
   trigeff->SetBinError(17,0.001668633);
   trigeff->SetBinError(18,0.001566698);
   trigeff->SetBinError(19,0.001548763);
   trigeff->SetBinError(20,0.001441238);
   trigeff->SetBinError(21,0.001500853);
   trigeff->SetBinError(22,0.001498831);
   trigeff->SetBinError(23,0.001345494);
   trigeff->SetBinError(24,0.001388057);
   trigeff->SetBinError(25,0.001289631);
   trigeff->SetBinError(26,0.001166616);
   trigeff->SetBinError(27,0.001415891);
   trigeff->SetBinError(28,0.0013075);
   trigeff->SetBinError(29,0.001557715);
   trigeff->SetBinError(30,0.001464586);
   trigeff->SetBinError(31,0.001225565);
   trigeff->SetBinError(32,0.001306868);
   trigeff->SetBinError(33,0.001471707);
   trigeff->SetBinError(34,0.001037251);
   trigeff->SetBinError(35,0.001224911);
   trigeff->SetBinError(36,0.001279626);
   trigeff->SetBinError(37,0.001443898);
   trigeff->SetBinError(38,0.0014146);
   trigeff->SetBinError(39,0.001017398);
   trigeff->SetBinError(40,0.001264398);
   trigeff->SetBinError(41,0.001238902);
   trigeff->SetBinError(42,0.001549757);
   trigeff->SetBinError(43,0.00165428);
   trigeff->SetBinError(44,0.001565537);
   trigeff->SetBinError(45,0.001383086);
   trigeff->SetBinError(46,0.001211415);
   trigeff->SetBinError(47,0.001360627);
   trigeff->SetBinError(48,0.001296707);
   trigeff->SetBinError(49,0.001526394);
   trigeff->SetBinError(50,0.001476827);
   trigeff->SetBinError(51,0.0008151083);
   trigeff->SetBinError(52,0.00103375);
   trigeff->SetBinError(53,0.001528058);
   trigeff->SetBinError(54,0.001515765);
   trigeff->SetBinError(55,0.001134653);
   trigeff->SetBinError(56,0.00161362);
   trigeff->SetBinError(57,0.000672721);
   trigeff->SetBinError(58,0.001253744);
   trigeff->SetBinError(59,0.001853399);
   trigeff->SetBinError(60,0.0007538634);
   trigeff->SetBinError(61,0.001273096);
   trigeff->SetBinError(62,0.001758596);
   trigeff->SetBinError(63,0.001936339);
   trigeff->SetBinError(64,0.001755834);
   trigeff->SetBinError(65,0.001725618);
   trigeff->SetBinError(66,0.001997934);
   trigeff->SetBinError(67,0.001874404);
   trigeff->SetBinError(68,0.0009153315);
   trigeff->SetBinError(69,0.001313103);
   trigeff->SetBinError(70,0.001341757);
   trigeff->SetBinError(71,0.001365069);
   trigeff->SetBinError(72,0.0009483164);
   trigeff->SetBinError(73,0.001750424);
   trigeff->SetBinError(74,0.002024279);
   trigeff->SetBinError(75,0.001786534);
   trigeff->SetBinError(76,0.00226206);
   trigeff->SetBinError(77,0.001523934);
   trigeff->SetBinError(78,0.001059883);
   trigeff->SetBinError(79,0.002195374);
   trigeff->SetBinError(80,0.001101928);
   trigeff->SetBinError(81,0.001170274);
   trigeff->SetBinError(82,0.002265586);
   trigeff->SetBinError(83,0.002075545);
   trigeff->SetBinError(84,0.002444966);
   trigeff->SetBinError(85,0.00218004);
   trigeff->SetBinError(86,0.001863254);
   trigeff->SetBinError(87,0.001243007);
   trigeff->SetBinError(88,0.001277954);
   trigeff->SetBinError(89,0.001261829);
   trigeff->SetBinError(90,0.001372683);
   trigeff->SetBinError(91,0.001908515);
   trigeff->SetBinError(93,0.00233586);
   trigeff->SetBinError(94,0.002717361);
   trigeff->SetBinError(95,0.001437813);
   trigeff->SetBinError(98,0.0022271);
   trigeff->SetBinError(99,0.001651526);
   trigeff->SetBinError(100,0.002259118);
   trigeff->SetBinError(101,0.001611602);
   trigeff->SetBinError(102,0.002396962);
   trigeff->SetBinError(103,0.001598719);
   trigeff->SetBinError(105,0.00305204);
   trigeff->SetBinError(106,0.003090155);
   trigeff->SetBinError(107,0.00186393);
   trigeff->SetBinError(109,0.00261406);
   trigeff->SetBinError(110,0.003824007);
   trigeff->SetBinError(112,0.002034585);
   trigeff->SetBinError(113,0.002181021);
   trigeff->SetBinError(115,0.001974331);
   trigeff->SetBinError(116,0.003351189);
   trigeff->SetBinError(117,0.002072536);
   trigeff->SetBinError(120,0.003517911);
   trigeff->SetBinError(121,0.002424237);
   trigeff->SetBinError(122,0.004516325);
   trigeff->SetBinError(123,0.002509404);
   trigeff->SetBinError(125,0.002509404);
   trigeff->SetBinError(126,0.003053424);
   trigeff->SetBinError(127,0.003721576);
   trigeff->SetBinError(128,0.004208913);
   trigeff->SetBinError(130,0.003327773);
   trigeff->SetBinError(133,0.004826582);
   trigeff->SetBinError(134,0.003642969);
   trigeff->SetBinError(136,0.00402412);
   trigeff->SetBinError(140,0.004040379);
   trigeff->SetBinError(142,0.004434557);
   trigeff->SetBinError(146,0.007442916);
   trigeff->SetBinError(147,0.005899627);
   trigeff->SetBinError(149,0.005697936);
   trigeff->SetBinError(155,0.007662665);
   trigeff->SetBinError(160,0.009755745);
   trigeff->SetBinError(165,0.01625201);
   trigeff->SetBinError(173,0.01904496);
   trigeff->SetBinError(175,0.01481357);
   trigeff->SetBinError(195,0.06440612);
   trigeff->SetBinError(197,0.0739053);
   trigeff->SetEntries(385140);
   trigeff->SetDirectory(0);
   trigeff->SetFillColor(1);
   trigeff->SetFillStyle(0);
   trigeff->SetLineStyle(0);
   trigeff->SetLineWidth(2);
   trigeff->SetMarkerStyle(20);
   trigeff->SetMarkerSize(1.5);
   trigeff->GetXaxis()->SetTitle("M");
   trigeff->GetXaxis()->SetLabelFont(42);
   trigeff->GetXaxis()->SetLabelOffset(0.01);
   trigeff->GetXaxis()->SetLabelSize(0.045);
   trigeff->GetXaxis()->SetTitleSize(0.055);
   trigeff->GetXaxis()->SetTitleFont(42);
   trigeff->GetYaxis()->SetTitle("Selection efficiency");
   trigeff->GetYaxis()->SetLabelFont(42);
   trigeff->GetYaxis()->SetLabelOffset(0.01);
   trigeff->GetYaxis()->SetLabelSize(0.045);
   trigeff->GetYaxis()->SetTitleSize(0.055);
   trigeff->GetYaxis()->SetTitleOffset(1.6);
   trigeff->GetYaxis()->SetTitleFont(42);
   trigeff->GetZaxis()->SetLabelFont(42);
   trigeff->GetZaxis()->SetLabelSize(0.045);
   trigeff->GetZaxis()->SetTitleFont(42);
   trigeff->Draw("hist same");
   
   TH1 *trigeff = new TH1D("trigeff","trigeff",200,0,200);
   trigeff->SetBinContent(1,0.009007478);
   trigeff->SetBinContent(2,0.2935561);
   trigeff->SetBinContent(3,0.4702609);
   trigeff->SetBinContent(4,0.6518799);
   trigeff->SetBinContent(5,0.7428357);
   trigeff->SetBinContent(6,0.8347119);
   trigeff->SetBinContent(7,0.8777911);
   trigeff->SetBinContent(8,0.904666);
   trigeff->SetBinContent(9,0.9195271);
   trigeff->SetBinContent(10,0.9292373);
   trigeff->SetBinContent(11,0.9375605);
   trigeff->SetBinContent(12,0.9489987);
   trigeff->SetBinContent(13,0.9535653);
   trigeff->SetBinContent(14,0.9493052);
   trigeff->SetBinContent(15,0.9572732);
   trigeff->SetBinContent(16,0.9589076);
   trigeff->SetBinContent(17,0.9627003);
   trigeff->SetBinContent(18,0.9629964);
   trigeff->SetBinContent(19,0.9683917);
   trigeff->SetBinContent(20,0.9674429);
   trigeff->SetBinContent(21,0.9771153);
   trigeff->SetBinContent(22,0.9762201);
   trigeff->SetBinContent(23,0.9766491);
   trigeff->SetBinContent(24,0.9828982);
   trigeff->SetBinContent(25,0.9802921);
   trigeff->SetBinContent(26,0.9826494);
   trigeff->SetBinContent(27,0.9759428);
   trigeff->SetBinContent(28,0.9843614);
   trigeff->SetBinContent(29,0.9879452);
   trigeff->SetBinContent(30,0.9855582);
   trigeff->SetBinContent(31,0.9875656);
   trigeff->SetBinContent(32,0.9883436);
   trigeff->SetBinContent(33,0.9886389);
   trigeff->SetBinContent(34,0.9900587);
   trigeff->SetBinContent(35,0.9925793);
   trigeff->SetBinContent(36,0.9926954);
   trigeff->SetBinContent(37,0.9905261);
   trigeff->SetBinContent(38,0.993372);
   trigeff->SetBinContent(39,0.9899301);
   trigeff->SetBinContent(40,0.9913687);
   trigeff->SetBinContent(41,0.9920382);
   trigeff->SetBinContent(42,0.9901091);
   trigeff->SetBinContent(43,0.9941278);
   trigeff->SetBinContent(44,0.9865421);
   trigeff->SetBinContent(45,0.9902138);
   trigeff->SetBinContent(46,0.9965451);
   trigeff->SetBinContent(47,0.9961106);
   trigeff->SetBinContent(48,0.9951392);
   trigeff->SetBinContent(49,0.9951969);
   trigeff->SetBinContent(50,0.9960957);
   trigeff->SetBinContent(51,0.9981439);
   trigeff->SetBinContent(52,0.9962282);
   trigeff->SetBinContent(53,0.9973698);
   trigeff->SetBinContent(54,0.9976959);
   trigeff->SetBinContent(55,0.9933735);
   trigeff->SetBinContent(56,0.9956897);
   trigeff->SetBinContent(57,0.9953642);
   trigeff->SetBinContent(58,0.9902303);
   trigeff->SetBinContent(59,0.9985925);
   trigeff->SetBinContent(60,0.9986178);
   trigeff->SetBinContent(61,0.9991604);
   trigeff->SetBinContent(62,0.9983897);
   trigeff->SetBinContent(63,0.9940273);
   trigeff->SetBinContent(64,0.9952786);
   trigeff->SetBinContent(65,0.9977998);
   trigeff->SetBinContent(66,0.9972015);
   trigeff->SetBinContent(67,0.9908467);
   trigeff->SetBinContent(68,1);
   trigeff->SetBinContent(69,0.9988636);
   trigeff->SetBinContent(70,0.9933155);
   trigeff->SetBinContent(71,0.9986979);
   trigeff->SetBinContent(72,0.9969651);
   trigeff->SetBinContent(73,0.9971223);
   trigeff->SetBinContent(74,0.9967213);
   trigeff->SetBinContent(75,0.9982111);
   trigeff->SetBinContent(76,0.9968504);
   trigeff->SetBinContent(77,0.9967374);
   trigeff->SetBinContent(78,0.9980237);
   trigeff->SetBinContent(79,0.9977974);
   trigeff->SetBinContent(80,1);
   trigeff->SetBinContent(81,0.997669);
   trigeff->SetBinContent(82,0.9977876);
   trigeff->SetBinContent(83,0.9921671);
   trigeff->SetBinContent(84,0.9942857);
   trigeff->SetBinContent(85,1);
   trigeff->SetBinContent(86,1);
   trigeff->SetBinContent(87,0.9967532);
   trigeff->SetBinContent(88,1);
   trigeff->SetBinContent(89,0.9967427);
   trigeff->SetBinContent(90,0.9961832);
   trigeff->SetBinContent(91,1);
   trigeff->SetBinContent(92,1);
   trigeff->SetBinContent(93,1);
   trigeff->SetBinContent(94,1);
   trigeff->SetBinContent(95,1);
   trigeff->SetBinContent(96,0.9940828);
   trigeff->SetBinContent(97,1);
   trigeff->SetBinContent(98,0.9927536);
   trigeff->SetBinContent(99,1);
   trigeff->SetBinContent(100,0.9896907);
   trigeff->SetBinContent(101,0.990566);
   trigeff->SetBinContent(102,0.988764);
   trigeff->SetBinContent(103,1);
   trigeff->SetBinContent(104,1);
   trigeff->SetBinContent(105,1);
   trigeff->SetBinContent(106,1);
   trigeff->SetBinContent(107,1);
   trigeff->SetBinContent(108,1);
   trigeff->SetBinContent(109,1);
   trigeff->SetBinContent(110,1);
   trigeff->SetBinContent(111,1);
   trigeff->SetBinContent(112,1);
   trigeff->SetBinContent(113,1);
   trigeff->SetBinContent(114,1);
   trigeff->SetBinContent(115,1);
   trigeff->SetBinContent(116,1);
   trigeff->SetBinContent(117,1);
   trigeff->SetBinContent(118,1);
   trigeff->SetBinContent(119,1);
   trigeff->SetBinContent(120,1);
   trigeff->SetBinContent(121,1);
   trigeff->SetBinContent(122,1);
   trigeff->SetBinContent(123,1);
   trigeff->SetBinContent(124,1);
   trigeff->SetBinContent(125,1);
   trigeff->SetBinContent(126,1);
   trigeff->SetBinContent(127,1);
   trigeff->SetBinContent(128,1);
   trigeff->SetBinContent(129,1);
   trigeff->SetBinContent(130,1);
   trigeff->SetBinContent(131,1);
   trigeff->SetBinContent(132,1);
   trigeff->SetBinContent(133,1);
   trigeff->SetBinContent(134,1);
   trigeff->SetBinContent(135,1);
   trigeff->SetBinContent(136,1);
   trigeff->SetBinContent(137,1);
   trigeff->SetBinContent(138,1);
   trigeff->SetBinContent(139,1);
   trigeff->SetBinContent(140,1);
   trigeff->SetBinContent(141,1);
   trigeff->SetBinContent(142,1);
   trigeff->SetBinContent(143,1);
   trigeff->SetBinContent(144,1);
   trigeff->SetBinContent(145,1);
   trigeff->SetBinContent(146,1);
   trigeff->SetBinContent(147,1);
   trigeff->SetBinContent(149,1);
   trigeff->SetBinContent(151,1);
   trigeff->SetBinContent(152,1);
   trigeff->SetBinContent(154,1);
   trigeff->SetBinContent(155,1);
   trigeff->SetBinContent(157,1);
   trigeff->SetBinContent(170,1);
   trigeff->SetBinContent(173,1);
   trigeff->SetBinContent(178,1);
   trigeff->SetBinError(1,0.001231687);
   trigeff->SetBinError(2,0.009082424);
   trigeff->SetBinError(3,0.009308539);
   trigeff->SetBinError(4,0.007834723);
   trigeff->SetBinError(5,0.00598166);
   trigeff->SetBinError(6,0.004397977);
   trigeff->SetBinError(7,0.003418236);
   trigeff->SetBinError(8,0.002747754);
   trigeff->SetBinError(9,0.002375778);
   trigeff->SetBinError(10,0.002196995);
   trigeff->SetBinError(11,0.002011941);
   trigeff->SetBinError(12,0.001831367);
   trigeff->SetBinError(13,0.001784029);
   trigeff->SetBinError(14,0.001916823);
   trigeff->SetBinError(15,0.001817566);
   trigeff->SetBinError(16,0.001819683);
   trigeff->SetBinError(17,0.001818542);
   trigeff->SetBinError(18,0.001890354);
   trigeff->SetBinError(19,0.00177814);
   trigeff->SetBinError(20,0.001864436);
   trigeff->SetBinError(21,0.001663154);
   trigeff->SetBinError(22,0.00170007);
   trigeff->SetBinError(23,0.00173455);
   trigeff->SetBinError(24,0.001481362);
   trigeff->SetBinError(25,0.001655051);
   trigeff->SetBinError(26,0.001603857);
   trigeff->SetBinError(27,0.00195356);
   trigeff->SetBinError(28,0.00163551);
   trigeff->SetBinError(29,0.001474872);
   trigeff->SetBinError(30,0.001623358);
   trigeff->SetBinError(31,0.00154461);
   trigeff->SetBinError(32,0.001534909);
   trigeff->SetBinError(33,0.00158181);
   trigeff->SetBinError(34,0.001491233);
   trigeff->SetBinError(35,0.001286982);
   trigeff->SetBinError(36,0.001328752);
   trigeff->SetBinError(37,0.00152958);
   trigeff->SetBinError(38,0.001348444);
   trigeff->SetBinError(39,0.00166985);
   trigeff->SetBinError(40,0.001624111);
   trigeff->SetBinError(41,0.001586005);
   trigeff->SetBinError(42,0.001827581);
   trigeff->SetBinError(43,0.001420028);
   trigeff->SetBinError(44,0.002227847);
   trigeff->SetBinError(45,0.001874108);
   trigeff->SetBinError(46,0.00114964);
   trigeff->SetBinError(47,0.001293933);
   trigeff->SetBinError(48,0.001462021);
   trigeff->SetBinError(49,0.001515213);
   trigeff->SetBinError(50,0.001377697);
   trigeff->SetBinError(51,0.0009272125);
   trigeff->SetBinError(52,0.001331017);
   trigeff->SetBinError(53,0.001174711);
   trigeff->SetBinError(54,0.001150746);
   trigeff->SetBinError(55,0.001991336);
   trigeff->SetBinError(56,0.001625642);
   trigeff->SetBinError(57,0.001748087);
   trigeff->SetBinError(58,0.00259828);
   trigeff->SetBinError(59,0.0009945236);
   trigeff->SetBinError(60,0.0009766661);
   trigeff->SetBinError(61,0.000839278);
   trigeff->SetBinError(62,0.001137741);
   trigeff->SetBinError(63,0.002250715);
   trigeff->SetBinError(64,0.0021065);
   trigeff->SetBinError(65,0.001554078);
   trigeff->SetBinError(66,0.001613457);
   trigeff->SetBinError(67,0.003221342);
   trigeff->SetBinError(69,0.001135718);
   trigeff->SetBinError(70,0.002979388);
   trigeff->SetBinError(71,0.001301235);
   trigeff->SetBinError(72,0.00214274);
   trigeff->SetBinError(73,0.00203191);
   trigeff->SetBinError(74,0.002314579);
   trigeff->SetBinError(75,0.001787308);
   trigeff->SetBinError(76,0.002223598);
   trigeff->SetBinError(77,0.00230327);
   trigeff->SetBinError(78,0.001974331);
   trigeff->SetBinError(79,0.002200216);
   trigeff->SetBinError(81,0.002328284);
   trigeff->SetBinError(82,0.002209941);
   trigeff->SetBinError(83,0.00450458);
   trigeff->SetBinError(84,0.004029049);
   trigeff->SetBinError(87,0.003241478);
   trigeff->SetBinError(89,0.00325202);
   trigeff->SetBinError(90,0.003809503);
   trigeff->SetBinError(96,0.005899627);
   trigeff->SetBinError(98,0.007220074);
   trigeff->SetBinError(100,0.010256);
   trigeff->SetBinError(101,0.009389357);
   trigeff->SetBinError(102,0.01117265);
   trigeff->SetEntries(369636);
   trigeff->SetDirectory(0);
   trigeff->SetFillColor(1);
   trigeff->SetFillStyle(0);
   trigeff->SetLineStyle(2);
   trigeff->SetLineWidth(3);
   trigeff->SetMarkerStyle(20);
   trigeff->GetXaxis()->SetTitle("M");
   trigeff->GetXaxis()->SetLabelFont(42);
   trigeff->GetXaxis()->SetLabelOffset(0.01);
   trigeff->GetXaxis()->SetLabelSize(0.045);
   trigeff->GetXaxis()->SetTitleSize(0.055);
   trigeff->GetXaxis()->SetTitleFont(42);
   trigeff->GetYaxis()->SetTitle("Selection efficiency");
   trigeff->GetYaxis()->SetLabelFont(42);
   trigeff->GetYaxis()->SetLabelOffset(0.01);
   trigeff->GetYaxis()->SetLabelSize(0.045);
   trigeff->GetYaxis()->SetTitleSize(0.055);
   trigeff->GetYaxis()->SetTitleOffset(1.6);
   trigeff->GetYaxis()->SetTitleFont(42);
   trigeff->GetZaxis()->SetLabelFont(42);
   trigeff->GetZaxis()->SetLabelSize(0.045);
   trigeff->GetZaxis()->SetTitleFont(42);
   trigeff->Draw("p same");
   
   TLegend *leg = new TLegend(0.57,0.22,1,0.42,NULL,"brNDC");
   leg->SetBorderSize(0);
   leg->SetTextFont(62);
   leg->SetLineColor(1);
   leg->SetLineStyle(1);
   leg->SetLineWidth(1);
   leg->SetFillColor(19);
   leg->SetFillStyle(0);
   TLegendEntry *entry=leg->AddEntry("trigeff","PYTHIA 7 TeV","l");
   entry->SetLineColor(1);
   entry->SetLineWidth(2);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(20);
   entry->SetMarkerSize(1);
   //entry=leg->AddEntry("trigeff","(Atlas tune)","");
   entry->SetLineColor(1);
   entry->SetLineStyle(1);
   entry->SetLineWidth(1);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(21);
   entry->SetMarkerSize(1);
   entry=leg->AddEntry("trigeff","PHOJET 7 TeV","p");
   entry->SetLineColor(1);
   entry->SetLineStyle(1);
   entry->SetLineWidth(1);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(20);
   entry->SetMarkerSize(1);
   leg->Draw();

   printFinalCanvases(cEvtSel,"trigeff");



   /*
   TLatex *   tex = new TLatex(0.85,0.9,"CMS");
tex->SetNDC();
   tex->SetTextSize(0.04);
   tex->SetLineWidth(2);
   tex->Draw();
   cEvtSel->Modified();
   cEvtSel->cd();
   cEvtSel->SetSelected(cEvtSel);
   */
}
예제 #9
0
파일: diffrac.C 프로젝트: CmsHI/CVS_ASYoon
void diffrac(){

   gROOT->Reset();
   //gROOT->ProcessLine(".x rootlogon.C");
   
//=========Macro generated from canvas: cEvtSel/EvtSel
//=========  (Wed Apr 14 17:19:02 2010) by ROOT version5.22/00d

   TCanvas *cEvtSel = new TCanvas("cEvtSel", "EvtSel",550,600);
   /*
   TCanvas *cEvtSel = new TCanvas("cEvtSel", "EvtSel",0,22,550,600);
   gStyle->SetOptFit(1);
   gStyle->SetOptStat(0);
   cEvtSel->Range(-32.99367,-0.009375,158.1456,0.053125);
   cEvtSel->SetFillColor(0);
   cEvtSel->SetBorderMode(0);
   cEvtSel->SetBorderSize(0);
   cEvtSel->SetTickx(1);
   cEvtSel->SetTicky(1);
   cEvtSel->SetLeftMargin(0.17);
   cEvtSel->SetRightMargin(0.04);
   cEvtSel->SetTopMargin(0.05);
   cEvtSel->SetBottomMargin(0.15);
   cEvtSel->SetFrameLineColor(0);
   cEvtSel->SetFrameBorderMode(0);
   cEvtSel->SetFrameLineColor(0);
   cEvtSel->SetFrameBorderMode(0);
   */

   //TH1 *hFrame2 = new TH2D("hFrame2","",1,-0.5,60.5,1,0,0.06);
   TH1 *hFrame2 = new TH2D("hFrame2","",1,-0.5,150.5,1,0,0.05); 
   hFrame2->SetDirectory(0);
   hFrame2->SetStats(0);
   hFrame2->GetXaxis()->SetTitle("Charged-particle multiplicity");
   hFrame2->GetXaxis()->CenterTitle(true);
   hFrame2->GetYaxis()->SetTitle("Fraction of events");
   hFrame2->GetYaxis()->CenterTitle(true);
   hFrame2->GetYaxis()->SetTitleOffset(1.5);
   hFrame2->Draw("");
   
   hFrame2->GetXaxis()->SetNdivisions(312);
   hFrame2->GetYaxis()->SetNdivisions(305);  

   /*
   TH1 *hFrame2 = new TH2D("hFrame2","",1,-0.5,150.5,1,0,0.05);
   hFrame2->SetDirectory(0);
   hFrame2->SetStats(0);
   hFrame2->SetFillColor(1);
   hFrame2->SetFillStyle(0);
   hFrame2->SetLineStyle(0);
   hFrame2->SetMarkerStyle(20);
   hFrame2->SetMarkerSize(1.5);
   hFrame2->GetXaxis()->SetTitle("Charged-particle multiplicity");
   hFrame2->GetXaxis()->CenterTitle(true);
   hFrame2->GetXaxis()->SetNdivisions(312);
   hFrame2->GetXaxis()->SetLabelFont(42);
   hFrame2->GetXaxis()->SetLabelOffset(0.01);
   hFrame2->GetXaxis()->SetLabelSize(0.045);
   hFrame2->GetXaxis()->SetTitleSize(0.055);
   hFrame2->GetXaxis()->SetTitleFont(42);
   hFrame2->GetYaxis()->SetTitle("Fraction of events");
   hFrame2->GetYaxis()->CenterTitle(true);
   hFrame2->GetYaxis()->SetLabelFont(42);
   hFrame2->GetYaxis()->SetLabelOffset(0.01);
   hFrame2->GetYaxis()->SetLabelSize(0.045);
   hFrame2->GetYaxis()->SetTitleSize(0.055);
   hFrame2->GetYaxis()->SetTitleOffset(1.5);
   hFrame2->GetYaxis()->SetTitleFont(42);
   hFrame2->GetZaxis()->SetLabelFont(42);
   hFrame2->GetZaxis()->SetLabelSize(0.045);
   hFrame2->GetZaxis()->SetTitleFont(42);
   hFrame2->Draw("");
   */
   
   TH1 *diffrac = new TH1D("diffrac","diffrac",200,0,200);
   diffrac->SetBinContent(1,0.0004697663);
   diffrac->SetBinContent(2,0.008010118);
   diffrac->SetBinContent(3,0.0127921);
   diffrac->SetBinContent(4,0.01698988);
   diffrac->SetBinContent(5,0.02012166);
   diffrac->SetBinContent(6,0.022341);
   diffrac->SetBinContent(7,0.02315105);
   diffrac->SetBinContent(8,0.02518068);
   diffrac->SetBinContent(9,0.02668032);
   diffrac->SetBinContent(10,0.02875512);
   diffrac->SetBinContent(11,0.03089617);
   diffrac->SetBinContent(12,0.0324741);
   diffrac->SetBinContent(13,0.03311853);
   diffrac->SetBinContent(14,0.03265478);
   diffrac->SetBinContent(15,0.03213081);
   diffrac->SetBinContent(16,0.03054987);
   diffrac->SetBinContent(17,0.0283245);
   diffrac->SetBinContent(18,0.02640026);
   diffrac->SetBinContent(19,0.02394001);
   diffrac->SetBinContent(20,0.02234401);
   diffrac->SetBinContent(21,0.02026921);
   diffrac->SetBinContent(22,0.01865213);
   diffrac->SetBinContent(23,0.01720369);
   diffrac->SetBinContent(24,0.01639665);
   diffrac->SetBinContent(25,0.01546013);
   diffrac->SetBinContent(26,0.01423151);
   diffrac->SetBinContent(27,0.01359311);
   diffrac->SetBinContent(28,0.01247892);
   diffrac->SetBinContent(29,0.01204529);
   diffrac->SetBinContent(30,0.01130752);
   diffrac->SetBinContent(31,0.01089798);
   diffrac->SetBinContent(32,0.01070826);
   diffrac->SetBinContent(33,0.009497711);
   diffrac->SetBinContent(34,0.009579017);
   diffrac->SetBinContent(35,0.008805107);
   diffrac->SetBinContent(36,0.008741869);
   diffrac->SetBinContent(37,0.008522043);
   diffrac->SetBinContent(38,0.00790171);
   diffrac->SetBinContent(39,0.007799325);
   diffrac->SetBinContent(40,0.007486148);
   diffrac->SetBinContent(41,0.006838714);
   diffrac->SetBinContent(42,0.006947121);
   diffrac->SetBinContent(43,0.006504457);
   diffrac->SetBinContent(44,0.0063298);
   diffrac->SetBinContent(45,0.006122019);
   diffrac->SetBinContent(46,0.006061792);
   diffrac->SetBinContent(47,0.005823898);
   diffrac->SetBinContent(48,0.005661286);
   diffrac->SetBinContent(49,0.005543845);
   diffrac->SetBinContent(50,0.005363166);
   diffrac->SetBinContent(51,0.005215611);
   diffrac->SetBinContent(52,0.00503192);
   diffrac->SetBinContent(53,0.004800048);
   diffrac->SetBinContent(54,0.004839195);
   diffrac->SetBinContent(55,0.004583233);
   diffrac->SetBinContent(56,0.004544086);
   diffrac->SetBinContent(57,0.004471814);
   diffrac->SetBinContent(58,0.004146591);
   diffrac->SetBinContent(59,0.004267044);
   diffrac->SetBinContent(60,0.003990002);
   diffrac->SetBinContent(61,0.004083353);
   diffrac->SetBinContent(62,0.003806312);
   diffrac->SetBinContent(63,0.003782221);
   diffrac->SetBinContent(64,0.003812334);
   diffrac->SetBinContent(65,0.003472055);
   diffrac->SetBinContent(66,0.00366478);
   diffrac->SetBinContent(67,0.003195013);
   diffrac->SetBinContent(68,0.003285353);
   diffrac->SetBinContent(69,0.00323416);
   diffrac->SetBinContent(70,0.0031649);
   diffrac->SetBinContent(71,0.003110696);
   diffrac->SetBinContent(72,0.003170923);
   diffrac->SetBinContent(73,0.002966153);
   diffrac->SetBinContent(74,0.002957119);
   diffrac->SetBinContent(75,0.002905926);
   diffrac->SetBinContent(76,0.002954107);
   diffrac->SetBinContent(77,0.002785473);
   diffrac->SetBinContent(78,0.002836666);
   diffrac->SetBinContent(79,0.002725247);
   diffrac->SetBinContent(80,0.002728258);
   diffrac->SetBinContent(81,0.002568658);
   diffrac->SetBinContent(82,0.002288605);
   diffrac->SetBinContent(83,0.002499398);
   diffrac->SetBinContent(84,0.002445194);
   diffrac->SetBinContent(85,0.002378945);
   diffrac->SetBinContent(86,0.00227656);
   diffrac->SetBinContent(87,0.002418092);
   diffrac->SetBinContent(88,0.002351843);
   diffrac->SetBinContent(89,0.002381956);
   diffrac->SetBinContent(90,0.002189232);
   diffrac->SetBinContent(91,0.002222356);
   diffrac->SetBinContent(92,0.002198265);
   diffrac->SetBinContent(93,0.002219345);
   diffrac->SetBinContent(94,0.002198265);
   diffrac->SetBinContent(95,0.002089858);
   diffrac->SetBinContent(96,0.001996507);
   diffrac->SetBinContent(97,0.001972416);
   diffrac->SetBinContent(98,0.001903156);
   diffrac->SetBinContent(99,0.001818839);
   diffrac->SetBinContent(100,0.001876054);
   diffrac->SetBinContent(101,0.001864009);
   diffrac->SetBinContent(102,0.001767646);
   diffrac->SetBinContent(103,0.001879065);
   diffrac->SetBinContent(104,0.001894122);
   diffrac->SetBinContent(105,0.001695375);
   diffrac->SetBinContent(106,0.001674295);
   diffrac->SetBinContent(107,0.001611058);
   diffrac->SetBinContent(108,0.001556854);
   diffrac->SetBinContent(109,0.001620092);
   diffrac->SetBinContent(110,0.001556854);
   diffrac->SetBinContent(111,0.001568899);
   diffrac->SetBinContent(112,0.001475548);
   diffrac->SetBinContent(113,0.001376174);
   diffrac->SetBinContent(114,0.001448446);
   diffrac->SetBinContent(115,0.001520718);
   diffrac->SetBinContent(116,0.001261744);
   diffrac->SetBinContent(117,0.001448446);
   diffrac->SetBinContent(118,0.001282823);
   diffrac->SetBinContent(119,0.001219586);
   diffrac->SetBinContent(120,0.001201518);
   diffrac->SetBinContent(121,0.001237654);
   diffrac->SetBinContent(122,0.001141291);
   diffrac->SetBinContent(123,0.001195495);
   diffrac->SetBinContent(124,0.001150325);
   diffrac->SetBinContent(125,0.001195495);
   diffrac->SetBinContent(126,0.0009816912);
   diffrac->SetBinContent(127,0.001135269);
   diffrac->SetBinContent(128,0.00100277);
   diffrac->SetBinContent(129,0.001005782);
   diffrac->SetBinContent(130,0.0009003854);
   diffrac->SetBinContent(131,0.0008823175);
   diffrac->SetBinContent(132,0.0009576006);
   diffrac->SetBinContent(133,0.0008732835);
   diffrac->SetBinContent(134,0.0008220911);
   diffrac->SetBinContent(135,0.000831125);
   diffrac->SetBinContent(136,0.0007437967);
   diffrac->SetBinContent(137,0.000662491);
   diffrac->SetBinContent(138,0.0007046495);
   diffrac->SetBinContent(139,0.0007287401);
   diffrac->SetBinContent(140,0.0007407854);
   diffrac->SetBinContent(141,0.0006263551);
   diffrac->SetBinContent(142,0.0006745363);
   diffrac->SetBinContent(143,0.000653457);
   diffrac->SetBinContent(144,0.0006082872);
   diffrac->SetBinContent(145,0.0005420381);
   diffrac->SetBinContent(146,0.0005631173);
   diffrac->SetBinContent(147,0.0005059022);
   diffrac->SetBinContent(148,0.0005781739);
   diffrac->SetBinContent(149,0.0005239701);
   diffrac->SetBinContent(150,0.0004547097);
   diffrac->SetBinContent(151,0.0004697663);
   diffrac->SetBinContent(152,0.0004547097);
   diffrac->SetBinContent(153,0.0004396531);
   diffrac->SetBinContent(154,0.0004697663);
   diffrac->SetBinContent(155,0.0003884606);
   diffrac->SetBinContent(156,0.0003613587);
   diffrac->SetBinContent(157,0.0003523247);
   diffrac->SetBinContent(158,0.0003703927);
   diffrac->SetBinContent(159,0.0003794266);
   diffrac->SetBinContent(160,0.0003041436);
   diffrac->SetBinContent(161,0.0003192002);
   diffrac->SetBinContent(162,0.000280053);
   diffrac->SetBinContent(163,0.0002770417);
   diffrac->SetBinContent(164,0.0002228379);
   diffrac->SetBinContent(165,0.0002529511);
   diffrac->SetBinContent(166,0.0002469285);
   diffrac->SetBinContent(167,0.0002318718);
   diffrac->SetBinContent(168,0.0003041436);
   diffrac->SetBinContent(169,0.0002198265);
   diffrac->SetBinContent(170,0.0002499398);
   diffrac->SetBinContent(171,0.0001565888);
   diffrac->SetBinContent(172,0.0001656227);
   diffrac->SetBinContent(173,0.0001535775);
   diffrac->SetBinContent(174,0.0001626114);
   diffrac->SetBinContent(175,0.0001987473);
   diffrac->SetBinContent(176,0.0001445435);
   diffrac->SetBinContent(177,0.0001174416);
   diffrac->SetBinContent(178,0.0001445435);
   diffrac->SetBinContent(179,0.0001415322);
   diffrac->SetBinContent(180,0.0001445435);
   diffrac->SetBinContent(181,0.0001264755);
   diffrac->SetBinContent(182,6.62491e-05);
   diffrac->SetBinContent(183,7.227174e-05);
   diffrac->SetBinContent(184,0.0001053963);
   diffrac->SetBinContent(185,9.033968e-05);
   diffrac->SetBinContent(186,8.732835e-05);
   diffrac->SetBinContent(187,6.022645e-05);
   diffrac->SetBinContent(188,9.3351e-05);
   diffrac->SetBinContent(189,8.732835e-05);
   diffrac->SetBinContent(190,8.431703e-05);
   diffrac->SetBinContent(191,9.033968e-05);
   diffrac->SetBinContent(192,4.215852e-05);
   diffrac->SetBinContent(193,6.62491e-05);
   diffrac->SetBinContent(194,7.528306e-05);
   diffrac->SetBinContent(195,4.215852e-05);
   diffrac->SetBinContent(196,4.516984e-05);
   diffrac->SetBinContent(197,3.613587e-05);
   diffrac->SetBinContent(198,6.022645e-05);
   diffrac->SetBinContent(199,4.516984e-05);
   diffrac->SetBinContent(200,3.011323e-05);
   diffrac->SetBinContent(201,0.000457721);
   diffrac->SetBinError(1,3.761141e-05);
   diffrac->SetBinError(2,0.0001553095);
   diffrac->SetBinError(3,0.000196268);
   diffrac->SetBinError(4,0.0002261902);
   diffrac->SetBinError(5,0.0002461561);
   diffrac->SetBinError(6,0.0002593761);
   diffrac->SetBinError(7,0.0002640365);
   diffrac->SetBinError(8,0.0002753673);
   diffrac->SetBinError(9,0.0002834485);
   diffrac->SetBinError(10,0.0002942634);
   diffrac->SetBinError(11,0.0003050219);
   diffrac->SetBinError(12,0.0003127139);
   diffrac->SetBinError(13,0.0003158015);
   diffrac->SetBinError(14,0.0003135827);
   diffrac->SetBinError(15,0.0003110566);
   diffrac->SetBinError(16,0.0003033076);
   diffrac->SetBinError(17,0.0002920517);
   diffrac->SetBinError(18,0.0002819569);
   diffrac->SetBinError(19,0.0002684979);
   diffrac->SetBinError(20,0.0002593936);
   diffrac->SetBinError(21,0.0002470569);
   diffrac->SetBinError(22,0.000236997);
   diffrac->SetBinError(23,0.000227609);
   diffrac->SetBinError(24,0.0002222062);
   diffrac->SetBinError(25,0.0002157671);
   diffrac->SetBinError(26,0.0002070161);
   diffrac->SetBinError(27,0.0002023196);
   diffrac->SetBinError(28,0.0001938506);
   diffrac->SetBinError(29,0.0001904528);
   diffrac->SetBinError(30,0.000184528);
   diffrac->SetBinError(31,0.0001811555);
   diffrac->SetBinError(32,0.0001795718);
   diffrac->SetBinError(33,0.0001691173);
   diffrac->SetBinError(34,0.0001698397);
   diffrac->SetBinError(35,0.0001628343);
   diffrac->SetBinError(36,0.0001622485);
   diffrac->SetBinError(37,0.0001601956);
   diffrac->SetBinError(38,0.000154255);
   diffrac->SetBinError(39,0.0001532524);
   diffrac->SetBinError(40,0.000150144);
   diffrac->SetBinError(41,0.0001435046);
   diffrac->SetBinError(42,0.0001446376);
   diffrac->SetBinError(43,0.0001399536);
   diffrac->SetBinError(44,0.0001380618);
   diffrac->SetBinError(45,0.0001357769);
   diffrac->SetBinError(46,0.0001351074);
   diffrac->SetBinError(47,0.0001324297);
   diffrac->SetBinError(48,0.0001305678);
   diffrac->SetBinError(49,0.0001292064);
   diffrac->SetBinError(50,0.0001270835);
   diffrac->SetBinError(51,0.0001253231);
   diffrac->SetBinError(52,0.0001230964);
   diffrac->SetBinError(53,0.0001202268);
   diffrac->SetBinError(54,0.0001207161);
   diffrac->SetBinError(55,0.0001174802);
   diffrac->SetBinError(56,0.0001169774);
   diffrac->SetBinError(57,0.0001160434);
   diffrac->SetBinError(58,0.000111744);
   diffrac->SetBinError(59,0.0001133554);
   diffrac->SetBinError(60,0.0001096138);
   diffrac->SetBinError(61,0.0001108887);
   diffrac->SetBinError(62,0.0001070609);
   diffrac->SetBinError(63,0.0001067215);
   diffrac->SetBinError(64,0.0001071455);
   diffrac->SetBinError(65,0.000102252);
   diffrac->SetBinError(66,0.0001050516);
   diffrac->SetBinError(67,9.808779e-05);
   diffrac->SetBinError(68,9.946486e-05);
   diffrac->SetBinError(69,9.868688e-05);
   diffrac->SetBinError(70,9.762446e-05);
   diffrac->SetBinError(71,9.678486e-05);
   diffrac->SetBinError(72,9.77173e-05);
   diffrac->SetBinError(73,9.450948e-05);
   diffrac->SetBinError(74,9.436545e-05);
   diffrac->SetBinError(75,9.354508e-05);
   diffrac->SetBinError(76,9.431739e-05);
   diffrac->SetBinError(77,9.15858e-05);
   diffrac->SetBinError(78,9.242357e-05);
   diffrac->SetBinError(79,9.059027e-05);
   diffrac->SetBinError(80,9.064031e-05);
   diffrac->SetBinError(81,8.794918e-05);
   diffrac->SetBinError(82,8.301643e-05);
   diffrac->SetBinError(83,8.675536e-05);
   diffrac->SetBinError(84,8.580948e-05);
   diffrac->SetBinError(85,8.463906e-05);
   diffrac->SetBinError(86,8.279768e-05);
   diffrac->SetBinError(87,8.533261e-05);
   diffrac->SetBinError(88,8.415556e-05);
   diffrac->SetBinError(89,8.469261e-05);
   diffrac->SetBinError(90,8.11941e-05);
   diffrac->SetBinError(91,8.180606e-05);
   diffrac->SetBinError(92,8.136146e-05);
   diffrac->SetBinError(93,8.175061e-05);
   diffrac->SetBinError(94,8.136146e-05);
   diffrac->SetBinError(95,7.932992e-05);
   diffrac->SetBinError(96,7.75379e-05);
   diffrac->SetBinError(97,7.706868e-05);
   diffrac->SetBinError(98,7.570348e-05);
   diffrac->SetBinError(99,7.40075e-05);
   diffrac->SetBinError(100,7.516251e-05);
   diffrac->SetBinError(101,7.492083e-05);
   diffrac->SetBinError(102,7.295857e-05);
   diffrac->SetBinError(103,7.522281e-05);
   diffrac->SetBinError(104,7.552359e-05);
   diffrac->SetBinError(105,7.145152e-05);
   diffrac->SetBinError(106,7.100594e-05);
   diffrac->SetBinError(107,6.965209e-05);
   diffrac->SetBinError(108,6.847035e-05);
   diffrac->SetBinError(109,6.984711e-05);
   diffrac->SetBinError(110,6.847035e-05);
   diffrac->SetBinError(111,6.873472e-05);
   diffrac->SetBinError(112,6.665847e-05);
   diffrac->SetBinError(113,6.437472e-05);
   diffrac->SetBinError(114,6.604346e-05);
   diffrac->SetBinError(115,6.767106e-05);
   diffrac->SetBinError(116,6.164024e-05);
   diffrac->SetBinError(117,6.604346e-05);
   diffrac->SetBinError(118,6.2153e-05);
   diffrac->SetBinError(119,6.06017e-05);
   diffrac->SetBinError(120,6.015112e-05);
   diffrac->SetBinError(121,6.104895e-05);
   diffrac->SetBinError(122,5.862419e-05);
   diffrac->SetBinError(123,6.000018e-05);
   diffrac->SetBinError(124,5.885576e-05);
   diffrac->SetBinError(125,6.000018e-05);
   diffrac->SetBinError(126,5.437084e-05);
   diffrac->SetBinError(127,5.846931e-05);
   diffrac->SetBinError(128,5.495148e-05);
   diffrac->SetBinError(129,5.503393e-05);
   diffrac->SetBinError(130,5.207063e-05);
   diffrac->SetBinError(131,5.154554e-05);
   diffrac->SetBinError(132,5.369957e-05);
   diffrac->SetBinError(133,5.128098e-05);
   diffrac->SetBinError(134,4.975521e-05);
   diffrac->SetBinError(135,5.002785e-05);
   diffrac->SetBinError(136,4.732665e-05);
   diffrac->SetBinError(137,4.466513e-05);
   diffrac->SetBinError(138,4.606438e-05);
   diffrac->SetBinError(139,4.684519e-05);
   diffrac->SetBinError(140,4.723075e-05);
   diffrac->SetBinError(141,4.342991e-05);
   diffrac->SetBinError(142,4.506935e-05);
   diffrac->SetBinError(143,4.435955e-05);
   diffrac->SetBinError(144,4.279894e-05);
   diffrac->SetBinError(145,4.040113e-05);
   diffrac->SetBinError(146,4.117922e-05);
   diffrac->SetBinError(147,3.90312e-05);
   diffrac->SetBinError(148,4.172611e-05);
   diffrac->SetBinError(149,3.972207e-05);
   diffrac->SetBinError(150,3.700375e-05);
   diffrac->SetBinError(151,3.761141e-05);
   diffrac->SetBinError(152,3.700375e-05);
   diffrac->SetBinError(153,3.638595e-05);
   diffrac->SetBinError(154,3.761141e-05);
   diffrac->SetBinError(155,3.420205e-05);
   diffrac->SetBinError(156,3.298739e-05);
   diffrac->SetBinError(157,3.257243e-05);
   diffrac->SetBinError(158,3.339718e-05);
   diffrac->SetBinError(159,3.380201e-05);
   diffrac->SetBinError(160,3.026342e-05);
   diffrac->SetBinError(161,3.100346e-05);
   diffrac->SetBinError(162,2.904014e-05);
   diffrac->SetBinError(163,2.888359e-05);
   diffrac->SetBinError(164,2.590438e-05);
   diffrac->SetBinError(165,2.759923e-05);
   diffrac->SetBinError(166,2.726869e-05);
   diffrac->SetBinError(167,2.642425e-05);
   diffrac->SetBinError(168,3.026342e-05);
   diffrac->SetBinError(169,2.572875e-05);
   diffrac->SetBinError(170,2.743445e-05);
   diffrac->SetBinError(171,2.171496e-05);
   diffrac->SetBinError(172,2.233257e-05);
   diffrac->SetBinError(173,2.150514e-05);
   diffrac->SetBinError(174,2.212861e-05);
   diffrac->SetBinError(175,2.44641e-05);
   diffrac->SetBinError(176,2.086305e-05);
   diffrac->SetBinError(177,1.88057e-05);
   diffrac->SetBinError(178,2.086305e-05);
   diffrac->SetBinError(179,2.064459e-05);
   diffrac->SetBinError(180,2.086305e-05);
   diffrac->SetBinError(181,1.95156e-05);
   diffrac->SetBinError(182,1.412435e-05);
   diffrac->SetBinError(183,1.475241e-05);
   diffrac->SetBinError(184,1.781522e-05);
   diffrac->SetBinError(185,1.649369e-05);
   diffrac->SetBinError(186,1.621647e-05);
   diffrac->SetBinError(187,1.346704e-05);
   diffrac->SetBinError(188,1.676633e-05);
   diffrac->SetBinError(189,1.621647e-05);
   diffrac->SetBinError(190,1.593442e-05);
   diffrac->SetBinError(191,1.649369e-05);
   diffrac->SetBinError(192,1.126734e-05);
   diffrac->SetBinError(193,1.412435e-05);
   diffrac->SetBinError(194,1.505661e-05);
   diffrac->SetBinError(195,1.126734e-05);
   diffrac->SetBinError(196,1.16628e-05);
   diffrac->SetBinError(197,1.043153e-05);
   diffrac->SetBinError(198,1.346704e-05);
   diffrac->SetBinError(199,1.16628e-05);
   diffrac->SetBinError(200,9.522638e-06);
   diffrac->SetBinError(201,3.712608e-05);
   diffrac->SetEntries(332232);
   diffrac->SetDirectory(0);
   diffrac->SetFillColor(1);
   diffrac->SetFillStyle(0);
   diffrac->SetLineStyle(0);
   diffrac->SetLineWidth(2);
   diffrac->SetMarkerStyle(20);
   diffrac->SetMarkerSize(1.5);
   diffrac->GetXaxis()->SetTitle("M");
   diffrac->GetXaxis()->SetLabelFont(42);
   diffrac->GetXaxis()->SetLabelOffset(0.01);
   diffrac->GetXaxis()->SetLabelSize(0.045);
   diffrac->GetXaxis()->SetTitleSize(0.055);
   diffrac->GetXaxis()->SetTitleFont(42);
   diffrac->GetYaxis()->SetTitle("Fraction of events");
   diffrac->GetYaxis()->SetLabelFont(42);
   diffrac->GetYaxis()->SetLabelOffset(0.01);
   diffrac->GetYaxis()->SetLabelSize(0.045);
   diffrac->GetYaxis()->SetTitleSize(0.055);
   diffrac->GetYaxis()->SetTitleOffset(1.6);
   diffrac->GetYaxis()->SetTitleFont(42);
   diffrac->GetZaxis()->SetLabelFont(42);
   diffrac->GetZaxis()->SetLabelSize(0.045);
   diffrac->GetZaxis()->SetTitleFont(42);
   diffrac->Draw("hist same");
   
   TH1 *diffrac = new TH1D("diffrac","diffrac",200,0,200);
   diffrac->SetBinContent(1,0.0001535956);
   diffrac->SetBinContent(2,0.002138746);
   diffrac->SetBinContent(3,0.003918136);
   diffrac->SetBinContent(4,0.006984252);
   diffrac->SetBinContent(5,0.01149359);
   diffrac->SetBinContent(6,0.01725487);
   diffrac->SetBinContent(7,0.02335522);
   diffrac->SetBinContent(8,0.02994824);
   diffrac->SetBinContent(9,0.03493575);
   diffrac->SetBinContent(10,0.03668616);
   diffrac->SetBinContent(11,0.03929439);
   diffrac->SetBinContent(12,0.03968852);
   diffrac->SetBinContent(13,0.03844526);
   diffrac->SetBinContent(14,0.0360341);
   diffrac->SetBinContent(15,0.03434745);
   diffrac->SetBinContent(16,0.03306942);
   diffrac->SetBinContent(17,0.03029311);
   diffrac->SetBinContent(18,0.02782978);
   diffrac->SetBinContent(19,0.02716903);
   diffrac->SetBinContent(20,0.02540413);
   diffrac->SetBinContent(21,0.02289154);
   diffrac->SetBinContent(22,0.02272345);
   diffrac->SetBinContent(23,0.02145412);
   diffrac->SetBinContent(24,0.02181927);
   diffrac->SetBinContent(25,0.02003698);
   diffrac->SetBinContent(26,0.01887487);
   diffrac->SetBinContent(27,0.01739977);
   diffrac->SetBinContent(28,0.01641734);
   diffrac->SetBinContent(29,0.01567544);
   diffrac->SetBinContent(30,0.01542621);
   diffrac->SetBinContent(31,0.01473069);
   diffrac->SetBinContent(32,0.01400618);
   diffrac->SetBinContent(33,0.01286146);
   diffrac->SetBinContent(34,0.01269917);
   diffrac->SetBinContent(35,0.0127919);
   diffrac->SetBinContent(36,0.01181527);
   diffrac->SetBinContent(37,0.01151387);
   diffrac->SetBinContent(38,0.01042421);
   diffrac->SetBinContent(39,0.01025613);
   diffrac->SetBinContent(40,0.009320064);
   diffrac->SetBinContent(41,0.009027363);
   diffrac->SetBinContent(42,0.008412981);
   diffrac->SetBinContent(43,0.00834053);
   diffrac->SetBinContent(44,0.007647901);
   diffrac->SetBinContent(45,0.007917418);
   diffrac->SetBinContent(46,0.007523286);
   diffrac->SetBinContent(47,0.006679959);
   diffrac->SetBinContent(48,0.006526363);
   diffrac->SetBinContent(49,0.006004718);
   diffrac->SetBinContent(50,0.005914879);
   diffrac->SetBinContent(51,0.006233662);
   diffrac->SetBinContent(52,0.006123537);
   diffrac->SetBinContent(53,0.005494665);
   diffrac->SetBinContent(54,0.005019388);
   diffrac->SetBinContent(55,0.004778851);
   diffrac->SetBinContent(56,0.004686114);
   diffrac->SetBinContent(57,0.004355739);
   diffrac->SetBinContent(58,0.004112304);
   diffrac->SetBinContent(59,0.004112304);
   diffrac->SetBinContent(60,0.004187653);
   diffrac->SetBinContent(61,0.003448656);
   diffrac->SetBinContent(62,0.003593557);
   diffrac->SetBinContent(63,0.003376205);
   diffrac->SetBinContent(64,0.003054524);
   diffrac->SetBinContent(65,0.002628513);
   diffrac->SetBinContent(66,0.003097994);
   diffrac->SetBinContent(67,0.002509694);
   diffrac->SetBinContent(68,0.002495204);
   diffrac->SetBinContent(69,0.002547368);
   diffrac->SetBinContent(70,0.002153236);
   diffrac->SetBinContent(71,0.002222789);
   diffrac->SetBinContent(72,0.001904006);
   diffrac->SetBinContent(73,0.002008335);
   diffrac->SetBinContent(74,0.001762002);
   diffrac->SetBinContent(75,0.001617101);
   diffrac->SetBinContent(76,0.001834453);
   diffrac->SetBinContent(77,0.001770696);
   diffrac->SetBinContent(78,0.001463505);
   diffrac->SetBinContent(79,0.001312808);
   diffrac->SetBinContent(80,0.001193988);
   diffrac->SetBinContent(81,0.001240357);
   diffrac->SetBinContent(82,0.001307011);
   diffrac->SetBinContent(83,0.001101251);
   diffrac->SetBinContent(84,0.001008514);
   diffrac->SetBinContent(85,0.0008838991);
   diffrac->SetBinContent(86,0.0009969223);
   diffrac->SetBinContent(87,0.0008896952);
   diffrac->SetBinContent(88,0.001011412);
   diffrac->SetBinContent(89,0.0008867972);
   diffrac->SetBinContent(90,0.0007563858);
   diffrac->SetBinContent(91,0.000681037);
   diffrac->SetBinContent(92,0.0005911981);
   diffrac->SetBinContent(93,0.0007360996);
   diffrac->SetBinContent(94,0.0006259745);
   diffrac->SetBinContent(95,0.0004955631);
   diffrac->SetBinContent(96,0.000486869);
   diffrac->SetBinContent(97,0.0004462966);
   diffrac->SetBinContent(98,0.0003970301);
   diffrac->SetBinContent(99,0.0003448656);
   diffrac->SetBinContent(100,0.0002782109);
   diffrac->SetBinContent(101,0.0003042931);
   diffrac->SetBinContent(102,0.0002550266);
   diffrac->SetBinContent(103,0.0003361715);
   diffrac->SetBinContent(104,0.0001854739);
   diffrac->SetBinContent(105,0.0003158853);
   diffrac->SetBinContent(106,0.0002144542);
   diffrac->SetBinContent(107,0.0001767798);
   diffrac->SetBinContent(108,0.0001477995);
   diffrac->SetBinContent(109,0.0001506976);
   diffrac->SetBinContent(110,0.0001362074);
   diffrac->SetBinContent(111,0.0002463325);
   diffrac->SetBinContent(112,0.0001391054);
   diffrac->SetBinContent(113,0.0002173522);
   diffrac->SetBinContent(114,9.853302e-05);
   diffrac->SetBinContent(115,0.0001420035);
   diffrac->SetBinContent(116,0.0001159212);
   diffrac->SetBinContent(117,8.983893e-05);
   diffrac->SetBinContent(118,6.085863e-05);
   diffrac->SetBinContent(119,6.375666e-05);
   diffrac->SetBinContent(120,6.375666e-05);
   diffrac->SetBinContent(121,5.79606e-05);
   diffrac->SetBinContent(122,6.665469e-05);
   diffrac->SetBinContent(123,4.926651e-05);
   diffrac->SetBinContent(124,4.347045e-05);
   diffrac->SetBinContent(125,4.636848e-05);
   diffrac->SetBinContent(126,5.216454e-05);
   diffrac->SetBinContent(127,3.477636e-05);
   diffrac->SetBinContent(128,3.767439e-05);
   diffrac->SetBinContent(129,2.318424e-05);
   diffrac->SetBinContent(130,2.028621e-05);
   diffrac->SetBinContent(131,3.187833e-05);
   diffrac->SetBinContent(132,2.608227e-05);
   diffrac->SetBinContent(133,3.477636e-05);
   diffrac->SetBinContent(134,1.738818e-05);
   diffrac->SetBinContent(135,1.738818e-05);
   diffrac->SetBinContent(136,8.69409e-06);
   diffrac->SetBinContent(137,1.449015e-05);
   diffrac->SetBinContent(138,1.449015e-05);
   diffrac->SetBinContent(139,2.89803e-06);
   diffrac->SetBinContent(140,5.79606e-06);
   diffrac->SetBinContent(141,8.69409e-06);
   diffrac->SetBinContent(142,1.159212e-05);
   diffrac->SetBinContent(143,2.89803e-06);
   diffrac->SetBinContent(144,1.159212e-05);
   diffrac->SetBinContent(145,2.89803e-06);
   diffrac->SetBinContent(146,2.89803e-06);
   diffrac->SetBinContent(147,5.79606e-06);
   diffrac->SetBinContent(149,8.69409e-06);
   diffrac->SetBinContent(151,5.79606e-06);
   diffrac->SetBinContent(152,8.69409e-06);
   diffrac->SetBinContent(154,2.89803e-06);
   diffrac->SetBinContent(155,2.89803e-06);
   diffrac->SetBinContent(157,5.79606e-06);
   diffrac->SetBinContent(170,2.89803e-06);
   diffrac->SetBinContent(173,5.79606e-06);
   diffrac->SetBinContent(178,2.89803e-06);
   diffrac->SetBinError(1,2.109798e-05);
   diffrac->SetBinError(2,7.872833e-05);
   diffrac->SetBinError(3,0.0001065593);
   diffrac->SetBinError(4,0.0001422694);
   diffrac->SetBinError(5,0.0001825069);
   diffrac->SetBinError(6,0.0002236183);
   diffrac->SetBinError(7,0.0002601617);
   diffrac->SetBinError(8,0.000294603);
   diffrac->SetBinError(9,0.00031819);
   diffrac->SetBinError(10,0.0003260638);
   diffrac->SetBinError(11,0.0003374556);
   diffrac->SetBinError(12,0.0003391438);
   diffrac->SetBinError(13,0.0003337896);
   diffrac->SetBinError(14,0.0003231531);
   diffrac->SetBinError(15,0.0003154995);
   diffrac->SetBinError(16,0.0003095742);
   diffrac->SetBinError(17,0.0002962943);
   diffrac->SetBinError(18,0.0002839921);
   diffrac->SetBinError(19,0.0002806005);
   diffrac->SetBinError(20,0.0002713336);
   diffrac->SetBinError(21,0.0002575662);
   diffrac->SetBinError(22,0.0002566189);
   diffrac->SetBinError(23,0.0002493485);
   diffrac->SetBinError(24,0.0002514615);
   diffrac->SetBinError(25,0.0002409725);
   diffrac->SetBinError(26,0.0002338802);
   diffrac->SetBinError(27,0.0002245552);
   diffrac->SetBinError(28,0.0002181237);
   diffrac->SetBinError(29,0.0002131382);
   diffrac->SetBinError(30,0.0002114371);
   diffrac->SetBinError(31,0.0002066155);
   diffrac->SetBinError(32,0.0002014704);
   diffrac->SetBinError(33,0.0001930619);
   diffrac->SetBinError(34,0.0001918399);
   diffrac->SetBinError(35,0.0001925391);
   diffrac->SetBinError(36,0.0001850432);
   diffrac->SetBinError(37,0.0001826679);
   diffrac->SetBinError(38,0.0001738093);
   diffrac->SetBinError(39,0.0001724023);
   diffrac->SetBinError(40,0.0001643467);
   diffrac->SetBinError(41,0.0001617454);
   diffrac->SetBinError(42,0.0001561444);
   diffrac->SetBinError(43,0.0001554706);
   diffrac->SetBinError(44,0.0001488753);
   diffrac->SetBinError(45,0.0001514758);
   diffrac->SetBinError(46,0.0001476574);
   diffrac->SetBinError(47,0.0001391356);
   diffrac->SetBinError(48,0.0001375267);
   diffrac->SetBinError(49,0.0001319161);
   diffrac->SetBinError(50,0.0001309255);
   diffrac->SetBinError(51,0.0001344074);
   diffrac->SetBinError(52,0.0001332148);
   diffrac->SetBinError(53,0.0001261892);
   diffrac->SetBinError(54,0.0001206082);
   diffrac->SetBinError(55,0.0001176829);
   diffrac->SetBinError(56,0.0001165354);
   diffrac->SetBinError(57,0.0001123524);
   diffrac->SetBinError(58,0.0001091677);
   diffrac->SetBinError(59,0.0001091677);
   diffrac->SetBinError(60,0.0001101633);
   diffrac->SetBinError(61,9.997153e-05);
   diffrac->SetBinError(62,0.0001020502);
   diffrac->SetBinError(63,9.891584e-05);
   diffrac->SetBinError(64,9.40856e-05);
   diffrac->SetBinError(65,8.727835e-05);
   diffrac->SetBinError(66,9.475273e-05);
   diffrac->SetBinError(67,8.528287e-05);
   diffrac->SetBinError(68,8.503632e-05);
   diffrac->SetBinError(69,8.59206e-05);
   diffrac->SetBinError(70,7.899458e-05);
   diffrac->SetBinError(71,8.026026e-05);
   diffrac->SetBinError(72,7.428234e-05);
   diffrac->SetBinError(73,7.629033e-05);
   diffrac->SetBinError(74,7.145862e-05);
   diffrac->SetBinError(75,6.845733e-05);
   diffrac->SetBinError(76,7.291296e-05);
   diffrac->SetBinError(77,7.16347e-05);
   diffrac->SetBinError(78,6.512512e-05);
   diffrac->SetBinError(79,6.168108e-05);
   diffrac->SetBinError(80,5.882358e-05);
   diffrac->SetBinError(81,5.995491e-05);
   diffrac->SetBinError(82,6.154477e-05);
   diffrac->SetBinError(83,5.6493e-05);
   diffrac->SetBinError(84,5.406205e-05);
   diffrac->SetBinError(85,5.061192e-05);
   diffrac->SetBinError(86,5.375045e-05);
   diffrac->SetBinError(87,5.077759e-05);
   diffrac->SetBinError(88,5.413967e-05);
   diffrac->SetBinError(89,5.069482e-05);
   diffrac->SetBinError(90,4.681911e-05);
   diffrac->SetBinError(91,4.442596e-05);
   diffrac->SetBinError(92,4.139215e-05);
   diffrac->SetBinError(93,4.6187e-05);
   diffrac->SetBinError(94,4.259217e-05);
   diffrac->SetBinError(95,3.789666e-05);
   diffrac->SetBinError(96,3.756276e-05);
   diffrac->SetBinError(97,3.596361e-05);
   diffrac->SetBinError(98,3.392057e-05);
   diffrac->SetBinError(99,3.161377e-05);
   diffrac->SetBinError(100,2.839478e-05);
   diffrac->SetBinError(101,2.969597e-05);
   diffrac->SetBinError(102,2.718593e-05);
   diffrac->SetBinError(103,3.121274e-05);
   diffrac->SetBinError(104,2.318424e-05);
   diffrac->SetBinError(105,3.025632e-05);
   diffrac->SetBinError(106,2.49298e-05);
   diffrac->SetBinError(107,2.263434e-05);
   diffrac->SetBinError(108,2.069607e-05);
   diffrac->SetBinError(109,2.089799e-05);
   diffrac->SetBinError(110,1.986789e-05);
   diffrac->SetBinError(111,2.671852e-05);
   diffrac->SetBinError(112,2.007814e-05);
   diffrac->SetBinError(113,2.509768e-05);
   diffrac->SetBinError(114,1.689827e-05);
   diffrac->SetBinError(115,2.028621e-05);
   diffrac->SetBinError(116,1.832875e-05);
   diffrac->SetBinError(117,1.613555e-05);
   diffrac->SetBinError(118,1.328044e-05);
   diffrac->SetBinError(119,1.359297e-05);
   diffrac->SetBinError(120,1.359297e-05);
   diffrac->SetBinError(121,1.296038e-05);
   diffrac->SetBinError(122,1.389846e-05);
   diffrac->SetBinError(123,1.194888e-05);
   diffrac->SetBinError(124,1.122402e-05);
   diffrac->SetBinError(125,1.159212e-05);
   diffrac->SetBinError(126,1.22953e-05);
   diffrac->SetBinError(127,1.003907e-05);
   diffrac->SetBinError(128,1.0449e-05);
   diffrac->SetBinError(129,8.196866e-06);
   diffrac->SetBinError(130,7.667466e-06);
   diffrac->SetBinError(131,9.611678e-06);
   diffrac->SetBinError(132,8.69409e-06);
   diffrac->SetBinError(133,1.003907e-05);
   diffrac->SetBinError(134,7.098695e-06);
   diffrac->SetBinError(135,7.098695e-06);
   diffrac->SetBinError(136,5.019535e-06);
   diffrac->SetBinError(137,6.480192e-06);
   diffrac->SetBinError(138,6.480192e-06);
   diffrac->SetBinError(139,2.89803e-06);
   diffrac->SetBinError(140,4.098433e-06);
   diffrac->SetBinError(141,5.019535e-06);
   diffrac->SetBinError(142,5.79606e-06);
   diffrac->SetBinError(143,2.89803e-06);
   diffrac->SetBinError(144,5.79606e-06);
   diffrac->SetBinError(145,2.89803e-06);
   diffrac->SetBinError(146,2.89803e-06);
   diffrac->SetBinError(147,4.098433e-06);
   diffrac->SetBinError(149,5.019535e-06);
   diffrac->SetBinError(151,4.098433e-06);
   diffrac->SetBinError(152,5.019535e-06);
   diffrac->SetBinError(154,2.89803e-06);
   diffrac->SetBinError(155,2.89803e-06);
   diffrac->SetBinError(157,4.098433e-06);
   diffrac->SetBinError(170,2.89803e-06);
   diffrac->SetBinError(173,4.098433e-06);
   diffrac->SetBinError(178,2.89803e-06);
   diffrac->SetEntries(345062);
   diffrac->SetDirectory(0);
   diffrac->SetFillColor(1);
   diffrac->SetFillStyle(0);
   diffrac->SetLineStyle(2);
   diffrac->SetLineWidth(3);
   diffrac->SetMarkerStyle(20);
   diffrac->GetXaxis()->SetTitle("M");
   diffrac->GetXaxis()->SetLabelFont(42);
   diffrac->GetXaxis()->SetLabelOffset(0.01);
   diffrac->GetXaxis()->SetLabelSize(0.045);
   diffrac->GetXaxis()->SetTitleSize(0.055);
   diffrac->GetXaxis()->SetTitleFont(42);
   diffrac->GetYaxis()->SetTitle("Fraction of events");
   diffrac->GetYaxis()->SetLabelFont(42);
   diffrac->GetYaxis()->SetLabelOffset(0.01);
   diffrac->GetYaxis()->SetLabelSize(0.045);
   diffrac->GetYaxis()->SetTitleSize(0.055);
   diffrac->GetYaxis()->SetTitleOffset(1.6);
   diffrac->GetYaxis()->SetTitleFont(42);
   diffrac->GetZaxis()->SetLabelFont(42);
   diffrac->GetZaxis()->SetLabelSize(0.045);
   diffrac->GetZaxis()->SetTitleFont(42);
   diffrac->Draw("p same");
   
   TLegend *leg = new TLegend(0.61,0.67,0.91,0.87,NULL,"brNDC");
   leg->SetBorderSize(0);
   leg->SetTextFont(62);
   leg->SetTextSize(0.035);
   leg->SetLineColor(1);
   leg->SetLineStyle(1);
   leg->SetLineWidth(2);
   leg->SetFillColor(19);
   leg->SetFillStyle(0);
   TLegendEntry *entry=leg->AddEntry("diffrac","PYTHIA 7 TeV","l");
   entry->SetLineColor(1);
   entry->SetLineWidth(2);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(20);
   entry->SetMarkerSize(1);
   //entry=leg->AddEntry("diffrac","(Atlas tune)","");
   entry->SetLineColor(1);
   entry->SetLineStyle(1);
   entry->SetLineWidth(1);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(21);
   entry->SetMarkerSize(1);
   entry=leg->AddEntry("diffrac","PHOJET 7 TeV","p");
   entry->SetLineColor(1);
   entry->SetLineStyle(1);
   entry->SetLineWidth(1);
   entry->SetMarkerColor(1);
   entry->SetMarkerStyle(20);
   entry->SetMarkerSize(1);
   leg->Draw();
   
   printFinalCanvases(cEvtSel,"diffrac");


   /*
   TLatex *   tex = new TLatex(0.85,0.9,"CMS");
   tex->SetNDC();
   tex->SetTextSize(0.04);
   tex->SetLineWidth(2);
   tex->Draw();
   cEvtSel->Modified();
   cEvtSel->cd();
   cEvtSel->SetSelected(cEvtSel);
   */
}
예제 #10
0
void plot(int mass) {
  double myQCDRelUncert = 0.038;
  double myEWKRelUncert = 0.131;
  double myFakesRelUncert = 0.238;
  double delta = 1.4;
  double br = 0.05;
  bool debug = false;
  bool log = false;
  double ymin = 0.001;
  double ymax = 48;
  
  static bool bMessage = false;
  if (!bMessage) {
    cout << "Values used as relative uncertainty (please check):" << endl;
    cout << "  QCD: " << myQCDRelUncert << endl;
    cout << "  EWK genuine tau: " << myEWKRelUncert << endl;
    cout << "  EWK fake tau: " << myFakesRelUncert << endl << endl;
    bMessage = true;
  }
  cout << "Processing mass point: " << mass << " GeV/c2" << endl;
  
  gStyle->SetOptFit(1);
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(0);
  gStyle->SetTitleFont(43, "xyz");
  gStyle->SetTitleSize(33, "xyz");
  gStyle->SetLabelFont(43, "xyz");
  gStyle->SetLabelSize(27, "xyz");
  
  //std::string infile = "EPS_data_nodeltaphi/hplus_100.root";
  //std::string infile = "EPS_data_deltaphi160/hplus_100.root";
  std::stringstream s;
  s << "lands_histograms_hplushadronic_m" << mass << ".root";

  std::string infile = s.str();
  
 // Canvas
  TCanvas *myCanvas = new TCanvas("myCanvas", "",0,0,600,600);
  myCanvas->SetHighLightColor(2);
  myCanvas->Range(0,0,1,1);
  myCanvas->SetFillColor(0);
  myCanvas->SetBorderMode(0);
  myCanvas->SetBorderSize(2);
  if (log)
    myCanvas->SetLogy();
  myCanvas->SetTickx(1);
  myCanvas->SetTicky(1);
  myCanvas->SetLeftMargin(0.16);
  myCanvas->SetRightMargin(0.05);
  myCanvas->SetTopMargin(0.05);
  myCanvas->SetBottomMargin(0.08);
  myCanvas->SetFrameFillStyle(0);
  myCanvas->SetFrameBorderMode(0);
  myCanvas->SetFrameFillStyle(0);
  myCanvas->SetFrameBorderMode(0);
  myCanvas->cd();

  Int_t ci;

  TFile* f = TFile::Open(infile.c_str());
  s.str("");
  s << "HW" << mass << "_1";
  TH1* hw = (TH1*)f->Get(s.str().c_str());
  s.str("");
  s << "HH" << mass << "_1";
  TH1* hh = (TH1*)f->Get(s.str().c_str());
  TH1* data = (TH1*)f->Get("data_obs");
  data->SetLineWidth(2);
  data->SetMarkerStyle(20);
  data->SetMarkerSize(1.2);

  TH1* ewktau = (TH1*)f->Get("EWK_Tau");
  ci = TColor::GetColor("#993399");
  ewktau->SetFillColor(ci);
  ewktau->SetLineWidth(0);
  TH1* ewkDY = (TH1*)f->Get("EWK_DYx");
  TH1* ewkVV = (TH1*)f->Get("EWK_VVx");
  ewktau->Add(ewkDY);
  ewktau->Add(ewkVV);
  
  //TH1* qcd = (TH1*)f->Get("QCDInv");
  TH1* qcd = (TH1*)f->Get("QCD");
  ci = TColor::GetColor("#ffcc33");
  qcd->SetFillColor(ci);
  qcd->SetLineWidth(0);
  TH1* fakett = (TH1*)f->Get("fake_tt");
  ci = TColor::GetColor("#669900");
  fakett->SetFillColor(ci);
  fakett->SetLineWidth(0);
  TH1* fakeW = (TH1*)f->Get("fake_W");
  ci = TColor::GetColor("#cc3300");
  fakeW->SetFillColor(ci);
  fakeW->SetLineWidth(0);
  TH1* faket = (TH1*)f->Get("fake_t");

  TH1F *hFrame = new TH1F("hFrame","",20,0,400);
  hFrame->SetMinimum(ymin);
  if (log)
    hFrame->SetMaximum(ymax*1.5);
  else
    hFrame->SetMaximum(ymax);
  hFrame->SetDirectory(0);
  hFrame->SetStats(0);
  hFrame->SetLineStyle(0);
  hFrame->SetMarkerStyle(20);
  hFrame->SetXTitle("Transverse mass (#tau jet, E_{T}^{miss}), (GeV/c^{2})");
  if (paperStatus)
    hFrame->SetXTitle("Transverse mass (#tau_{h}, E_{T}^{miss}), (GeV/c^{2})");
  hFrame->SetYTitle("Events / 20 GeV/c^{2}");
  hFrame->GetXaxis()->SetTitleSize(0);
  hFrame->GetXaxis()->SetLabelSize(0);
  hFrame->GetYaxis()->SetTitleFont(43);
  hFrame->GetYaxis()->SetTitleSize(27);
  hFrame->GetYaxis()->SetTitleOffset(1.3);
  

  // signal
  hh->Scale(br*br);
  hw->Scale(2*br*(1.0-br));
  TH1* signal = (TH1*)hh->Clone();
  signal->Add(hw);

  ci = TColor::GetColor("#ff3399");
  signal->SetLineColor(ci);
  signal->SetLineStyle(2);
  signal->SetLineWidth(2);

  // Fakes
  TH1* fakes = (TH1*)(fakett->Clone());
  fakes->Add(fakeW);
  fakes->Add(faket);

  // stacked backgrounds
  THStack *exp = new THStack();
  exp->SetName("exp");
  exp->SetTitle("exp");
  exp->Add(fakes);
  exp->Add(ewktau);
  exp->Add(qcd);
  exp->Add(signal);
  
  TH1* hExpBkg = (TH1*)fakes->Clone();
  hExpBkg->Add(ewktau);
  hExpBkg->Add(qcd);
  
  // uncertainty
  TH1* uncert = (TH1*)fakeW->Clone();
  uncert->Add(fakett);
  uncert->Add(ewktau);
  uncert->Add(qcd);
  uncert->SetFillColor(1);
  uncert->SetFillStyle(3344);
  uncert->SetLineColor(0);
  uncert->SetLineStyle(0);
  uncert->SetLineWidth(0);

  TH1* hExpBkgTotalUncert = (TH1*)uncert->Clone();
  hExpBkgTotalUncert->SetFillStyle(3354);

  TH1* hAgreement = (TH1*)data->Clone();
  hAgreement->Divide(hExpBkg);
  TGraphErrors* hAgreementRelUncert = new TGraphErrors(hAgreement->GetNbinsX());
  hAgreementRelUncert->SetLineWidth(2);
  hAgreementRelUncert->SetLineColor(kBlack);
  for (int i = 1; i <= hFrame->GetNbinsX(); ++i) {
    double myQCDTotalUncert = TMath::Power(qcd->GetBinError(i), 2)
      + TMath::Power(qcd->GetBinContent(i)*myQCDRelUncert, 2);
    double myEWKTotalUncert = TMath::Power(ewktau->GetBinError(i), 2)
      + TMath::Power(ewktau->GetBinContent(i)*myEWKRelUncert, 2);
    double myFakesTotalUncert = TMath::Power(fakes->GetBinError(i), 2)
      + TMath::Power(fakes->GetBinContent(i)*myFakesRelUncert, 2);
    hExpBkgTotalUncert->SetBinError(i, TMath::Sqrt(myQCDTotalUncert + myEWKTotalUncert + myFakesTotalUncert));

    if (hExpBkg->GetBinContent(i) > 0) {
      hAgreementRelUncert->SetPoint(i-1, hExpBkg->GetBinCenter(i), data->GetBinContent(i) / hExpBkg->GetBinContent(i));
      double myUncertData = 0;
      if (data->GetBinContent(i) > 0)
        myUncertData = TMath::Power(data->GetBinError(i) / data->GetBinContent(i), 2);
      double myUncertBkg = (myQCDTotalUncert + myEWKTotalUncert + myFakesTotalUncert) / TMath::Power(hExpBkg->GetBinContent(i), 2);
      hAgreementRelUncert->SetPointError(i-1, 0,  data->GetBinContent(i) / hExpBkg->GetBinContent(i) * TMath::Sqrt(myUncertData + myUncertBkg));
    } else {
      hAgreementRelUncert->SetPoint(i-1, hExpBkg->GetBinCenter(i), 0);
      hAgreementRelUncert->SetPointError(i-1, 0, 0);
    }
    if (debug) {
      cout << "Point: " << hAgreementRelUncert->GetX()[i-1]-10 << "-" << hAgreementRelUncert->GetX()[i-1]+10
          << " GeV/c2, agreement: " << hAgreementRelUncert->GetY()[i-1] << ", uncert: " << hAgreement->GetBinError(i) << ", " << hAgreementRelUncert->GetErrorY(i-1) << endl;
      cout << "  bkg. stat. uncert. " << hExpBkg->GetBinError(i) << " (i.e. " << hExpBkg->GetBinError(i) / hExpBkg->GetBinContent(i) * 100.0 << " %)"
          << ", stat+syst uncert. " << TMath::Sqrt(myQCDTotalUncert + myEWKTotalUncert + myFakesTotalUncert) 
          << " (i.e. " << TMath::Sqrt(myQCDTotalUncert + myEWKTotalUncert + myFakesTotalUncert) / hExpBkg->GetBinContent(i) * 100.0 << " %)" << endl;
    }
  }

  // Agreement pad
  TPad* pad = new TPad("ratiopad","ratiopad",0.,0.,1.,.3);
  pad->Draw();
  pad->cd();
  pad->Range(0,0,1,1);
  pad->SetFillColor(0);
  pad->SetFillStyle(4000);
  pad->SetBorderMode(0);
  pad->SetBorderSize(2);
  pad->SetTickx(1);
  pad->SetTicky(1);
  pad->SetLeftMargin(0.16);
  pad->SetRightMargin(0.05);
  pad->SetTopMargin(0);
  pad->SetBottomMargin(0.34);
  pad->SetFrameFillStyle(0);
  pad->SetFrameBorderMode(0);
  // Plot here ratio
  if (1.0-delta > 0)
    hAgreement->SetMinimum(1.0-delta);
  else
    hAgreement->SetMinimum(0.);
  hAgreement->SetMaximum(1.0+delta);
  hAgreement->GetXaxis()->SetLabelOffset(0.007);
  hAgreement->GetXaxis()->SetLabelFont(43);
  hAgreement->GetXaxis()->SetLabelSize(27);
  hAgreement->GetYaxis()->SetLabelFont(43);
  hAgreement->GetYaxis()->SetLabelSize(27);
  hAgreement->GetYaxis()->SetLabelOffset(0.007);
  hAgreement->GetYaxis()->SetNdivisions(505);
  hAgreement->GetXaxis()->SetTitleFont(43);
  hAgreement->GetYaxis()->SetTitleFont(43);
  hAgreement->GetXaxis()->SetTitleSize(33);
  hAgreement->GetYaxis()->SetTitleSize(33);
  hAgreement->SetTitleSize(27, "xyz");
  hAgreement->GetXaxis()->SetTitleOffset(3.2);
  hAgreement->GetYaxis()->SetTitleOffset(1.3);
  hAgreement->SetXTitle(hFrame->GetXaxis()->GetTitle());
  hAgreement->SetYTitle("Data/#Sigmabkg");
  hAgreement->Draw("e2");
  // Plot line at zero
  TH1* hAgreementLine = dynamic_cast<TH1*>(hAgreement->Clone());
  for (int i = 1; i <= hAgreementLine->GetNbinsX(); ++i) {
    hAgreementLine->SetBinContent(i,1.0);
    hAgreementLine->SetBinError(i,0.0);
  }
  hAgreementLine->SetLineColor(kRed);
  hAgreementLine->SetLineWidth(2);
  hAgreementLine->SetLineStyle(3);
  hAgreementLine->Draw("hist same");
  hAgreement->Draw("same");
  hAgreementRelUncert->Draw("[]");
  pad->RedrawAxis();

  myCanvas->cd();
  
  TPad* plotpad = new TPad("plotpad", "plotpad",0,0.3,1.,1.);
  plotpad->Draw();
  plotpad->cd();
  plotpad->Range(0,0,1,1);
  plotpad->SetFillColor(0);
  plotpad->SetFillStyle(4000);
  plotpad->SetBorderMode(0);
  plotpad->SetBorderSize(2);
  //if (logy)
  //  plotpad->SetLogy();
  plotpad->SetTickx(1);
  plotpad->SetTicky(1);
  plotpad->SetLeftMargin(0.16);
  plotpad->SetRightMargin(0.05);
  plotpad->SetTopMargin(0.065);
  plotpad->SetBottomMargin(0.0);
  plotpad->SetFrameFillStyle(0);
  plotpad->SetFrameBorderMode(0);
  
  hFrame->GetXaxis()->SetTitleSize(0);
  hFrame->GetXaxis()->SetLabelSize(0);
  hFrame->GetYaxis()->SetTitleFont(43);
  hFrame->GetYaxis()->SetTitleSize(33);
  hFrame->GetYaxis()->SetTitleOffset(1.3);
  
  // Draw objects
  hFrame->Draw();
  exp->Draw("hist same");
  uncert->Draw("E2 same");
  hExpBkgTotalUncert->Draw("E2 same");
  // Data
  data->Draw("same");
  
  //signal->Draw("same");
  TLegend *leg = new TLegend(0.53,0.6,0.87,0.91,NULL,"brNDC");
  leg->SetBorderSize(0);
  leg->SetTextFont(63);
  leg->SetTextSize(18);
  leg->SetLineColor(1);
  leg->SetLineStyle(1);
  leg->SetLineWidth(1);
  leg->SetFillColor(kWhite);
  //leg->SetFillStyle(4000); // enabling this will cause the plot to be erased from the pad
  TLegendEntry* entry = leg->AddEntry(data, "Data", "P");
  s.str("");
  s << "with H^{#pm}#rightarrow#tau^{#pm}#nu";
  entry = leg->AddEntry(signal, s.str().c_str(), "L");
  entry = leg->AddEntry(qcd, "QCD (meas.)", "F");
  entry = leg->AddEntry(ewktau, "EWK genuine #tau (meas.)", "F");
  entry = leg->AddEntry(fakes, "EWK fake #tau (MC)", "F");
  entry = leg->AddEntry(uncert, "stat. uncert.", "F");
  entry = leg->AddEntry(hExpBkgTotalUncert, "stat. #oplus syst. uncert.", "F");
  leg->Draw();
  
  string myTitle = "CMS Preliminary";
  if (paperStatus)
    myTitle = "CMS";

  TLatex *tex = new TLatex(0.62,0.945,myTitle.c_str());
  tex->SetNDC();
  tex->SetTextFont(43);
  tex->SetTextSize(27);
  tex->SetLineWidth(2);
  tex->Draw();
  tex = new TLatex(0.2,0.945,"#sqrt{s} = 7 TeV");
  tex->SetNDC();
  tex->SetTextFont(43);
  tex->SetTextSize(27);
  tex->SetLineWidth(2);
  tex->Draw();
  tex = new TLatex(0.43,0.945,"2.2 fb^{-1}");
  tex->SetNDC();
  tex->SetTextFont(43);
  tex->SetTextSize(27);
  tex->SetLineWidth(2);
  tex->Draw();

  s.str("");
  s << "m_{H^{#pm}} = " << mass << " GeV/c^{2}";
  tex = new TLatex(0.28,0.865,s.str().c_str());
  tex->SetNDC();
  tex->SetTextFont(63);
  tex->SetTextSize(20);
  tex->SetLineWidth(2);
  tex->Draw();
  s.str("");
  s << "BR(t#rightarrowbH^{#pm})=" << setprecision(2) << br;
  tex = new TLatex(0.28,0.805,s.str().c_str());
  tex->SetNDC();
  tex->SetTextFont(63);
  tex->SetTextSize(20);
  tex->SetLineWidth(2);
  tex->Draw();

  
  plotpad->RedrawAxis();
  plotpad->Modified();

  s.str("");
  s << "mT_datadriven_m" << mass << ".png";
  myCanvas->Print(s.str().c_str());
  s.str("");
  s << "mT_datadriven_m" << mass << ".C";
  myCanvas->Print(s.str().c_str());
  s.str("");
  s << "mT_datadriven_m" << mass << ".eps";
  myCanvas->Print(s.str().c_str());
   

}