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; }
//------------------------------------------------------------------------------ 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; }
//------------------------------------------------------------------------------ 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; }
//------------------------------------------ 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; }
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); */ }
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); */ }
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()); }