本文整理汇总了C++中TH1F::SetLabelSize方法的典型用法代码示例。如果您正苦于以下问题:C++ TH1F::SetLabelSize方法的具体用法?C++ TH1F::SetLabelSize怎么用?C++ TH1F::SetLabelSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH1F
的用法示例。
在下文中一共展示了TH1F::SetLabelSize方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
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;
}
示例2: bookHist
TH1F* bookHist(const char* hname, const char* htitle, int nBinsMET, int nBinsHT, int sampleIndex ) {
int nbins = nBinsMET*(nBinsHT+1) + 1 ;
TH1F* retVal = new TH1F( hname, htitle, nbins, 0.5+0.05*(sampleIndex-5), nbins+0.5+0.05*(sampleIndex-5) ) ;
TAxis* xaxis = retVal->GetXaxis() ;
for ( int mbi=0; mbi<nBinsMET; mbi++ ) {
for ( int hbi=0; hbi<nBinsHT; hbi++ ) {
int histbin = 1 + (nBinsHT+1)*mbi + hbi + 1 ;
char binlabel[1000] ;
sprintf( binlabel, "M%d_H%d", mbi+1, hbi+1 ) ;
xaxis->SetBinLabel( histbin, binlabel ) ;
} // hbi.
} // mbi.
retVal->SetLabelSize(0.055,"x") ;
xaxis->LabelsOption("v") ;
return retVal ;
}
示例3: bookHist
TH1F* bookHist(const char* hname, const char* htitle, const char* selstring, int nbjet, int nBinsMET, int nBinsHT ) {
int nbins = nBinsMET*(nBinsHT+1) + 1 ;
TH1F* retVal = new TH1F( hname, htitle, nbins, 0.5 + 0.1*(nbjet-2), nbins+0.5 + 0.1*(nbjet-2) ) ;
TAxis* xaxis = retVal->GetXaxis() ;
for ( int mbi=0; mbi<nBinsMET; mbi++ ) {
for ( int hbi=0; hbi<nBinsHT; hbi++ ) {
int histbin = 1 + (nBinsHT+1)*mbi + hbi + 1 ;
char binlabel[1000] ;
sprintf( binlabel, "%s_M%d_H%d_%db", selstring, mbi+1, hbi+1, nbjet ) ;
xaxis->SetBinLabel( histbin, binlabel ) ;
} // hbi.
} // mbi.
retVal->SetLabelSize(0.055,"x") ;
xaxis->LabelsOption("v") ;
return retVal ;
}
示例4: StringFloat
void StringFloat(){
gROOT->Reset();
gStyle->SetOptStat(1111111);
ifstream data;
float value;
// string name = "L1Eff"; //name withtout .txt
string name = "JustRPCMon7TeV";
data.open((name+".txt").c_str());
string label;
float eff;
TH1F * histo = new TH1F("histo",name.c_str(),66,0.5,66.5);
int bin = 0;
while(!data.eof() && bin<66){
bin++;
data >>label>>eff;
cout<<label<<" "<<eff<<endl;
histo->GetXaxis()->SetBinLabel(bin,label.c_str());
histo->SetBinContent(bin,eff);
}
TCanvas * Ca0 = new TCanvas("Ca0","Canvas",1200,800);
// Ca0->SetBottomMargin(0.4);
histo->Draw();
// histo->SetMaximum(100000.);
// histo->SetMinimum(0.);
histo->GetXaxis()->LabelsOption("v");
histo->GetYaxis()->SetTitle("Events/run");
histo->SetLabelSize(0.03);
Ca0->SetLogy();
Ca0->SaveAs((name+".png").c_str());
}
示例5: 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");
}
示例6: 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";
//.........这里部分代码省略.........
示例7: 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");
}
示例8: 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");
}
示例9: 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");
//.........这里部分代码省略.........
示例10: compareplots
//.........这里部分代码省略.........
for(size_t i=1;i<files.size();i++){
histos.push_back((TH1F*)files.at(i)->Get(histos.at(0)->GetName()));
}
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);