本文整理汇总了C++中TH1D::GetXaxis方法的典型用法代码示例。如果您正苦于以下问题:C++ TH1D::GetXaxis方法的具体用法?C++ TH1D::GetXaxis怎么用?C++ TH1D::GetXaxis使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TH1D
的用法示例。
在下文中一共展示了TH1D::GetXaxis方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: vertex_distribution_dataMC
void vertex_distribution_dataMC() {
bool print = false;
TFile *file0 = TFile::Open("results/RecoRoutines_W-selection_WJetsMGZ238PU.root");
TFile *file1 = TFile::Open("results/RecoRoutines_W-selection_dataskimnov4rereco_newJetColl.root");
TCanvas * canvas = makeCanvas("vertexDistribution_dataMC");
TH1D * mc = (TH1D*)file0->Get("RECO_PolPlots_50toinf/RECO_NumVerticesPerEvent");
TH1D * data = (TH1D*)file1->Get("RECO_PolPlots_50toinf/RECO_NumVerticesPerEvent");
mc->GetXaxis()->SetTitle("Vertex Multiplicity");
mc->GetXaxis()->SetTitleSize(0.06);
mc->GetXaxis()->SetLabelOffset(0.015);
mc->GetXaxis()->SetTitleOffset(1.2);
mc->GetXaxis()->SetRangeUser(0,10);
mc->GetYaxis()->SetRangeUser(0,0.35);
mc->GetYaxis()->SetTitle("Normalised");
mc->GetYaxis()->SetTitleSize(0.06);
mc->GetYaxis()->SetTitleOffset(0.85);
mc->SetLineColor(kRed);
data->SetLineColor(kBlack);
mc->SetLineWidth(4);
mc->SetLineStyle(2);
data->SetLineWidth(4);
data->SetLineStyle(1);
leg = new TLegend(0.6426174,0.8074324,0.9010067,0.9273649,NULL,"brNDC");
leg->AddEntry(mc,"MC","l");
leg->AddEntry(data,"Data","l");
leg->SetFillColor(kWhite);
leg->SetBorderSize(0);
leg->SetTextFont(62);
canvas->cd();
mc->DrawNormalized("h");
data->DrawNormalized("sameh");
leg->DrawClone();
if(print) {
canvas->Write();
}
file1->Close();
file0->Close();
return;
}
示例2: plotgvsr
void plotgvsr(){
gStyle->SetOptStat(kFALSE);
TCanvas *c1 = new TCanvas();
c1->SetLogy();
TH1D* hFrame = new TH1D("","",1000,0,1);
hFrame->GetYaxis()->SetRangeUser(1e-10,1e-2);
hFrame->GetXaxis()->SetRangeUser(0.06,0.35);
hFrame->GetXaxis()->SetTitle("r");
hFrame->GetYaxis()->SetTitle("|G^{#theta}(ir)|^{2}");
hFrame->SetTitle("");
hFrame->Draw();
TGraph *gr[nnu];
double r0_theta[nnu];
double G2_theta[nnu];
TLine *l[nnu];
for(int itheta=0;itheta<nnu;itheta++){
gr[itheta]=plotGF(isSum,plotnu[itheta],r0_theta+itheta,G2_theta+itheta,marker[itheta],color[itheta]);
gr[itheta]->Draw("Psame");
}
TLegend *tg = new TLegend(0.75,0.70-0.10*nnu,0.90,0.70);
tg->SetFillColor(0);
tg->SetBorderSize(0);
tg->SetTextSize(0.04);
for(int itheta=0;itheta<nnu;itheta++)
tg->AddEntry(gr[itheta],Form("#theta = #frac{%d}{%d}*#frac{#pi}{%d}",plotnu[itheta],ntheta,nn),"lp");
tg->Draw("same");
TLatex *t= new TLatex();
t->SetNDC();
t->SetTextSize(0.04);
t->SetTextFont(42);
t->DrawLatex(0.3,0.7,Form("PF candidiate, %d < mult <%d, %.1f < p_{T} < %.1f", trkbin[xbin+1],trkbin[xbin],ptmin,ptmax));
if(isSum)
t->DrawLatex(0.5,0.6,Form("LYZ Sum method"));
else
t->DrawLatex(0.5,0.6,Form("LYZ Prod method"));
for(int itheta=0;itheta<nnu;itheta++){
l[itheta] = new TLine(r0_theta[itheta],0,r0_theta[itheta],G2_theta[itheta]);
l[itheta]->SetLineStyle(2);
l[itheta]->SetLineColor(color[itheta]);
l[itheta]->Draw("same");
}
if(isSum)
c1->Print("gvsr_thetas_Sum.png");
else
c1->Print("gvsr_thetas_Prod.png");
}
示例3: readHist
TH1D* readHist(TString nameHist,TString nameFile, int rebin)
{
TFile* file = new TFile(nameFile);
TH1D* hist = (TH1D*)file->Get(nameHist);
hist->GetSumw2();
// hist->SetLineWidth(2);
if(rebin>0) hist->Rebin(rebin);
hist->GetXaxis()->SetTitleSize(.055);
hist->GetYaxis()->SetTitleSize(.055);
hist->GetXaxis()->SetLabelSize(.05);
hist->GetYaxis()->SetLabelSize(.05);
hist->SetStats(kFALSE);
return hist;
}
示例4: pixelHistos
void pixelHistos(const char *filenames = "/export/data1/dambach/hardware/ntpls/gradeC/*.root", const char *cuts = "defects == 0")
{
Init(); // do not forget to load the Utilities.C
TH1D *gainH = new TH1D("gainH", "Gain", 1000, 0., 10.);
TH1D *pedH = new TH1D("pedH", "Pedestal", 1000, -1000., 1000.);
TH1D *noiseH = new TH1D("noiseH", "Noise", 1100, -100., 1000.);
TH1D *tthrH = new TH1D("tthrH", "Trimmed Threshold", 100, 0., 100.);
TChain *c = new TChain("mod");
c->Add(filenames);
canvas->Clear();
canvas->Divide(2,2);
canvas->cd(1);
InitPad("log");
gainH->GetXaxis()->SetTitle("ADC units/DAC units");
gainH->GetYaxis()->SetTitle("# pixels");
gainH->GetXaxis()->SetTitleSize(0.055);
gainH->GetYaxis()->SetTitleSize(0.055);
c->Draw("gain>>gainH", cuts);
TBox *box = new TBox();
canvas->cd(2);
InitPad("log");
pedH->GetXaxis()->SetTitle("DAC units");
pedH->GetYaxis()->SetTitle("# pixels");
pedH->GetXaxis()->SetTitleSize(0.055);
pedH->GetYaxis()->SetTitleSize(0.055);
c->Draw("ped>>pedH", cuts);
canvas->cd(3);
InitPad("log");
noiseH->GetXaxis()->SetTitle("e^{-}");
noiseH->GetYaxis()->SetTitle("# pixels");
noiseH->GetYaxis()->SetRangeUser(0.1,400000);
noiseH->GetXaxis()->SetTitleSize(0.055);
noiseH->GetYaxis()->SetTitleSize(0.055);
c->Draw("noise>>noiseH", cuts);
noiseH->Fit("gaus");
// box->SetFillStyle(3003);
// box->SetFillColor(kBlue);
// box->DrawBox(0.1,0.,500.,400000.);
// box->SetFillColor(kRed);
// box->DrawBox(500.,0.,1000.,400000.);
canvas->cd(4);
tthrH->GetXaxis()->SetTitle("DAC units");
tthrH->GetYaxis()->SetTitle("# pixels");
tthrH->GetXaxis()->SetTitleSize(0.055);
tthrH->GetYaxis()->SetTitleSize(0.055);
InitPad("log");
c->Draw("tthr>>tthrH", cuts);
}
示例5: draw_bias
void plotter::draw_bias(TH1* output_, TH1D* truth_, TH1* bias_, TString file_name){
TH1D* bias = (TH1D*) bias_->Clone("bias");
TH1D* truth = (TH1D*) truth_->Clone("truth");
TH1D* output = (TH1D*) output_->Clone("output");
double ymax_temp = 0;
if(truth->GetMaximum() > ymax_temp) ymax_temp = truth->GetMaximum();
if(bias->GetMaximum() > ymax_temp) ymax_temp = bias->GetMaximum();
if(output->GetMaximum() > ymax_temp) ymax_temp = output->GetMaximum();
double ymax = 1.5 * ymax_temp;
TCanvas *c= new TCanvas("Bias Distribution","",600,600);
TGaxis::SetMaxDigits(3);
gPad->SetLeftMargin(0.15);
truth->SetTitle(file_name);
truth->GetYaxis()->SetRangeUser(0., ymax);
truth->GetXaxis()->SetTitle("Leading-jet mass [GeV]");
truth->GetYaxis()->SetTitle("events");
truth->GetYaxis()->SetTitleOffset(1.1);
truth->GetXaxis()->SetTitleOffset(0.9);
truth->GetYaxis()->SetTitleSize(0.05);
truth->GetXaxis()->SetTitleSize(0.05);
truth->GetYaxis()->SetNdivisions(505);
truth->SetLineWidth(4);
truth->SetLineColor(kRed);
bias->SetLineWidth(4);
bias->SetLineColor(kAzure+7);
output->SetLineColor(kBlack);
output->SetMarkerColor(kBlack);
output->SetMarkerStyle(8);
output->SetMarkerSize(1);
truth->Draw("HIST SAME");
bias->Draw("HIST SAME");
output->Draw("E1 SAME");
TLegend *l=new TLegend(0.55,0.6,0.85,0.85);
l->SetBorderSize(0);
l->SetFillStyle(0);
l->AddEntry(output,"unfolded result","pl");
l->AddEntry(truth,"truth","pl");
l->AddEntry(bias,"bias distribution","pl");
l->SetTextSize(0.04);
l->Draw();
gPad->RedrawAxis();
c->SaveAs(directory + file_name + ".pdf");
delete c;
}
示例6: RunTest
void RunTest(const char* name, int numentries, int BufferSize) {
char title[200];
sprintf(title, "%d events, 10 branches, 10 floats in brunch, Basket size = %d", numentries, BufferSize*sizeof(Float_t)*10);
TH1D* histoRes = new TH1D(name, title, 10, 0.5, 10.5);
histoRes->GetXaxis()->SetTitle("Number of active branches");
histoRes->GetYaxis()->SetTitle("Real time (s)");
histoRes->SetDirectory(0);
histoRes->SetStats(kFALSE);
ProduceTree("TreeFile.root","TestTree", numentries, 0, 10, 10, BufferSize);
Float_t RealTime, CpuTime;
for(int ActiveBranches=1;ActiveBranches<=10;ActiveBranches++) {
ReadDummyTree();
cout << "Buffer size = " << BufferSize*sizeof(Float_t)*10 << " ActiveBranches = " << ActiveBranches << endl;
MakeDelay(10);
TestTree("TreeFile.root","TestTree", 10, 10, ActiveBranches, &RealTime, &CpuTime);
histoRes->SetBinContent(ActiveBranches, RealTime);
}
TCanvas* c1 = new TCanvas(TString(name)+"_canvas", title);
histoRes->Draw();
c1->SaveAs(TString(name)+".gif");
}
示例7: getSimplePlot
TH1D* getSimplePlot(TString INPUTDIR_PREFIX, TString SCENARIO, TString dataMC, TString vartype, TString SCEN_TRIG, TString RR) {
TString DENOM = "_Glb_pass_&_Tight2012_pass"; //"_&_Glb_pass_&_Tight2012_pass";
if (SCENARIO == "Glb_Tight2012") DENOM = "";
else if (SCENARIO == "Glb_Tight2012_IsolPFRelCombNoEGammaR03PU_"+SCEN_TRIG) DENOM = "_Glb_pass_&_IsolPFRelCombNoEGammaR03PU_pass_&_Tight2012_pass";
else if (SCENARIO == "Glb_Tight2012_IsolPFRelCombNoEGammaR03_"+SCEN_TRIG) DENOM = "_Glb_pass_&_IsolPFRelCombNoEGammaR03_pass_&_Tight2012_pass";
TString POSTFIX = "";
if (vartype == "vtx") POSTFIX = ""; //"_vtx";
else if (vartype == "run") POSTFIX = ""; //"_rrr";
else if (vartype == "rrr2") POSTFIX = "_rrr2";
else if (vartype == "rrr3") POSTFIX = "_rrr3";
if (dataMC == "datalike_mc") {
RR = "";
} else {
RR = "_"+RR;
}
TFile *thisf = new TFile(INPUTDIR_PREFIX+"TnP_2011_MuonID_item_"+dataMC+"_"+SCENARIO+POSTFIX+"_"+vartype+RR+".root");
cout << "HERE " << INPUTDIR_PREFIX+"TnP_2011_MuonID_item_"+dataMC+"_"+SCENARIO+POSTFIX+"_"+vartype+RR+".root" << endl;
thisf->cd();
gDirectory->cd("tpTree/"+SCENARIO+"_"+vartype+"/fit_eff_plots");
cout << "tpTree/"+SCENARIO+"_"+vartype+"/fit_eff_plots" << endl;
TCanvas* c = (TCanvas*)gDirectory->Get(getFolder(vartype)+DENOM);
cout << getFolder(vartype)+DENOM << endl;
c->GetListOfPrimitives();
RooHist* hpt = (RooHist*)c->GetPrimitive("hxy_fit_eff");
TH1D* test = rooHist_to_TH1D(hpt,vartype,SCENARIO);
for (int ibin = 0; ibin < test->GetXaxis()->GetNbins();ibin++) {
cout << "AFTER " << test->GetBinContent(ibin+1) << endl;
}
return rooHist_to_TH1D(hpt,vartype,SCENARIO);
}
示例8: RunTest
void RunTest(const char* name, const char* uselesstitle, int numentries, int BufferSize) {
TString title;
title += numentries;
title.Append(" events, 10 branches, 10 floats in brunch, Basket size = ");
title += ( BufferSize*10*10*4 );
TH1D* histoRes = new TH1D(name, title, 10, 0.5, 10.5);
histoRes->GetXaxis()->SetTitle("Number of active branches");
histoRes->GetYaxis()->SetTitle("Real time (s)");
histoRes->SetDirectory(0);
histoRes->SetStats(kFALSE);
ProduceTree("TreeFile.root","TestTree", numentries, 0, 10, 10, BufferSize);
Float_t RealTime, CpuTime;
for(int ActiveBranches=1;ActiveBranches<=10;ActiveBranches++) {
PurgeMemory();
cout << "Buffer size = " << BufferSize*sizeof(Float_t)*10 << " ActiveBranches = " << ActiveBranches << endl;
MakeDelay(5);
TestTree("TreeFile.root","TestTree", 10, 10, ActiveBranches, RealTime, CpuTime);
histoRes->SetBinContent(ActiveBranches, RealTime);
}
TCanvas* c1 = new TCanvas(TString(name)+"_canvas",title);
histoRes->Draw();
c1->SaveAs(TString(name)+".gif");
}
示例9: tofQAMaker
void tofQAMaker( string file, int xRange = 10 ){
TFile * f = new TFile( file.c_str(), "READ" );
TH1D * tpc = (TH1D*)f->Get( "zvertex" );
TH1D * vpd = (TH1D*)f->Get( "zvertexVPD" );
TH1D * delta = (TH1D*)f->Get( "zvertexDelta" );
Reporter rp( "vertexQA.pdf" );
TF1* gaus = new TF1( "g", "gaus" );
gaus->SetRange( -xRange, xRange );
rp.newPage();
tpc->Draw();
rp.savePage();
rp.newPage();
vpd->Draw();
rp.savePage();
rp.newPage();
delta->GetXaxis()->SetRangeUser( -25, 25 );
gStyle->SetOptFit( 111 );
delta->Draw();
delta->Fit( gaus, "R" );
rp.savePage();
}
示例10: plotRatio
// ----------------------------------------------------------------------
void plotRatio(string era = "2016BF") {
gStyle->SetOptStat(0);
if (era == "all") {
plotRatio("2011");
plotRatio("2012");
plotRatio("2016BF");
plotRatio("2016GH");
return;
}
TH1D *hresult = new TH1D("hresult", Form("n(gauss(5.28))/n(gauss(5.37)) %s", era.c_str()), 40, 0., 0.4);
hresult->GetXaxis()->SetTitle("BDT > ");
TH1D *hbdtcut = new TH1D("hbdtcut", Form("n(gauss(5.28))/n(gauss(5.37)) %s", era.c_str()), 40, 0., 0.4);
hbdtcut->SetMarkerColor(kBlue);
invertedMuonID(era, 0.15, hresult);
invertedMuonID(era, 0.20, hresult);
invertedMuonID(era, 0.25, hresult);
invertedMuonID(era, 0.30, hresult);
invertedMuonID(era, -99., hbdtcut);
c0->Clear();
double ymax(50.);
if (hresult->GetMaximum() < 5.) ymax = 10.;
if (hresult->GetMaximum() < 0.5) ymax = 1.0;
hresult->SetMinimum(-ymax);
hresult->SetMaximum(ymax);
hresult->Draw();
hbdtcut->Draw("same");
pl->DrawLine(0., 0., 0.4, 0.);
c0->SaveAs(Form("invertedMuonID-%s-result.pdf", era.c_str()));
}
示例11: processFile
TH1* processFile(TString fname, double scaleFactor){
static int hcounter=0;
cout<<"Doing fname="<<fname<<endl;
TFile *_file2 = TFile::Open(fname);
PS->cd();
TString plot = "lLV[0].lpfIso:lLV[0].fP.Eta()";
TString hname = Form("h%i",hcounter);
jets2p->Draw(plot +" >> " + hname+"(24,-3,3,100,0,2)","","qn");
TH2D *aux = (TH2D*)gDirectory->Get(hname);
//aux->Scale(scaleFactor);
TH1D * ss = aux->ProjectionX(hname+"ss",1,10); // signal region
TH1D * ni = aux->ProjectionX(hname+"ni",16,100);// nonIso region (use 11
//cout<<"h="<<hcounter<<" ss="<<ss->GetEntries()<<" ni="<<ni->GetEntries()<<endl;
TString statis = Form("( %i / %i )",(int)ss->GetEntries(),(int)ni->GetEntries());
ss->Divide(ni);
ss->GetYaxis()->SetTitle(TString("N_{signal}/N_{nonIso}")+statis);
ss->GetXaxis()->SetTitle("#eta");
hcounter++;
return ss;
}
示例12: dmMerge
// Merge same modes
int dmMerge(TObject *a1, TObject *b1,TList *keys)
{
TDecayMode *a=(TDecayMode*)a1;
TDecayMode *b=(TDecayMode*)b1;
TIter nexthist(keys);
TKey *key_hist=0;
while(key_hist=(TKey*)nexthist())
{
int cycle=-10;
if(strcmp(key_hist->GetClassName(),"TH1D")==0)
{
TH1D *h=0;
int cycleh=key_hist->GetCycle();
if(cycleh<cycle) { cout<<"Skipping..."<<endl; continue; }
if(cycle<cycleh) cycle=cycleh;
h=(TH1D*)key_hist->ReadObj();
if(!h)
{
cout<<"Cannot read: "<<key_hist->GetName()<<endl;
exit(-2);
}
TH1D *eh = (TH1D*) a->histograms->FindObject(h->GetName());
if(!eh) continue;
if(eh->GetNbinsX()!=h->GetNbinsX() ||
eh->GetXaxis()->GetXmax()!=h->GetXaxis()->GetXmax())
return -1;
eh->Add(h);
}
}
a->SetNEntries(a->GetNEntries()+b->GetNEntries());
a->SetSumw(a->GetSumw()+b->GetSumw());
a->SetSumw2(a->GetSumw2()+b->GetSumw2());
return 0;
}
示例13: plotRatio2Comb
// ----------------------------------------------------------------------
void plotRatio2Comb(string era = "2016BF") {
gStyle->SetOptStat(0);
if (era == "all") {
plotRatio2Comb("2011");
plotRatio2Comb("2012");
plotRatio2Comb("2016BF");
plotRatio2Comb("2016GH");
return;
}
double eps(0.00001);
TH1D *hresultBd = new TH1D("hresultBd", era.c_str(), 80, 0., 0.4);
TH1D *hresultBs = new TH1D("hresultBs", era.c_str(), 80, 0.+eps, 0.4+eps);
hresultBd->GetYaxis()->SetTitle("a.u.");
hresultBd->GetXaxis()->SetTitle("BDT > "); hresultBd->SetMarkerStyle(24); hresultBd->SetLineColor(kRed+2); hresultBd->SetMarkerColor(kRed+2);
hresultBs->GetXaxis()->SetTitle("BDT > "); hresultBs->SetMarkerStyle(25); hresultBs->SetLineColor(kBlue); hresultBs->SetMarkerColor(kBlue);
TH1D *hbdtcutBd = new TH1D("hbdtcutbd", "", 80, 0., 0.4);
TH1D *hbdtcutBs = new TH1D("hbdtcutBs", "", 80, 0.+eps, 0.4+eps);
hbdtcutBs->SetMarkerColor(kBlue); hbdtcutBd->SetMarkerStyle(24); hbdtcutBs->SetLineColor(kBlue);
hbdtcutBd->SetMarkerColor(kRed+2); hbdtcutBd->SetMarkerStyle(25); hbdtcutBd->SetLineColor(kRed+2);
invertedMuonID2Comb(era, 0.15, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.20, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.25, hresultBd, hresultBs);
invertedMuonID2Comb(era, 0.30, hresultBd, hresultBs);
invertedMuonID2Comb(era, -99., hbdtcutBd, hbdtcutBs);
c0->Clear();
double ymax(5.);
hresultBd->SetMinimum(-ymax);
hresultBd->SetMaximum(ymax);
hresultBd->Draw();
hbdtcutBd->Draw("same");
pl->DrawLine(0., 0., 0.4, 0.);
tl->SetTextSize(0.035);
tl->SetTextColor(kRed+2); tl->DrawLatexNDC(0.2, 0.85, "n(gauss(5.28))/combinatorial");
tl->SetTextColor(kBlue); tl->DrawLatexNDC(0.2, 0.81, "n(gauss(5.37))/combinatorial");
tl->SetTextColor(kBlack);
hresultBs->Draw("same");
hbdtcutBs->Draw("same");
c0->SaveAs(Form("invertedMuonID2Comb-%s-result.pdf", era.c_str()));
}
示例14: loglikdistrib
void loglikdistrib(Int_t ntrials = 10000, Bool_t print = kFALSE)
{
// compute distribution of log likelihood value
TH1D * hmc = gStack[gPadNr][gOrder[gPadNr][0]];
TH1D * hdata = gStack[gPadNr][gMaxProcess-1];
Int_t nbins = hmc->GetNbinsX();
Double_t loglik = loglikelihood(hmc, hdata, 1, nbins);
TH1D * htest = new TH1D(*hdata);
TH1D * lldistrib = new TH1D("lldistrib", "log(Likelihood) distribution",
1000, loglik-200, loglik+200);
setopt(lldistrib);
for (Int_t n = 0; n < ntrials; n++) {
// generate poisson around theorie
for (Int_t i = 1; i <= nbins; i++) {
htest->SetBinContent(i, gRandom->Poisson(hmc->GetBinContent(i)));
}
lldistrib->Fill(loglikelihood(hmc, htest, 1, nbins));
}
TCanvas * llcanvas = new TCanvas("llcanvas", "Log(Likelihood) distribution",
40, 40, 800, 600);
setopt(llcanvas);
lldistrib->SetFillColor(kYellow);
lldistrib->Draw();
lldistrib->GetYaxis()->SetTitle("Anzahl Ereignisse");
lldistrib->GetXaxis()->SetTitle("-ln L");
// autozoom
Int_t lowbin = 1;
while (lldistrib->GetBinContent(lowbin) == 0)
lowbin++;
Int_t highbin = lldistrib->GetNbinsX();
while (lldistrib->GetBinContent(highbin) == 0)
highbin--;
lldistrib->SetAxisRange(lldistrib->GetBinLowEdge(lowbin),
lldistrib->GetBinLowEdge(highbin));
TH1D * hworse = (TH1D *) lldistrib->Clone();
for (Int_t nbin = 1; nbin < 501; nbin++) {
hworse->SetBinContent(nbin, 0);
}
hworse->SetFillColor(95);
hworse->Draw("same");
Double_t pvalue = lldistrib->Integral(501,1000) / lldistrib->Integral();
TLatex * tex = new TLatex(0.18, 0.96, Form("-ln L_{obs} = %5.2f", loglik));
tex->SetNDC();
tex->SetTextAlign(13);
tex->Draw();
tex = new TLatex(0.18, 0.86, Form("CL_{obs} = %.3f", pvalue));
tex->SetNDC();
tex->SetTextAlign(13);
tex->Draw();
TLine * l = new TLine(loglik, 0, loglik, lldistrib->GetMaximum());
l->SetLineWidth(3);
l->SetLineColor(kBlue);
l->Draw();
llcanvas->Modified();
llcanvas->Update();
if (print)
llcanvas->Print("lldistrib.pdf");
cd(gPadNr+1);
}
示例15: combineHists
// Convert plots to paper format - no title, bigger fonts etc
void combineHists( TFile* fSig, TFile* fBg, TFile* fBg2, std::string histName, std::string plotOpt, std::string outputName, std::vector<double> scalingFactors, std::string label, std::string yTitle="DEFAULT"){
TH1::SetDefaultSumw2();
// for 3 hists - sig and 2 bg
TCanvas c1;
TH1D* hSig = fSig->Get(histName.c_str());
hSig->SetLineColor(kRed);
hSig->SetMarkerSize(0);
doSignalHist(hSig);
// Make combined BG hist
// Need to rescale carefully
std::vector<TFile*> files;
files.push_back(fBg);
files.push_back(fBg2);
// TH1D* hBg = combine(files, histName, scalingFactors);
TH1D* hBgA = fBg->Get(histName.c_str());
TH1D* hBgB = fBg2->Get(histName.c_str());
TH1D* hBg = (TH1D*) hBgA->Clone();
double total = scalingFactors[0]+scalingFactors[1];
hBg->Scale(scalingFactors[0]/total);
hBg->Add(hBgB, scalingFactors[1]/total);
hBg->SetMarkerSize(0);
doAltBGHist(hBg);
THStack st("h","");
st.Add(hSig);
st.Add(hBg);
st.Draw((plotOpt+"NOSTACK").c_str());
st.GetXaxis()->SetTitle(hSig->GetXaxis()->GetTitle());
if (yTitle == "DEFAULT") {
st.GetYaxis()->SetTitle(hSig->GetYaxis()->GetTitle());
} else {
st.GetYaxis()->SetTitle(yTitle.c_str());
}
setAltTitleLabelSizes(&st.GetHistogram());
st.SetTitle("");
st.Draw((plotOpt+"NOSTACK").c_str());
TLegend* l_all = new TLegend(0.65,0.6,0.89,0.89);
l_all->AddEntry(hBg,"Gen. level QCD MC","lp");
l_all->AddEntry((TObject*)0,"(b#bar{b} + q-g scatter,",""); //null pointers for blank entries
l_all->AddEntry((TObject*)0,"q = b, #bar{b}, c, #bar{c})","");
l_all->AddEntry(hSig, "Signal MC", "lp");
l_all->AddEntry((TObject*)0,"m_{#phi} = 8 GeV", "");
doStandardLegend(l_all);
l_all->Draw();
TPaveText t(0.15, 0.75, 0.5, 0.85, "NDC");
t.AddText(label.c_str());
doStandardText(&t);
if (label != "") {
t.Draw();
}
c1.SaveAs(outputName.c_str());
if (!hSig) delete hSig;
if (!hBg) delete hBg;
}