本文整理汇总了C++中TCanvas::GetLeftMargin方法的典型用法代码示例。如果您正苦于以下问题:C++ TCanvas::GetLeftMargin方法的具体用法?C++ TCanvas::GetLeftMargin怎么用?C++ TCanvas::GetLeftMargin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TCanvas
的用法示例。
在下文中一共展示了TCanvas::GetLeftMargin方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mvas
//.........这里部分代码省略.........
Float_t nrms = 4;
cout << "--- Mean and RMS (S): " << sig->GetMean() << ", " << sig->GetRMS() << endl;
cout << "--- Mean and RMS (B): " << bgd->GetMean() << ", " << bgd->GetRMS() << endl;
Float_t xmin = TMath::Max( TMath::Min(sig->GetMean() - nrms*sig->GetRMS(),
bgd->GetMean() - nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmin() );
Float_t xmax = TMath::Min( TMath::Max(sig->GetMean() + nrms*sig->GetRMS(),
bgd->GetMean() + nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmax() );
Float_t ymin = 0;
Float_t maxMult = (htype == CompareType) ? 1.3 : 1.2;
Float_t ymax = TMath::Max( sig->GetMaximum(), bgd->GetMaximum() )*maxMult;
// build a frame
Int_t nb = 500;
TString hFrameName(TString("frame") + methodTitle);
TObject *o = gROOT->FindObject(hFrameName);
if(o) delete o;
TH2F* frame = new TH2F( hFrameName, sig->GetTitle(),
nb, xmin, xmax, nb, ymin, ymax );
frame->GetXaxis()->SetTitle( methodTitle + ((htype == MVAType || htype == CompareType) ? " response" : "") );
if (htype == ProbaType ) frame->GetXaxis()->SetTitle( "Signal probability" );
else if (htype == RarityType ) frame->GetXaxis()->SetTitle( "Signal rarity" );
frame->GetYaxis()->SetTitle("Normalized");
TMVAGlob::SetFrameStyle( frame );
// eventually: draw the frame
frame->Draw();
c->GetPad(0)->SetLeftMargin( 0.105 );
frame->GetYaxis()->SetTitleOffset( 1.2 );
// Draw legend
TLegend *legend= new TLegend( c->GetLeftMargin(), 1 - c->GetTopMargin() - 0.12,
c->GetLeftMargin() + (htype == CompareType ? 0.40 : 0.3), 1 - c->GetTopMargin() );
legend->SetFillStyle( 1 );
legend->AddEntry(sig,TString("Signal") + ((htype == CompareType) ? " (test sample)" : ""), "F");
legend->AddEntry(bgd,TString("Background") + ((htype == CompareType) ? " (test sample)" : ""), "F");
legend->SetBorderSize(1);
legend->SetMargin( (htype == CompareType ? 0.2 : 0.3) );
legend->Draw("same");
// overlay signal and background histograms
sig->Draw("samehist");
bgd->Draw("samehist");
if (htype == CompareType) {
// if overtraining check, load additional histograms
TH1* sigOv = 0;
TH1* bgdOv = 0;
TString ovname = hname += "_Train";
sigOv = dynamic_cast<TH1*>(titDir->Get( ovname + "_S" ));
bgdOv = dynamic_cast<TH1*>(titDir->Get( ovname + "_B" ));
if (sigOv == 0 || bgdOv == 0) {
cout << "+++ Problem in \"mvas.C\": overtraining check histograms do not exist" << endl;
}
else {
cout << "--- Found comparison histograms for overtraining check" << endl;
TLegend *legend2= new TLegend( 1 - c->GetRightMargin() - 0.42, 1 - c->GetTopMargin() - 0.12,
1 - c->GetRightMargin(), 1 - c->GetTopMargin() );
legend2->SetFillStyle( 1 );
legend2->SetBorderSize(1);
legend2->AddEntry(sigOv,"Signal (training sample)","P");
示例2: DrawIt
//------------------------------------------------------------------------------
// DrawIt
//------------------------------------------------------------------------------
void DrawIt(TString filename,
TString hname,
TString cname,
TString title)
{
TFile* inputfile = TFile::Open("../AuxiliaryFilesWZXS8TeV/" + filename + ".root");
TH2F* h = (TH2F*)inputfile->Get(hname)->Clone(cname);
h->SetDirectory(0);
inputfile->Close();
TString name = h->GetName();
TCanvas* canvas = new TCanvas(name, name, 600, 600);
if (name.Contains("PR")) canvas->SetLogx();
if (name.Contains("SF")) canvas->SetLogx();
canvas->SetLeftMargin (0.9 * canvas->GetLeftMargin());
canvas->SetRightMargin(3.5 * canvas->GetRightMargin());
canvas->SetTopMargin (1.2 * canvas->GetTopMargin());
TH2FAxisFonts(h, "x", "p_{T} [GeV]");
TH2FAxisFonts(h, "y", "#eta");
h->Draw("colz");
h->SetTitle("");
DrawTLatex(42, 0.940, 0.976, _bigLabelSize, 33, title);
if (!title.Contains("trigger")) {
Double_t hmin = h->GetMinimum();
Double_t hmax = h->GetMaximum();
for (Int_t i=1; i<=h->GetNbinsX(); i++) {
for (Int_t j=1; j<=h->GetNbinsY(); j++) {
Double_t value = h->GetBinContent(i,j);
Double_t ypos = h->GetYaxis()->GetBinCenter(j);
Double_t xpos = h->GetXaxis()->GetBinCenter(i);
if (gPad->GetLogx()) xpos = h->GetXaxis()->GetBinCenterLog(i);
TLatex* latex = new TLatex(xpos, ypos, Form("%.2f", value));
latex->SetTextAlign( 22);
latex->SetTextFont ( 42);
latex->SetTextSize (0.027);
if (value < hmin + 0.3*(hmax - hmin)) latex->SetTextColor(kWhite);
latex->Draw();
}
}
}
// Set the palette font
//----------------------------------------------------------------------------
canvas->Update();
TPaletteAxis* palette = (TPaletteAxis*)h->GetListOfFunctions()->FindObject("palette");
palette->SetLabelFont(42);
// Save the plot
//----------------------------------------------------------------------------
canvas->Update();
canvas->Modified();
canvas->GetFrame()->DrawClone();
canvas->SaveAs("pdf/scale_factors/" + name + ".pdf");
canvas->SaveAs("png/scale_factors/" + name + ".png");
}
示例3: allInOneLifetime
void allInOneLifetime(double lumi=4560., double maxInstLumi=5000.) {
ExtraLimitPlots plots(lumi);
plots.calculateCrossSections(4,6,3,39,9);
// graphs - observed
TGraph* g_obs = plots.getObsLimit();
TGraph* g_exp = plots.getExpLimit();
TGraphAsymmErrors* g_exp_1sig = plots.getExpLimit1Sig();
TGraphAsymmErrors* g_exp_2sig = plots.getExpLimit2Sig();
TGraph* g_obs_gluino = plots.getLimitGluino();
double gluino2ref = g_obs_gluino->GetY()[0] / g_obs->GetY()[0];
TGraph* g_obs_stop = plots.getLimitStop();
double stop2ref = g_obs_stop->GetY()[0] / g_obs->GetY()[0];
TGraph* g_obs_stau = plots.getLimitStau();
double stau2ref = g_obs_stau->GetY()[0] / g_obs->GetY()[0];
cout << "scales: " << g_obs->GetY()[0]
<< '/' <<g_obs_gluino->GetY()[0]
<< '/' <<g_obs_stop->GetY()[0]
<< '/' <<g_obs_stau->GetY()[0]
<<endl;
TCanvas *canvas = new TCanvas("allLifetime", "allLifetime", 1000, 600);
canvas->SetLogx();
canvas->SetLogy();
canvas->SetRightMargin(0.8*canvas->GetLeftMargin());
canvas->SetLeftMargin(1.2*canvas->GetLeftMargin());
canvas->SetTicks (canvas->GetTickx(), 0);
TH1F* h = new TH1F ("h", "", 1, 7.5e-8, 1e6);
h->SetStats (0);
h->SetMinimum (.0001);
h->SetMaximum (0.99e1);
// TH1* h = canvas->DrawFrame(7.5e-8, .001, 1e6, 1e2, "Y+");
h->SetTitle("Beamgap Expt");
// h->GetXaxis()->SetTitle("#tau_{#tilde{g},#tilde{t},#tilde{#tau}} [s]");
h->GetXaxis()->SetTitle("#tau [s]");
h->GetYaxis()->SetTitle("#sigma #times BF #times #varepsilon_{stopping} #times #varepsilon_{reco} [pb] ");
h->Draw ("Y+");
ExtraAxis aGluino = anotherScale (h, gluino2ref, kRed+2, "#sigma(pp #rightarrow #tilde{g}#tilde{g}) #times BF(#tilde{g} #rightarrow g#tilde{#chi}^{0}) [pb] ", 0.0);
ExtraAxis aStop = anotherScale (h, stop2ref, kBlue+2, "#sigma(pp #rightarrow #tilde{t}#tilde{t}) #times BF(#tilde{t} #rightarrow t#tilde{#chi}^{0}) [pb] ", 0.2);
ExtraAxis aStau = anotherScale (h, stau2ref, kGreen+2, "#sigma(pp #rightarrow #tilde{#tau}#tilde{#tau}) #times BF(#tilde{#tau} #rightarrow #tau#tilde{#chi}^{0}) [pb] ", 0.4);
TPaveText* blurb = new TPaveText(0.25, 0.57, 0.50, 0.87, "NDC");
blurb->AddText("CMS Preliminary 2015");
// std::stringstream label;
// label<<"#int L dt = "<<lumi<<" pb^{-1}";
// blurb->AddText(label.str().c_str());
// double peakInstLumi=maxInstLumi;
// int exponent=30;
// while (peakInstLumi>10) {
// peakInstLumi/=10;
// ++exponent;
// }
// std::stringstream label2;
// label2<<"L^{max}_{inst} = "<<peakInstLumi<<" x 10^{"<<exponent<<"} cm^{-2}s^{-1}";
// blurb->AddText(label2.str().c_str());
//blurb->AddText("CMS 2011");
blurb->AddText("#int L dt = 2.46 fb^{-1}");//, #int L_{eff} dt = 935 pb^{-1}");
//blurb->AddText("L^{max}_{inst} = 3.5 #times 10^{33} cm^{-2}s^{-1}");
blurb->AddText("#sqrt{s} = 13 TeV");
blurb->AddText("E_{g} > 120 GeV, E_{t} > 150 GeV");
blurb->AddText("E_{jet} > 70 GeV");
//blurb->AddText("m_{#tilde{g}} = 300 GeV/c^{2}");
//blurb->AddText("m_{#tilde{#chi}^{0}} = 200 GeV/c^{2}");
blurb->SetTextFont(42);
blurb->SetBorderSize(0);
blurb->SetFillColor(0);
blurb->SetShadowColor(0);
blurb->SetTextAlign(12);
blurb->SetTextSize(0.033);
blurb->Draw();
// 2 sigma band
if (g_exp_2sig) {
g_exp_2sig->SetLineColor(0);
g_exp_2sig->SetLineStyle(0);
g_exp_2sig->SetLineWidth(0);
g_exp_2sig->SetFillColor(kYellow);
g_exp_2sig->SetFillStyle(1001);
g_exp_2sig->Draw("3");
}
// 1 sigma band
if (g_exp_1sig) {
// g_exp_1sig->SetLineColor(8);
//.........这里部分代码省略.........
示例4: probas
//.........这里部分代码省略.........
}
if ((sigF == NULL || bkgF == NULL) &&!hname.Contains("hist") ) {
cout << "*** probas.C: big troubles - did not found histogram " << hspline.Data() << " "
<< sigF << " " << bkgF << endl;
return;
}
else {
// remove the signal suffix
// check that exist
if (NULL != sigF && NULL != bkgF && NULL!=sig && NULL!=bgd) {
TString hname = sig->GetName();
// chop off useless stuff
sig->SetTitle( TString("TMVA output for classifier: ") + methodTitle );
// create new canvas
cout << "--- Book canvas no: " << countCanvas << endl;
char cn[20];
sprintf( cn, "canvas%d", countCanvas+1 );
c = new TCanvas( cn, Form("TMVA Output Fit Variables %s",methodTitle.Data()),
countCanvas*50+200, countCanvas*20, width, width*0.78 );
// set the histogram style
TMVAGlob::SetSignalAndBackgroundStyle( sig, bgd );
TMVAGlob::SetSignalAndBackgroundStyle( sigF, bkgF );
// frame limits (choose judicuous x range)
Float_t nrms = 4;
Float_t xmin = TMath::Max( TMath::Min(sig->GetMean() - nrms*sig->GetRMS(),
bgd->GetMean() - nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmin() );
Float_t xmax = TMath::Min( TMath::Max(sig->GetMean() + nrms*sig->GetRMS(),
bgd->GetMean() + nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmax() );
Float_t ymin = 0;
Float_t ymax = TMath::Max( sig->GetMaximum(), bgd->GetMaximum() )*1.5;
if (Draw_CFANN_Logy && mvaName[imva] == "CFANN") ymin = 0.01;
// build a frame
Int_t nb = 500;
TH2F* frame = new TH2F( TString("frame") + sig->GetName() + "_proba", sig->GetTitle(),
nb, xmin, xmax, nb, ymin, ymax );
frame->GetXaxis()->SetTitle(methodTitle);
frame->GetYaxis()->SetTitle("Normalized");
TMVAGlob::SetFrameStyle( frame );
// eventually: draw the frame
frame->Draw();
if (Draw_CFANN_Logy && mvaName[imva] == "CFANN") c->SetLogy();
// overlay signal and background histograms
sig->SetMarkerColor( TMVAGlob::c_SignalLine );
sig->SetMarkerSize( 0.7 );
sig->SetMarkerStyle( 20 );
sig->SetLineWidth(1);
bgd->SetMarkerColor( TMVAGlob::c_BackgroundLine );
bgd->SetMarkerSize( 0.7 );
bgd->SetMarkerStyle( 24 );
bgd->SetLineWidth(1);
sig->Draw("samee");
bgd->Draw("samee");
sigF->SetFillStyle( 0 );
bkgF->SetFillStyle( 0 );
sigF->Draw("samehist");
bkgF->Draw("samehist");
// redraw axes
frame->Draw("sameaxis");
// Draw legend
TLegend *legend= new TLegend( c->GetLeftMargin(), 1 - c->GetTopMargin() - 0.2,
c->GetLeftMargin() + 0.4, 1 - c->GetTopMargin() );
legend->AddEntry(sig,"Signal data","P");
legend->AddEntry(sigF,"Signal PDF","L");
legend->AddEntry(bgd,"Background data","P");
legend->AddEntry(bkgF,"Background PDF","L");
legend->Draw("same");
legend->SetBorderSize(1);
legend->SetMargin( 0.3 );
// save canvas to file
c->Update();
TMVAGlob::plot_logo();
sprintf( fname, "plots/mva_pdf_%s_c%i", methodTitle.Data(), countCanvas+1 );
if (Save_Images) TMVAGlob::imgconv( c, fname );
countCanvas++;
}
}
}
}
}
}
}
示例5: makeNiceCanvasByPixMargins
TCanvas* makeNiceCanvasByPixMargins(Int_t pixelPerBinX, Int_t pixelPerBinY, Int_t nbinx, Int_t nbiny, Int_t top, Int_t bottom, Int_t left, Int_t right) {
Int_t rubaX = 4; //determinato sperimentalmente
Int_t rubaY = 28; //determinato sperimentalmente
TString name = generateRandomName();
Int_t plotBaseDimX = pixelPerBinX*nbinx;
Int_t plotBaseDimY = pixelPerBinY*nbiny;
Int_t XX = (Int_t)(plotBaseDimX+left+right);
Int_t YY = (Int_t)(plotBaseDimY+top+bottom);
TCanvas* can = new TCanvas(name,name,XX+rubaX,YY+rubaY);
can->SetTopMargin((1.*top)/(1.*YY));
can->SetBottomMargin((1.*bottom)/(1.*YY));
can->SetRightMargin(right/(1.*XX));
can->SetLeftMargin(left/(1.*XX));
can->SetBorderMode(0);
std::cout << "Nice canvas " << XX << " * " << YY << " Margin: t " << can->GetTopMargin() << " b " << can->GetBottomMargin() << " l " << can->GetLeftMargin() << " r " << can->GetRightMargin() << std::endl;
return can;
}
示例6: DrawMLPoutputMovie
//.........这里部分代码省略.........
countCanvas++;
TString ctitle = Form("TMVA response %s",methodTitle.Data());
c = new TCanvas( Form("canvas%d", countCanvas), ctitle, 0, 0, width, (Int_t)width*0.78 );
TH1F* sig = (TH1F*)titkeyTit->ReadObj();
sig->SetTitle( Form("TMVA response for classifier: %s", methodTitle.Data()) );
TString dataType = (name.Contains("_train_") ? "(training sample)" : "(test sample)");
// find background
TString nbn = sig->GetName(); nbn[nbn.Length()-1] = 'B';
TH1F* bgd = dynamic_cast<TH1F*>(epochDir->Get( nbn ));
if (bgd == 0) {
cout << "Big troubles with histogram: " << bgd << " -> cannot find!" << endl;
exit(1);
}
cout << "sig = " << sig->GetName() << endl;
cout << "bgd = " << bgd->GetName() << endl;
// set the histogram style
TMVAGlob::SetSignalAndBackgroundStyle( sig, bgd );
// normalise both signal and background
TMVAGlob::NormalizeHists( sig, bgd );
// set only first time, then same for all plots
if (first) {
if (xmin == 0 && xmax == 0) {
xmin = TMath::Max( TMath::Min(sig->GetMean() - nrms*sig->GetRMS(),
bgd->GetMean() - nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmin() );
xmax = TMath::Min( TMath::Max(sig->GetMean() + nrms*sig->GetRMS(),
bgd->GetMean() + nrms*bgd->GetRMS() ),
sig->GetXaxis()->GetXmax() );
}
ymin = 0;
ymax = TMath::Max( sig->GetMaximum(), bgd->GetMaximum() )*maxMult;
first = kFALSE;
}
// build a frame
Int_t nb = 100;
TString hFrameName(TString("frame") + methodTitle);
TObject *o = gROOT->FindObject(hFrameName);
if(o) delete o;
TH2F* frame = new TH2F( hFrameName, sig->GetTitle(),
nb, xmin, xmax, nb, ymin, ymax );
frame->GetXaxis()->SetTitle( methodTitle + " response" );
frame->GetYaxis()->SetTitle("(1/N) dN^{ }/^{ }dx");
TMVAGlob::SetFrameStyle( frame );
// find epoch number (4th token)
TObjArray* tokens = name.Tokenize("_");
TString es = ((TObjString*)tokens->At(4))->GetString();
if (!es.IsFloat()) {
cout << "Big troubles in epoch parsing: \"" << es << "\" is not float" << endl;
exit(1);
}
Int_t epoch = es.Atoi();
// eventually: draw the frame
frame->Draw();
c->GetPad(0)->SetLeftMargin( 0.105 );
frame->GetYaxis()->SetTitleOffset( 1.2 );
// Draw legend
TLegend *legend= new TLegend( c->GetLeftMargin(), 1 - c->GetTopMargin() - 0.12,
c->GetLeftMargin() + 0.5, 1 - c->GetTopMargin() );
legend->SetFillStyle( 1 );
legend->AddEntry(sig,TString("Signal ") + dataType, "F");
legend->AddEntry(bgd,TString("Background ") + dataType, "F");
legend->SetBorderSize(1);
legend->SetMargin( 0.15 );
legend->Draw("same");
TText* t = new TText();
t->SetTextSize( 0.04 );
t->SetTextColor( 1 );
t->SetTextAlign( 31 );
t->DrawTextNDC( 1 - c->GetRightMargin(), 1 - c->GetTopMargin() + 0.015, Form( "Epoch: %i", epoch) );
// overlay signal and background histograms
sig->Draw("samehist");
bgd->Draw("samehist");
// save to file
TString dirname = "movieplots";
TString foutname = dirname + "/" + name;
foutname.Resize( foutname.Length()-2 );
foutname.ReplaceAll("convergencetest___","");
foutname += ".gif";
cout << "storing file: " << foutname << endl;
c->Update();
c->Print(foutname);
}
}