本文整理汇总了C++中TH1F::SetTitleSize方法的典型用法代码示例。如果您正苦于以下问题:C++ TH1F::SetTitleSize方法的具体用法?C++ TH1F::SetTitleSize怎么用?C++ TH1F::SetTitleSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH1F
的用法示例。
在下文中一共展示了TH1F::SetTitleSize方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DrawSmooth
void DrawSmooth(Int_t pad, const char *title, const char *xt, const char *yt)
{
vC1->cd(pad);
TH1F *vFrame = gPad->DrawFrame(0,-130,60,70);
vFrame->SetTitle(title);
vFrame->SetTitleSize(0.2);
vFrame->SetXTitle(xt);
vFrame->SetYTitle(yt);
grin->Draw("P");
grout->DrawClone("LPX");
}
示例2:
TH1F* makehist( string id, int ndf )
{
int hits_count = ndf + 2;
TString hist_name, cut, title;
hist_name += id;
hist_name += "_chisq_";
hist_name += hits_count;
hist_name += "hits";
cut += id;
cut += "_hits_count == ";
cut += hits_count;
float min_x = 0;
float max_x = (ndf == 2) ? 2.0 : 0.5;
TH1F *hist = new TH1F(hist_name.Data(), cut, 1000, min_x, max_x);
events->Draw(Form("%s_chisq >> %s", id.c_str(), hist_name.Data()), cut);
if (hits_count > 3)
{
TF1 *func = new TF1("func", "[0]*exp([1]*x)+[2]");
TFitResultPtr fit = hist->Fit(func, "SQ", "", 0.0, 0.5); // S - return fit result, Q - quiet
std::cout << hist_name << "\tslope: " << fit->Parameter(1) << "\tadd const: " << fit->Parameter(2) << std::endl;
}
if (id[1] == '3')
{
title += "Left ";
}
else
{
title += "Right ";
}
title += id[2];
title += " (";
title += cut;
title += ")";
hist->SetTitle(title);
hist->SetLabelSize(0.04, "X");
hist->SetLabelSize(0.04, "Y");
hist->SetTitleSize(0.05, "X");
hist->SetTitleSize(0.05, "Y");
hist->SetTitleOffset(0.9, "X");
hist->SetTitleOffset(1.1, "Y");
hist->GetXaxis()->SetTitle("#chi^2, [mm]");
hist->GetYaxis()->SetTitle("N");
return hist;
}
示例3: DrawSmooth
void DrawSmooth(Int_t pad, const char *title, const char *xt,
const char *yt)
{
vC1->cd(pad);
TH1F *vFrame = gPad->DrawFrame(0,0,15,150);
vFrame->SetTitle(title);
vFrame->SetTitleSize(0.2);
vFrame->SetXTitle(xt);
vFrame->SetYTitle(yt);
grxy->SetMarkerColor(kBlue);
grxy->SetMarkerStyle(21);
grxy->SetMarkerSize(0.5);
grxy->Draw("P");
grin->SetMarkerColor(kRed);
grin->SetMarkerStyle(5);
grin->SetMarkerSize(0.7);
grin->Draw("P");
grout->DrawClone("LP");
}
示例4: W_MET_Ratio
/*#include <TSystem.h> // interface to OS
#include <TStyle.h> // class to handle ROOT plotting styles#include <TFile.h> // file handle class
#include <TTree.h> // class to access ntuples
#include <TBenchmark.h> // class to track macro running statistics
#include <TH1D.h> // histogram class
#include <vector> // STL vector class
#include <iostream> // standard I/O
#include <iomanip> // functions to format standard I/O
#include <fstream> // functions for file I/O
#include <string> // C++ string class
#include <sstream> // class for parsing strings
#include <TRandom3.h>
#include <TGaxis.h>
#include "Math/LorentzVector.h" // 4-vector class
#include "../Utils/MyTools.hh" // various helper functions
#include "../Utils/CPlot.hh" // helper class for plots
#include "../Utils/MitStyleRemix.hh" // style settings for drawing
#include "../Utils/WModels.hh" // definitions of PDFs for fitting
#include "../Utils/RecoilCorrector.hh" // class to handle recoil corrections for MET
*/
void W_MET_Ratio()
{
TCanvas *c = new TCanvas("c","c",800,800);
c->Divide(1,2,0,0);
c->cd(1)->SetPad(0,0.3,1.0,1.0);
c->cd(1)->SetTopMargin(0.1);
c->cd(1)->SetBottomMargin(0.01);
c->cd(1)->SetLeftMargin(0.15);
c->cd(1)->SetRightMargin(0.07);
c->cd(1)->SetTickx(1);
c->cd(1)->SetTicky(1);
c->cd(2)->SetPad(0,0,1.0,0.3);
c->cd(2)->SetTopMargin(0.05);
c->cd(2)->SetBottomMargin(0.45);
c->cd(2)->SetLeftMargin(0.15);
c->cd(2)->SetRightMargin(0.07);
c->cd(2)->SetTickx(1);
c->cd(2)->SetTicky(1);
c->cd(2)->SetGridy();
TLegend * lgc = new TLegend(0.59, 0.67, 0.89, 0.89);
lgc->SetTextSize(0.03);
lgc->SetBorderSize(0);
lgc->SetFillColor(0);
// TFile *file = new TFile("../ElectronHighPU/Ele_RD_HighPU_A_Analysis.root");
TFile *file = new TFile("./ElectronHighPU_N/Ele_WToENu_S10_Analysis.root");
///////////////Original Plot////////////////////////
c->cd(1);
lgc->AddEntry(h1_W_Neut_pt1,"UnCorrected");
h1_W_Neut_pt1->SetYTitle("Events");
h1_W_Neut_pt1->SetFillColor(kWhite);
h1_W_Neut_pt1->SetMarkerColor(kBlack);
h1_W_Neut_pt1->SetMarkerStyle(1);
h1_W_Neut_pt1->SetLineWidth(2);
h1_W_Neut_pt1->Draw();
lgc->AddEntry(h1_W_Neut_pt_Corr,"Corrected");
h1_W_Neut_pt_Corr->SetLineColor(kRed);
h1_W_Neut_pt_Corr->SetFillColor(kWhite);
h1_W_Neut_pt_Corr->SetMarkerColor(kRed);
h1_W_Neut_pt_Corr->SetMarkerStyle(1);
h1_W_Neut_pt_Corr->SetLineWidth(2);
h1_W_Neut_pt_Corr->Draw("same");
lgc->Draw();
///////////////////////////////////////////////////////
c->cd(2);
TH1F * h1_Ori = (TH1F*)file->Get("h1_W_Neut_pt1");
TH1F * h1_Corr = (TH1F*)file->Get("h1_W_Neut_pt_Corr");
int Nbins = h1_Ori->GetNbinsX();
TH1F * ratio = new TH1F("ratio","", Nbins, h1_Ori->GetXaxis()->GetXmin(), h1_Ori->GetXaxis()->GetXmax());
ratio->Divide(h1_Ori, h1_Corr);
ratio->SetXTitle("N_vtx");
ratio->SetMaximum(2);
ratio->SetMinimum(0);
ratio->SetNdivisions(10,"X");
ratio->SetNdivisions(4,"Y");
ratio->SetLabelSize(0.09,"XY");
ratio->SetTitleSize(0.12,"X");
ratio->SetMarkerStyle(20);
ratio->SetMarkerSize(0.7);
ratio->SetMarkerColor(kBlue);
ratio->Draw("P");
// c->SaveAs("W_MET_Ratio_RD.png");
c->SaveAs("W_MET_Ratio_MC.png");
}
示例5: compare
int compare(){
gROOT->SetStyle("Plain");
// For the canvas:
gStyle->SetCanvasColor(0);
// For the Pad:
gStyle->SetPadColor(0);
gStyle->SetPadTickX(1);
gStyle->SetPadTickY(1);
gStyle->SetPadBorderSize(2);
// For the frame:
gStyle->SetFrameBorderMode(0);
// For the statistics box:
gStyle->SetOptStat(0);
// Margins:
gStyle->SetPadBottomMargin(0.25);
gStyle->SetPadTopMargin(0.15);
gStyle->SetPadLeftMargin(0.15);
gStyle->SetPadRightMargin(0.1);
// For the Global title:
gStyle->SetOptTitle(0);
gStyle->SetTitleColor(1);
gStyle->SetTitleFillColor(10);
gStyle->SetTitleTextColor(1);
gStyle->SetTitleFont(42);
gStyle->SetTitleFontSize(0.05);
gStyle->SetTitleBorderSize(0);
// For the axis
gStyle->SetNdivisions(510, "X");
gStyle->SetNdivisions(510, "Y");
gStyle->SetTickLength(0.03);
// For the axis titles:
gStyle->SetTitleOffset(1.4, "X");
gStyle->SetTitleOffset(1.2, "Y");
gStyle->SetTitleOffset(0.5, "Z");
gStyle->SetTitleSize(0.061, "XYZ");
gStyle->SetTitleFont(42, "XYZ");
// For the axis labels:
gStyle->SetLabelSize(0.04, "XYZ");
gStyle->SetLabelOffset(0.01, "XYZ");
gStyle->SetLabelFont(42, "XYZ");
// For the legend
gStyle->SetLegendBorderSize(0);
gROOT->ForceStyle();
////////////////////////////////////////
TFile *f1 = new TFile("output_GetPrediction/prediction_histos_MyTest_data_METsoftSmeared_noAngSmear_N20_CR_v3.root", "READ", "", 0);
TFile *f2 = new TFile("output_GetPrediction/bkg.root", "READ", "", 0);
selection = (TH1F*) f1->FindObjectAny("VBF_MET_presel_4JV_dPhiSide_selection");
prediction = (TH1F*) f1->FindObjectAny("VBF_MET_presel_4JV_dPhiSide_prediction_px");
background2 = (TH1F*) f2->FindObjectAny("met_check_inVR_rebin");
TH1F* background = new TH1F(*prediction);
background->Reset();
for (int i = 1; i <= background->GetXaxis()->GetNbins(); ++i) {
float x = background->GetXaxis()->GetBinCenter(i);
int j = background2->GetXaxis()->FindBin(x);
float value = background2->GetBinContent(j);
float error = background2->GetBinError(j);
background->SetBinContent(i,value);
background->SetBinError(i,error);
}
//double MinX = selection->GetXaxis()->GetBinLowEdge(1);
//double MaxX = selection->GetXaxis()->GetBinUpEdge(selection->GetXaxis()->GetNbins());
double MinX = 150;
double MaxX = 500;
double BinWidth = selection->GetXaxis()->GetBinWidth(selection->GetXaxis()->GetNbins());
double MaxY = prediction->GetBinContent(prediction->GetMaximumBin());
double MaxYsel = selection->GetBinContent(selection->GetMaximumBin());
if (MaxY < MaxYsel) MaxY = MaxYsel;
double YRangeMax = 2.*pow(10., int(log10(MaxY))+2);
double MinY = prediction->GetBinContent(prediction->GetMinimumBin());
double MinYsel = selection->GetBinContent(selection->GetMinimumBin());
if (MinY > MinYsel) MinY = MinYsel;
if (MinY < 0.001) MinY = 0.001;
double YRangeMin = 0.5*pow(10., int(log10(MinY))-2);
TString titlePrediction;
TString titleSelection;
TString titleBackground;
TString RatioTitle;
TString LumiTitle;
TString Title;
TString xTitle;
TString yTitle;
LumiTitle = "ATLAS internal, L = 36.1 fb^{ -1}, #sqrt{s} = 13 TeV";
//.........这里部分代码省略.........
示例6: plotCutFlowNotStaggered
//.........这里部分代码省略.........
int nEntries = currentTree->GetEntries() ;
std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >* diTauSVfit3;
std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >* jets;
currentTree->SetBranchAddress("diTauSVfit3P4",&diTauSVfit3);
currentTree->SetBranchAddress("jetsIDP4",&jets);
for (int n = 0; n < nEntries ; n++) {
currentTree->GetEntry(n);
if( diTauSVfit3->size() < 1) continue;
bool vbfCut = false;
bool jetVeto = false;
if( jets->size()>1 &&
(*jets)[0].Et()>pt1_ && (*jets)[1].Et()>pt2_ &&
abs((*jets)[0].Eta()-(*jets)[1].Eta())>DEta_ &&
((*jets)[0]+(*jets)[1]).M()>Mjj_ ) vbfCut = true;
for(unsigned k=0; k < jets->size(); k++){
if(k>1 &&
( ((*jets)[k].Eta()>(*jets)[1].Eta()+0.5 && (*jets)[k].Eta()<(*jets)[0].Eta()-0.5) ||
((*jets)[k].Eta()>(*jets)[0].Eta()+0.5 && (*jets)[k].Eta()<(*jets)[1].Eta()-0.5) ) &&
(*jets)[k].Et()>jetVeto_ ) jetVeto=true;
}
if(vbfCut) h1->Fill( cutFlow.size()+1.5 ) ;
if(vbfCut && !jetVeto) h1->Fill( cutFlow.size()+2.5 ) ;
}
h1->Scale( Lumi_ / (totalEvents/((fileList_[i].second).second * signalScale)) );
if(((fileList_[i].second).first).find("qqH115")!=string::npos){
hqqH115=(TH1F*)h1->Clone("hqqH115");
hqqH115 = h1;
hqqH115->Sumw2();
continue;
}
if(((fileList_[i].second).first).find("qqH135")!=string::npos){
hqqH135=(TH1F*)h1->Clone("hqqH135");
hqqH135 = h1;
hqqH135->Sumw2();
continue;
}
if(i==0) hSiml=(TH1F*)h1->Clone("hSiml");
else hSiml->Add(h1);
histos.push_back(h1);
}
//float numData = hData->GetEntries();
//float numSiml = hSiml->Integral();
//float dataToSimlRatio = numData/numSiml;
//cout << "data " << numData << " --- simul " << numSiml << endl;
hqqH115->SetTitle(Form("CMS Preliminary 2010 #sqrt{s}=7 TeV L=%.0f pb^{-1}",Lumi_));
hqqH115->SetXTitle("");
hqqH115->SetYTitle("Number of events");
hqqH115->SetTitleSize(0.05,"X");
hqqH115->SetTitleSize(0.05,"Y");
hqqH115->SetTitleOffset(0.75,"Y");
hqqH115->SetAxisRange(0.1,hSiml->GetMaximum()*1.2,"Y");
hqqH115->Draw("HIST");
hqqH135->Draw("HISTSAME");
for(int p = 0; p<histos.size(); p++){
histos[p]->Draw("HISTSAME");
}
leg->Draw();
pad2->cd();
TH1F* hRatio = new TH1F("hRatio", " ; ; purity",
hqqH115->GetNbinsX(),
hqqH115->GetXaxis()->GetXmin(), hqqH115->GetXaxis()->GetXmax());
hRatio->SetLineStyle(kDashed);
hRatio->SetLineWidth(1.0);
hRatio->SetLabelSize(0.12,"X");
hRatio->SetLabelSize(0.10,"Y");
hRatio->SetTitleSize(0.12,"Y");
hRatio->SetTitleOffset(0.36,"Y");
TH1F* hqqH115Clone = (TH1F*)hqqH115->Clone("hqqH115Clone");
TH1F* hqqH135Clone = (TH1F*)hqqH135->Clone("hqqH135Clone");
hqqH115Clone->Divide( hqqH115 ,hSiml,1./signalScale,1.0);
hqqH135Clone->Divide( hqqH135 ,hSiml,1./signalScale,1.0);
hRatio->SetAxisRange(0.,0.1,"Y");
hRatio->Draw();
hqqH115Clone->Draw("HISTSAME");
hqqH135Clone->Draw("HISTSAME");
if(SAVE) c1->SaveAs("Zmm_CutFlowNotStaggeredMass.png");
}
示例7: plotInclusiveMass
//.........这里部分代码省略.........
}
if( ((fileList_[i].second).first).find("Wjets")!=string::npos ) {
h1->SetFillColor(kGreen);
leg->AddEntry(h1,"MadGraph W+jets","F");
}
if( ((fileList_[i].second).first).find("tW")!=string::npos ){
h1->SetFillColor( 44 );
leg->AddEntry(h1,"MadGraph single-top","F");
}
if( ((fileList_[i].second).first).find("QCD")!=string::npos ) {
h1->SetFillColor(11);
leg->AddEntry(h1,"Pythia QCD","F");
}
if( ((fileList_[i].second).first).find("qqH115")!=string::npos ) {
h1->SetLineColor(kBlack);
h1->SetLineStyle(kDashed);
h1->SetLineWidth(3.0);
leg->AddEntry(h1,"VBF H(115)#rightarrow#tau#tau X 100","l");
signalScale = 100;
}
if( ((fileList_[i].second).first).find("qqH135")!=string::npos ) {
h1->SetLineColor(kBlack);
h1->SetLineStyle(kDotted);
h1->SetLineWidth(3.0);
leg->AddEntry(h1,"VBF H(135)#rightarrow#tau#tau X 100","l");
signalScale = 100;
}
int nEntries = currentTree->GetEntries() ;
std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >* diTauSVfit3;
currentTree->SetBranchAddress("diTauSVfit3P4",&diTauSVfit3);
for (int n = 0; n < nEntries ; n++) {
currentTree->GetEntry(n);
if( diTauSVfit3->size() < 1) continue;
h1->Fill( (*diTauSVfit3)[0].M() ) ;
}
h1->Scale( Lumi_ / (totalEvents/((fileList_[i].second).second * signalScale)) );
if(((fileList_[i].second).first).find("qqH115")!=string::npos){
hqqH115=(TH1F*)h1->Clone("hqqH115");
hqqH115 = h1;
hqqH115->Sumw2();
continue;
}
if(((fileList_[i].second).first).find("qqH135")!=string::npos){
hqqH135=(TH1F*)h1->Clone("hqqH135");
hqqH135 = h1;
hqqH135->Sumw2();
continue;
}
if(i==0) hSiml=(TH1F*)h1->Clone("hSiml");
else hSiml->Add(h1);
aStack->Add(h1);
}
//float numData = hData->GetEntries();
//float numSiml = hSiml->Integral();
//float dataToSimlRatio = numData/numSiml;
//cout << "data " << numData << " --- simul " << numSiml << endl;
aStack->Draw("HIST");
hqqH115->Draw("HISTSAME");
hqqH135->Draw("HISTSAME");
TH1F* hStack = (TH1F*)aStack->GetHistogram();
hStack->SetXTitle("SVfit #tau#tau mass");
hStack->SetYTitle(Form("Number of events/%.0f GeV",hStack->GetBinWidth(1)));
hStack->SetTitleSize(0.05,"X");
hStack->SetTitleSize(0.05,"Y");
hStack->SetTitleOffset(0.75,"Y");
leg->Draw();
pad2->cd();
TH1F* hRatio = new TH1F("hRatio", " ; ; purity",
hStack->GetNbinsX(),
hStack->GetXaxis()->GetXmin(), hStack->GetXaxis()->GetXmax());
hRatio->SetLineStyle(kDashed);
hRatio->SetLineWidth(1.0);
hRatio->SetLabelSize(0.12,"X");
hRatio->SetLabelSize(0.10,"Y");
hRatio->SetTitleSize(0.12,"Y");
hRatio->SetTitleOffset(0.36,"Y");
TH1F* hqqH115Clone = (TH1F*)hqqH115->Clone("hqqH115Clone");
TH1F* hqqH135Clone = (TH1F*)hqqH135->Clone("hqqH135Clone");
hqqH115Clone->Divide( hqqH115 ,hSiml,1./signalScale,1.0);
hqqH135Clone->Divide( hqqH135 ,hSiml,1./signalScale,1.0);
hRatio->SetAxisRange(0.,0.001,"Y");
hRatio->Draw();
hqqH115Clone->Draw("HISTSAME");
hqqH135Clone->Draw("HISTSAME");
if(SAVE) c1->SaveAs("Zmm_InclusiveMass.png");
}
示例8: plot
void plot(){
typedef std::map<double, ROOT::Math::XYZTVector , User::moreStruct>::iterator CImap;
TFile* file = new TFile("./vbfTree.root","READ");
TCanvas *c1 = new TCanvas("c1Mass","",5,30,650,600);
c1->SetGrid(0,0);
c1->SetFillStyle(4000);
c1->SetFillColor(10);
c1->SetTicky();
c1->SetObjectStat(0);
c1->SetLogy(1);
TPad* pad1 = new TPad("pad1","",0.05,0.27,0.96,0.97);
TPad* pad2 = new TPad("pad2","",0.05,0.02,0.96,0.26);
pad1->SetFillColor(0);
pad2->SetFillColor(0);
pad1->Draw();
pad2->Draw();
pad1->cd();
pad1->SetLogy(1);
TLegend* leg = new TLegend(0.55,0.45,0.85,0.75,NULL,"brNDC");
leg->SetFillStyle(0);
leg->SetBorderSize(0);
leg->SetFillColor(10);
leg->SetTextSize(0.04);
leg->SetHeader("#splitline{POWHEG+PYTHIA qqH(115)#rightarrow#tau#tau}{jets matched to tag partons}");
TTree* currentTree = (TTree*)file->Get("vbfJetAnalyzer/tree");
int nEntries = currentTree->GetEntries() ;
TH1F* h_TagMult = new TH1F("h_TagMult"," ; multiplicity ; a.u. ", 6,-0.5,5.5);
TH1F* h_ptTag1 = new TH1F("h_ptTag1","; p_{T} (GeV/c); a.u. ", 60,0,300);
TH1F* h_ptTag2 = new TH1F("h_ptTag2","; p_{T} (GeV/c); a.u. ", 60,0,300);
TH1F* h_ptTag3 = new TH1F("h_ptTag3","; p_{T} (GeV/c); a.u. ", 60,0,300);
std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >* jets;
std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >* tagjets;
currentTree->SetBranchAddress("jetsP4", &jets);
currentTree->SetBranchAddress("tagjetsP4",&tagjets);
for (int n = 0; n < nEntries ; n++) {
currentTree->GetEntry(n);
std::map<double, ROOT::Math::XYZTVector , User::moreStruct> sortedTagJets;
for(unsigned int i = 0; i < tagjets->size(); i++){
sortedTagJets.insert( make_pair( (*tagjets)[i].Et(),(*tagjets)[i] ) ) ;
}
std::map<double, ROOT::Math::XYZTVector , User::moreStruct> sortedJets;
for(unsigned int i = 0; i < jets->size(); i++){
sortedJets.insert( make_pair( (*jets)[i].Et(),(*jets)[i] ) ) ;
}
h_TagMult->Fill(tagjets->size());
int counter=0;
for(CImap it = sortedTagJets.begin();
it!=sortedTagJets.end(); it++){
if( counter==0 ) h_ptTag1->Fill( (it->second).Et() );
if( counter==1 ) h_ptTag2->Fill( (it->second).Et() );
if( counter==2 ) h_ptTag3->Fill( (it->second).Et() );
counter++;
}
}
h_ptTag1->SetLineColor(kRed);
h_ptTag1->SetLineStyle(kSolid);
h_ptTag2->SetLineColor(kBlue);
h_ptTag2->SetLineStyle(kDashed);
h_ptTag2->SetLineColor(kMagenta);
h_ptTag2->SetLineStyle(kDotted);
cout << "1st jet " << h_ptTag1->GetEntries() << endl;
cout << "2nd jet " << h_ptTag2->GetEntries() << endl;
cout << "3rd jet " << h_ptTag3->GetEntries() << endl;
h_ptTag3->Draw("HISTS");
h_ptTag1->Draw("HISTSAME");
h_ptTag2->Draw("HISTSAME");
leg->AddEntry(h_ptTag1,"1st largest-p_{T} jet","L");
leg->AddEntry(h_ptTag2,"2nd largest-p_{T} jet","L");
leg->AddEntry(h_ptTag3,"3rd largest-p_{T} jet","L");
leg->Draw();
pad2->cd();
TH1F* hLow = (TH1F*)h_TagMult->Clone();
hLow->SetLabelSize(0.12,"X");
hLow->SetLabelSize(0.10,"Y");
hLow->SetTitleSize(0.12,"Y");
hLow->SetTitleSize(0.12,"X");
hLow->SetTitleOffset(0.36,"Y");
//.........这里部分代码省略.........
示例9: main
//.........这里部分代码省略.........
// if ((i!=51)&&(i<=65)/*||(i!=15)||(i!=63)||(i!=62)*/) c1->SetLogy();
TPad *pad1 = new TPad("pad1","pad1", 0, 0.3, 1, 1.0);
pad1->SetBottomMargin(0); // Upper and lower plot are joined
// if ((i!=51)&&(i<=65)/*&&(i!=15)&&(i!=63)&&(i!=62)*/) pad1->SetLogy();
pad1->SetBottomMargin(.03);
pad1->SetTopMargin(0.06);
pad1->SetTicks(1,1);
pad1->Draw(); // Draw the upper pad: pad1
pad1->cd();
Double_t xmin = signal_histos[i]->GetBinCenter(0);
Double_t xmax = signal_histos[i]->GetBinCenter(signal_histos[i]->GetNbinsX())*1.02;
// if (i==70) {xmin=-2.;xmax=0.5;}
// if (i==68) {xmin=0.;xmax=0.6;}
if (i==66) {xmin=0.;xmax=400;}
TH1F *frame = new TH1F("frame","",1,xmin,xmax);
frame->SetMinimum(1e-4);
frame->SetMaximum(1e18);
// if ((i==51)||(i>65)/*||(i==15)||(i==63)||(i==62)*/) {
frame->SetMinimum(0.);
frame->SetMaximum((hBkgVis[i]->GetMaximum())*1.7);
// if (set_type==1) frame->SetMaximum((hBkgVis[i]->GetMaximum())*1.7);
// }
if ((i>67)/*||(i==15)||(i==63)||(i==62)*/) {
frame->SetMaximum(data_histos[i]->GetBinContent(9)*5);
if (set_type==1) frame->SetMaximum(hBkgVis[i]->GetBinContent(9)*5);
}
frame->GetYaxis()->SetTitleOffset(0.9);
frame->GetXaxis()->SetTitleOffset(0.91);
frame->SetStats(0);
frame->GetXaxis()->SetNdivisions(0);
frame->SetTitleFont(42,"x");
frame->SetTitleFont(42,"y");
frame->SetTitleSize(0.06, "XYZ");
// frame->SetXTitle(signal_histos[i]->GetXaxis()->GetTitle());
if ((i<4))frame->SetYTitle("Events / 20 GeV");else
if (i==37)frame->SetYTitle("Events / 20 GeV");else
if (i==41)frame->SetYTitle("Events / 20 GeV");else
if ((i>=4) && (i<8)) frame->SetYTitle("Events / 0.5");else
if (i==15) frame->SetYTitle("Events / 5 GeV");else
if ((i>=8) && (i<12)) frame->SetYTitle("Events / 0.2");else
if (i==40) frame->SetYTitle("Events / 100 GeV");else
if ((i==10)||(i==12)||(i==16)||(i==17)||(i==18) || (i==20) || (i==25) || (i==26) || (i==27) || (i==35) || (i==36) ||(i==38) || (i==39)) frame->SetYTitle("Events / 10 GeV"); else
if ((i==13)||(i==14)) frame->SetYTitle("Events / 0.1"); else
if ((i==21)||(i==22)) frame->SetYTitle("Events / 0.05"); else
if ((i==23)||(i==24)) frame->SetYTitle("Events / 0.01"); else
if (i==28) frame->SetYTitle("Events / 0.02"); else
if ((i==29) || (i==30) || (i==31) || (i==32) )frame->SetYTitle("Events / 0.1");else
if ((i==33) || (i==33))frame->SetYTitle("Events / 0.01");
else frame->SetYTitle("Events");
frame->Draw();
//tex_k->Draw();
// stacks[i]->Scale(TSF[set_type]);
// stacks[i]->Scale(kfactors[set_type]);
// leg2->Draw("same");
stacks[i]->Draw("same");
tex->Draw();
tex1->Draw();
tex2->Draw();
tex_file->Draw();
leg->Draw("same");
// signal_histos[i]->Draw("same");
// tthbb_histos[i]->Draw("same");
// tthnbb_histos[i]->Draw("same");
/////////////////cross check of stupid THStack//////
示例10: plotMuTau
//.........这里部分代码省略.........
hTTb->SetFillColor(kMagenta);
}
if( (it->first).find("SS")!=string::npos ) {
hQCD->Add(h1,1.0);
hQCD->SetFillColor(42);
}
if((it->first).find("qqH115")!=string::npos){
hSgn1->Add(h1,1.0);
hSgn1->Scale(magnifySgn_);
h1->Scale(magnifySgn_);
hSgn1->SetLineWidth(2);
h1->SetFillColor(kBlack);
h1->SetFillStyle(3004);
h1->SetLineColor(kBlack);
}
if((it->first).find("ggH115")!=string::npos){
hSgn2->Add(h1,1.0);
hSgn2->Scale(magnifySgn_);
h1->Scale(magnifySgn_);
hSgn2->SetLineWidth(2);
h1->SetFillColor(kBlack);
h1->SetFillStyle(3005);
h1->SetLineColor(kBlack);
}
if((it->first).find("Data")!=string::npos){
hData->Add(h1,1.0);
hData->Sumw2();
hData->SetMarkerStyle(20);
hData->SetMarkerSize(1.2);
hData->SetMarkerColor(kBlack);
hData->SetLineColor(kBlack);
hData->SetXTitle(XTitle_+" ("+Unities_+")");
hData->SetYTitle(Form(" Events/(%.1f %s)", hData->GetBinWidth(1), Unities_.Data() ) );
hData->SetTitleSize(0.04,"X");
hData->SetTitleSize(0.05,"Y");
hData->SetTitleOffset(0.95,"Y");
}
// adding alltogether
hSiml->Add(h1,1.0);
if(VERBOSE) cout<<(it->first) << " ==> "
<< h1->Integral() << " +/- "
<< TMath::Sqrt(h1->GetEntries())*(h1->Integral()/h1->GetEntries())
<< endl;
}
// all signal summed together:
hSgn->Add(hSgn1,hSgn2,1,1);
hSgn->SetFillColor(kRed);
hSgn->SetLineWidth(2);
//Adding to the stack
aStack->Add(hQCD);
aStack->Add(hEWK);
aStack->Add(hTTb);
aStack->Add(hZtt);
aStack->Add(hSgn);
// legend
leg->AddEntry(hData,"Observed","P");
leg->AddEntry(hSgn,Form("(%.0fx) H#rightarrow#tau#tau m_{H}=%d",magnifySgn_,mH_),"F");
leg->AddEntry(hZtt,"Z#rightarrow#tau#tau","F");
leg->AddEntry(hTTb,"t#bar{t}","F");
leg->AddEntry(hEWK,"Electroweak","F");
leg->AddEntry(hQCD,"QCD","F");
示例11: plotPhotonType
void plotPhotonType(char* var="(ecalRecHitSumEtConeDR04+hcalTowerSumEtConeDR04):genCalIsoDR04")
{
TCut allCut = simpleCut + hardScatterCut;
TProfile *hTemplate;
TProfile *htmp= new TProfile("htmp","",100,0,20);
htmp->SetXTitle("genCalIso [GeV]");
htmp->SetYTitle("recCalIso [GeV]");
hTemplate= getPlot(htmp,var,allCut,"MPA_PhotonJetPt15_31X.root","Analysis");
hTemplate->SetName("hTemplate");
hTemplate->Draw();
gStyle->SetOptFit(11111);
hTemplate->Fit("pol1","","");
TF1* f1 = hTemplate->GetFunction("pol1");
float p0 = f1->GetParameter(0);
float p1 = f1->GetParameter(1);
char tempName[1000];
sprintf(tempName,
"((ecalRecHitSumEtConeDR04+hcalTowerSumEtConeDR04)-genCalIsoDR04*%f):((ecalRecHitSumEtConeDR04+hcalTowerSumEtConeDR04)-genCalIsoDR04*(%f))",p1,-1.0/p1);
cout << tempName << endl;
TProfile *hTemplate_decompos;
const int nbin=50;
const float min = 0.0;
const float max = 10.0;
TProfile *htmp2= new TProfile("htmp2","",nbin,min,max);
hTemplate_decompos= getPlot(htmp2,tempName,allCut,"MPA_PhotonJetPt15_31X.root","Analysis");
hTemplate_decompos->SetName("hTemplate_decompos");
hTemplate_decompos->Draw();
hTemplate_decompos->SetYTitle(Form("recCalIso-genCalIso*%.2f",p1));
hTemplate_decompos->SetXTitle(Form("recCalIso+genCalIso*%.2f",1.0/p1));
gStyle->SetOptFit(11111);
// hTemplate_decompos->Fit("pol1");
TCanvas* c1 = new TCanvas("c1","",500,1000);
c1->Divide(1,2);
c1->cd(1);
hTemplate->Draw("");
c1->cd(2);
hTemplate_decompos->SetErrorOption("S");
hTemplate_decompos->Draw("");
c1->Print("bestGenCalIsoDR04.eps");
c1->Print("bestGenCalIsoDR04.gif");
TCanvas* c2 = new TCanvas("c2","",500,1000);
c2->Divide(1,2);
c2->cd(1);
TH1F* hMean = new TH1F("hMean","",nbin,min,max);
hMean->SetXTitle(Form("recCalIso+genCalIso*%.2f",1.0/p1));
hMean->SetTitleSize(0.06,"Y");
hMean->SetTitleOffset(1.2,"Y");
hMean->SetYTitle(Form("Mean of recCalIso-genCalIso*%.2f",p1));
for(int i=1; i <= nbin; i++)
hMean->SetBinContent(i,hTemplate_decompos->GetBinContent(i));
hMean->Draw();
c2->cd(2);
TH1F* hRMS = new TH1F("hRMS","",nbin,min,max);
hRMS->SetXTitle(Form("recCalIso+genCalIso*%.2f",1.0/p1));
hRMS->SetTitleSize(0.06,"Y");
hRMS->SetTitleOffset(1.2,"Y");
hRMS->SetYTitle(Form("RMS of recCalIso-genCalIso*%.2f",p1));
for(int i=1; i <= nbin; i++)
hRMS->SetBinContent(i,hTemplate_decompos->GetBinError(i));
hRMS->Draw();
c2->Print("bestGenCalIsoDR04_sup.eps");
c2->Print("bestGenCalIsoDR04_sup.gif");
int bestDeComposXBin = 11;
float bestDeComposX = hMean->GetBinCenter(bestDeComposXBin);
float bestDeComposY = hMean->GetBinContent(bestDeComposXBin);
cout << "bestDeComposX = " << bestDeComposX << endl;
cout << "bestDeComposY = " << bestDeComposY << endl;
float bestGenIso = (bestDeComposX - bestDeComposY)/((1.0)/p1 + p1);
float bestRecIso = bestDeComposX - (1.0/p1) * bestGenIso;
cout << "bestGenIso = " << bestGenIso << endl;
cout << "bestRecIso = " << bestRecIso << endl;
}
示例12: analyzer_stack
//.........这里部分代码省略.........
else out_efficiency<<leg_names[files]<<"&\t "<<histos[4]->Integral()*1000. <<"&\t"<< histos[4]->Integral()/xsec[files] <<endl;
if (files==nfiles-1) out_efficiency<<"Total BG"<<"&\t \t \t "<<totalBG*1000.<< endl;
files++;
} while (files<nfiles);
out_efficiency.close();
for (int d=0; d<nhistos; d++) {
discriminators[d] = Discr(discr_histos[d],signal_histos[d]);
}
bubblesort(discriminators, hist_names_sort,nhistos);
out_discrimination.open(trigger+dir_name+"discrimination.txt");
for (int d=0; d<nhistos; d++) {
if (d==0) out_discrimination<<"Variable &\t d"<<endl;
out_discrimination<<"$"<<hist_names_sort[d]<<"$"<<" & \t "<< std::setprecision(2)<< discriminators[d]<<endl;
}
out_discrimination.close();
TLatex* tex = new TLatex(0.90,0.92,"13 TeV, PU = 20, bx = 25 ns, 1 pb^{-1}");
tex->SetNDC();
tex->SetTextAlign(35);
tex->SetTextFont(42);
tex->SetTextSize(0.04);
tex->SetLineWidth(2);
TLatex *tex1 = new TLatex(0.13,0.83,"CMS");
tex1->SetNDC();
tex1->SetTextAlign(20);
tex1->SetTextFont(61);
tex1->SetTextSize(0.06);
tex1->SetLineWidth(2);
TLatex* tex2 = new TLatex(0.22,0.77,"Work in progress");
tex2->SetNDC();
tex2->SetTextAlign(20);
tex2->SetTextFont(52);
tex2->SetTextSize(0.04);
tex2->SetLineWidth(2);
TLatex* tex_file = new TLatex(0.35,0.92,"Spring15, DoubleBtag");
// TLatex* tex_file = new TLatex(0.35,0.92,"Spring15, SingleBtag");
tex_file->SetNDC();
tex_file->SetTextAlign(35);
tex_file->SetTextFont(42);
tex_file->SetTextSize(0.04);
tex_file->SetLineWidth(2);
for (int i=0; i<nhistos; i++) {
TString temp_str;
temp_str.Form("%2.2f",Discr(discr_histos[i],signal_histos[i]));
TString disc_value = temp_str.Prepend(", d = ");
TLatex *disc_value_text = new TLatex(0.86,0.853,disc_value);
disc_value_text->SetNDC();
disc_value_text->SetTextAlign(35);
disc_value_text->SetTextFont(42);
disc_value_text->SetTextSize(0.04);
disc_value_text->SetLineWidth(2);
TCanvas *c1 = new TCanvas();
c1->SetBottomMargin(.12);
c1->cd();
c1->SetLogy();
Double_t xmin = signal_histos[i]->GetBinCenter(0);
Double_t xmax = signal_histos[i]->GetBinCenter(signal_histos[i]->GetNbinsX());
TH1F *frame = new TH1F("frame","",1,xmin,xmax);
frame->SetMinimum(1e-4);
frame->SetMaximum(1e10);
frame->GetYaxis()->SetTitleOffset(0.9);
frame->GetXaxis()->SetTitleOffset(0.91);
frame->SetStats(0);
frame->SetTitleFont(42,"x");
frame->SetTitleFont(42,"y");
frame->SetTitleSize(0.05, "XYZ");
frame->SetXTitle(signal_histos[i]->GetXaxis()->GetTitle());
if ((i<4))frame->SetYTitle("Events / 20 GeV");
else if (i==37)frame->SetYTitle("Events / 20 GeV");
else if (i==41)frame->SetYTitle("Events / 20 GeV");
else if ((i>=4) && (i<8)) frame->SetYTitle("Events / 0.5");
else if (i==15) frame->SetYTitle("Events / 0.5");
else if ((i>=8) && (i<12)) frame->SetYTitle("Events / 0.2");
else if (i==40) frame->SetYTitle("Events / 100 GeV");
else if ((i==10)||(i==12)||(i==16)||(i==17)||(i==18) || (i==20) || (i==25) || (i==26) || (i==27) || (i==35) || (i==36) ||(i==38) || (i==39)) frame->SetYTitle("Events / 10 GeV");
else if ((i==13)||(i==14)) frame->SetYTitle("Events / 0.1");
else if ((i==21)||(i==22)) frame->SetYTitle("Events / 0.05");
else if ((i==23)||(i==24)) frame->SetYTitle("Events / 0.01");
else if (i==28) frame->SetYTitle("Events / 0.02");
else if ((i==29) || (i==30) || (i==31) || (i==32) )frame->SetYTitle("Events / 0.1");
else if ((i==33) || (i==33))frame->SetYTitle("Events / 0.01");
else frame->SetYTitle("Events");
frame->Draw();
tex->Draw();
tex1->Draw();
tex2->Draw();
tex_file->Draw();
stacks[i]->Draw("nostacksame");
leg->Draw("same");
signal_histos[i]->Draw("same");
disc_value_text->Draw();
c1->Print(output_names[i]);
c1->Delete();
}
}
示例13: fakeStudyMu
//.........这里部分代码省略.........
if( (it->first).find("Ztautau")!=string::npos ) {
h1->SetFillColor(kRed);
leg->AddEntry(h1,"Z+jets, genuine-#tau","F");
}
if( (it->first).find("TTbar")!=string::npos ) {
h1->SetFillColor(kBlue);
leg->AddEntry(h1,"t#bar{t}+jets","F");
}
if( (it->first).find("SingleTop")!=string::npos ) {
h1->SetFillColor(29);
leg->AddEntry(h1,"single-t","F");
}
if( (it->first).find("Wjets")!=string::npos ) {
h1->SetFillColor(kGreen);
leg->AddEntry(h1,"W+jets","F");
}
if( (it->first).find("DiBoson")!=string::npos ) {
h1->SetFillColor(38);
leg->AddEntry(h1,"Di-Boson","F");
}
if( (it->first).find("QCD")!=string::npos ) {
h1->SetFillColor(42);
leg->AddEntry(h1,"QCD-multijets","F");
}
if((it->first).find("qqH115")!=string::npos){
hSgn1 = (TH1F*)h1->Clone("hSgn1");
hSgn1->Scale(magnifySgn_);
hSgn1->SetLineWidth(2);
h1->SetFillColor(kBlack);
h1->SetFillStyle(3004);
h1->SetLineColor(kBlack);
leg->AddEntry(h1,Form("VBF H(115) X %.0f",magnifySgn_),"F");
}
if((it->first).find("ggH115")!=string::npos){
hSgn2 = (TH1F*)h1->Clone("hSgn2");
hSgn2->Scale(magnifySgn_);
hSgn2->SetLineWidth(2);
h1->SetFillColor(kBlack);
h1->SetFillStyle(3005);
h1->SetLineColor(kBlack);
leg->AddEntry(h1,Form("GGF H(115) X %.0f",magnifySgn_),"F");
}
if((it->first).find("Data")!=string::npos){
hData = (TH1F*)h1->Clone("hData");
hData->Sumw2();
hData->SetMarkerStyle(20);
hData->SetMarkerSize(1.2);
hData->SetMarkerColor(kBlack);
hData->SetLineColor(kBlack);
hData->SetXTitle(XTitle_+" ("+Unities_+")");
hData->SetYTitle(Form(" Events/(%.0f %s)", hData->GetBinWidth(1), Unities_.Data() ) );
hData->SetTitleSize(0.04,"X");
hData->SetTitleSize(0.05,"Y");
hData->SetTitleOffset(0.95,"Y");
leg->AddEntry(hData,"DATA","P");
}
if(iter==0) hSiml=(TH1F*)h1->Clone("hSiml");
else if((it->first).find("Data")==string::npos) hSiml->Add(h1);
if((it->first).find("Data")==string::npos) aStack->Add(h1);
if(VERBOSE) cout<<(it->first) << " ==> "
<< h1->Integral() << " +/- "
<< TMath::Sqrt(h1->GetEntries())*(h1->Integral()/h1->GetEntries())
<< endl;
}
// all signal summed together:
hSgn = (TH1F*)hSgn1->Clone("hSgn");
hSgn->Add(hSgn1,hSgn2,1,1);
if(VERBOSE) cout<< "S/sqrt(B) ==> "
<< hSgn->Integral()/ TMath::Sqrt(hSiml->Integral()) << " +/- "
<< (1./2)*TMath::Sqrt(hSiml->GetEntries())*(hSiml->GetSumOfWeights())/hSiml->Integral()*( hSgn->Integral()/ TMath::Sqrt(hSiml->Integral()) )
<< endl;
hData->SetXTitle(XTitle_+" ("+Unities_+")");
hData->SetYTitle(Form(" Events/(%.1f %s)", hData->GetBinWidth(1), Unities_.Data() ) );
hData->SetTitleSize(0.04,"X");
hData->SetTitleSize(0.05,"Y");
hData->SetTitleOffset(0.95,"Y");
hData->Draw("P");
aStack->Draw("HISTSAME");
hData->Draw("PSAME");
//hSgn1->Draw("HISTSAME");
//hSgn2->Draw("HISTSAME");
TH1F* hStack = (TH1F*)aStack->GetHistogram();
hStack->SetXTitle(XTitle_+" ("+Unities_+")");
hStack->SetYTitle(Form(" Events/(%.0f %s)", hStack->GetBinWidth(1), Unities_.Data() ) );
hStack->SetTitleSize(0.04,"X");
hStack->SetTitleSize(0.05,"Y");
hStack->SetTitleOffset(0.95,"Y");
//aStack->GetYaxis()->SetRangeUser(0.0,std::max(hData->GetMaximum(),hStack->GetMaximum())*1.1);
leg->Draw();
}
示例14: compareplots
//.........这里部分代码省略.........
for(size_t i=0;i<histos.size();i++){
if(i == 0){
histos.at(i)->SetLineColor(kBlack);
}
if(i == 1){
histos.at(i)->SetLineColor(kRed);
}
if(i == 2){
histos.at(i)->SetLineColor(kBlue);
}
if(i == 3){
histos.at(i)->SetLineColor(kGreen+2);
}
if(i == 4){
histos.at(i)->SetLineColor(kMagenta-7);
}
if(i == 5){
histos.at(i)->SetLineColor(kOrange+7);
}
}
for(size_t i=0;i<histos.size();i++){
histos.at(i)->Sumw2();
histos.at(i)->Scale(1./histos.at(i)->Integral(),"width");
}
// Set axis title
histos.at(0)->GetYaxis()->SetTitle("Normalized units");
std::string const histogramName = histos.at(0)->GetName();
histos.at(0)->GetXaxis()->SetLabelSize(0.06);
histos.at(0)->GetXaxis()->SetLabelOffset(0.006);
histos.at(0)->GetYaxis()->SetLabelSize(0.06);
histos.at(0)->GetYaxis()->SetLabelOffset(0.006);
histos.at(0)->GetXaxis()->SetTitleSize(0.06);
histos.at(0)->GetXaxis()->SetTitleOffset(1.1);
histos.at(0)->GetYaxis()->SetTitleSize(0.06);
histos.at(0)->GetYaxis()->SetTitleOffset(1.08);
histos.at(0)->GetXaxis()->SetTitle(titles.at(run));
run = run+1;
if(run == (3*8)){
run = 0;
}
// If only two histograms per plot make a ratio plot
if(histos.size() == 2)
{
//create main pad
TPad *mainPad = new TPad("","",0.0,0.3,1.0,1.0);
mainPad->SetNumber(1);
mainPad->SetBottomMargin(0.0);
mainPad->SetRightMargin(0.04);
mainPad->SetLeftMargin(0.13);
mainPad->Draw();
//create ratio pad
TPad *ratioPad = new TPad("","",0.0,0.0,1.0,0.3);
ratioPad->SetTopMargin(0.0);
ratioPad->SetBottomMargin(0.4);
ratioPad->SetLeftMargin(0.13);
ratioPad->SetRightMargin(0.04);
gStyle->SetOptTitle(0);
ratioPad->SetFillColor(0);