本文整理汇总了C++中TProfile::GetFunction方法的典型用法代码示例。如果您正苦于以下问题:C++ TProfile::GetFunction方法的具体用法?C++ TProfile::GetFunction怎么用?C++ TProfile::GetFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TProfile
的用法示例。
在下文中一共展示了TProfile::GetFunction方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: canvas_write
void canvas_write()
{
//just in case this script is executed multiple times
delete gROOT->GetListOfFiles()->FindObject("hsimple.root");
delete gROOT->GetListOfCanvases()->FindObject("c1");
gBenchmark->Start("ntuple1");
//
// Connect ROOT histogram/ntuple demonstration file
// generated by example hsimple.C.
TFile *f1 = new TFile("hsimple.root");
//
// Create a canvas, with 4 pads
//
TCanvas *c1 = new TCanvas("c1","The Ntuple canvas",200,10,700,780);
TPad *pad1 = new TPad("pad1","This is pad1",0.02,0.52,0.48,0.98,21);
TPad *pad2 = new TPad("pad2","This is pad2",0.52,0.52,0.98,0.98,21);
TPad *pad3 = new TPad("pad3","This is pad3",0.02,0.02,0.48,0.48,21);
TPad *pad4 = new TPad("pad4","This is pad4",0.52,0.02,0.98,0.48,1);
pad1->Draw();
pad2->Draw();
pad3->Draw();
pad4->Draw();
//
// Change default style for the statistics box
gStyle->SetStatW(0.30);
gStyle->SetStatH(0.20);
gStyle->SetStatColor(42);
//
// Display a function of one ntuple column imposing a condition
// on another column.
pad1->cd();
pad1->SetGrid();
pad1->SetLogy();
pad1->GetFrame()->SetFillColor(15);
TNtuple *ntuple = (TNtuple*)f1->Get("ntuple");
ntuple->SetLineColor(1);
ntuple->SetFillStyle(1001);
ntuple->SetFillColor(45);
ntuple->Draw("3*px+2","px**2+py**2>1");
ntuple->SetFillColor(38);
ntuple->Draw("2*px+2","pz>2","same");
ntuple->SetFillColor(5);
ntuple->Draw("1.3*px+2","(px^2+py^2>4) && py>0","same");
pad1->RedrawAxis();
//
// Display the profile of two columns
// The profile histogram produced is saved in the current directory with
// the name hprofs
pad2->cd();
pad2->SetGrid();
pad2->GetFrame()->SetFillColor(32);
ntuple->Draw("pz:px>>hprofs","","goffprofs");
TProfile *hprofs = (TProfile*)gDirectory->Get("hprofs");
hprofs->SetMarkerColor(5);
hprofs->SetMarkerSize(0.7);
hprofs->SetMarkerStyle(21);
hprofs->Fit("pol2");
// Get pointer to fitted function and modify its attributes
TF1 *fpol2 = hprofs->GetFunction("pol2");
fpol2->SetLineWidth(4);
fpol2->SetLineColor(2);
//
// Display a scatter plot of two columns with a selection.
// Superimpose the result of another cut with a different marker color
pad3->cd();
pad3->GetFrame()->SetFillColor(38);
pad3->GetFrame()->SetBorderSize(8);
ntuple->SetMarkerColor(1);
ntuple->Draw("py:px","pz>1");
ntuple->SetMarkerColor(2);
ntuple->Draw("py:px","pz<1","same");
//
// Display a 3-D scatter plot of 3 columns. Superimpose a different selection.
pad4->cd();
ntuple->Draw("pz:py:px","(pz<10 && pz>6)+(pz<4 && pz>3)");
ntuple->SetMarkerColor(4);
ntuple->Draw("pz:py:px","pz<6 && pz>4","same");
ntuple->SetMarkerColor(5);
ntuple->Draw("pz:py:px","pz<4 && pz>3","same");
TPaveText *l4 = new TPaveText(-0.9,0.5,0.9,0.95);
l4->SetFillColor(42);
l4->SetTextAlign(12);
l4->AddText("You can interactively rotate this view in 2 ways:");
l4->AddText(" - With the RotateCube in clicking in this pad");
l4->AddText(" - Selecting View with x3d in the View menu");
l4->Draw();
//
c1->cd();
c1->Update();
gStyle->SetStatColor(19);
gBenchmark->Show("ntuple1");
TSQLFile* fsql1 = new TSQLFile(dbname, "recreate", username, userpass);
if (fsql1->IsZombie()) { delete fsql1; return; }
// changing TSQLFile configuration, you may improve speed
// of reading or writing object to/from sql database
// fsql1->SetUseSuffixes(kFALSE);
//.........这里部分代码省略.........
示例2: 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;
}
示例3: ntuple1
void ntuple1() {
//Small tree analysis script
// To see the output of this macro, click begin_html <a href="gif/ntuple1.gif">here</a> end_html
//Author:: Rene Brun
//just in case this script is executed multiple times
delete gROOT->GetListOfFiles()->FindObject("hsimple.root");
delete gROOT->GetListOfCanvases()->FindObject("c1");
gBenchmark->Start("ntuple1");
//
// Connect ROOT histogram/ntuple demonstration file
// generated by example $ROOTSYS/tutorials/hsimple.C.
TFile *f1 = TFile::Open("hsimple.root");
if (!f1) return;
//
// Create a canvas, with 4 pads
//
TCanvas *c1 = new TCanvas("c1","The Ntuple canvas",200,10,700,780);
TPad *pad1 = new TPad("pad1","This is pad1",0.02,0.52,0.48,0.98,21);
TPad *pad2 = new TPad("pad2","This is pad2",0.52,0.52,0.98,0.98,21);
TPad *pad3 = new TPad("pad3","This is pad3",0.02,0.02,0.48,0.48,21);
TPad *pad4 = new TPad("pad4","This is pad4",0.52,0.02,0.98,0.48,1);
pad1->Draw();
pad2->Draw();
pad3->Draw();
pad4->Draw();
//
// Change default style for the statistics box
gStyle->SetStatW(0.30);
gStyle->SetStatH(0.20);
gStyle->SetStatColor(42);
//
// Display a function of one ntuple column imposing a condition
// on another column.
pad1->cd();
pad1->SetGrid();
pad1->SetLogy();
pad1->GetFrame()->SetFillColor(15);
TNtuple *ntuple = (TNtuple*)f1->Get("ntuple");
ntuple->SetLineColor(1);
ntuple->SetFillStyle(1001);
ntuple->SetFillColor(45);
ntuple->Draw("3*px+2","px**2+py**2>1");
ntuple->SetFillColor(38);
ntuple->Draw("2*px+2","pz>2","same");
ntuple->SetFillColor(5);
ntuple->Draw("1.3*px+2","(px^2+py^2>4) && py>0","same");
pad1->RedrawAxis();
//
// Display the profile of two columns
// The profile histogram produced is saved in the current directory with
// the name hprofs
pad2->cd();
pad2->SetGrid();
pad2->GetFrame()->SetFillColor(32);
ntuple->Draw("pz:px>>hprofs","","goffprofs");
TProfile *hprofs = (TProfile*)gDirectory->Get("hprofs");
hprofs->SetMarkerColor(5);
hprofs->SetMarkerSize(0.7);
hprofs->SetMarkerStyle(21);
hprofs->Fit("pol2");
// Get pointer to fitted function and modify its attributes
TF1 *fpol2 = hprofs->GetFunction("pol2");
fpol2->SetLineWidth(4);
fpol2->SetLineColor(2);
//
// Display a scatter plot of two columns with a selection.
// Superimpose the result of another cut with a different marker color
pad3->cd();
pad3->GetFrame()->SetFillColor(38);
pad3->GetFrame()->SetBorderSize(8);
ntuple->SetMarkerColor(1);
ntuple->Draw("py:px","pz>1");
ntuple->SetMarkerColor(2);
ntuple->Draw("py:px","pz<1","same");
//
// Display a 3-D scatter plot of 3 columns. Superimpose a different selection.
pad4->cd();
ntuple->Draw("pz:py:px","(pz<10 && pz>6)+(pz<4 && pz>3)");
ntuple->SetMarkerColor(4);
ntuple->Draw("pz:py:px","pz<6 && pz>4","same");
ntuple->SetMarkerColor(5);
ntuple->Draw("pz:py:px","pz<4 && pz>3","same");
TPaveText *l4 = new TPaveText(-0.9,0.5,0.9,0.95);
l4->SetFillColor(42);
l4->SetTextAlign(12);
l4->AddText("You can interactively rotate this view in 2 ways:");
l4->AddText(" - With the RotateCube in clicking in this pad");
l4->AddText(" - Selecting View with x3d in the View menu");
l4->Draw();
//
c1->cd();
c1->Update();
gStyle->SetStatColor(19);
gBenchmark->Show("ntuple1");
}
示例4: draw_clouds_profiles
//.........这里部分代码省略.........
hist2D->GetYaxis()->CenterTitle();
// removeBinsWithFewEntries(hist2D);
hist2D->DrawCopy( firstDraw ? "" : "same" );
// ##### pad 2 - profiles
tunePad( canv_2D_clouds->cd(2) );
profile = hist2D->ProfileX(); //(TProfile*)f[0]->Get( Form("hist2D_c%.1f-%.1f_etaW_%d_phiW_%d_pfx", cBinMin, cBinMax, etaW, phiW) );
if ( kCorrType == 0 )
{
profile->SetTitle( "");
profile->GetYaxis()->SetTitle( "#LTN_{ch}#GT Backward");
profile->GetXaxis()->SetRangeUser(0,650);
profile->GetYaxis()->SetRangeUser(0,650);
}
else if ( kCorrType == 1 )
{
profile->SetTitle( "");
profile->GetYaxis()->SetTitle( "#LT#LTp_{T}#GT#GT Backward");
}
profile->SetLineColor(kOrange-9+cBin);
profile->SetMarkerStyle(7);
tuneProfile_onPad( profile );
profile->GetYaxis()->CenterTitle();
deleteProfileEmptyBinErrors(profile);
canv_tmp_for_fit->cd();
profile->Fit("pol1","Q");//,"",0.25,1.2);//,"N");
canv_2D_clouds->cd(2);
TF1 *fit = profile->GetFunction("pol1");
Double_t p0 = fit->GetParameter(0);
Double_t p1 = fit->GetParameter(1);
grFromFit2D->SetPoint(grFromFit2D->GetN(), (cBinMax+cBinMin)/2, p1);
double meanX = hist2D->ProjectionX()->GetMean();
double rmsX = hist2D->ProjectionX()->GetRMS();
fit->SetRange( meanX-3*rmsX, meanX+3*rmsX );
fit->SetLineColorAlpha( kRed, 0.6 );
fit->Draw("same");
profile->DrawCopy( firstDraw ? "" : "same" );
firstDraw = false;
}
TGraphErrors *grByFormula; /*[cW][etaW]*/
if ( kCorrType == 0 )
{
grByFormula = (TGraphErrors*)f[0]->Get( Form( "grNN_c%d_eta%d", cW, etaW ) );
}
else if ( kCorrType == 1 )
{
grByFormula = (TGraphErrors*)f[0]->Get( Form( "grPtPt_c%d_eta%d", cW, etaW ) );
}
TCanvas *canv_GrCoeff = new TCanvas("canv_GrCoeff","canv_GrCoeff",20,150,900,700 );
grByFormula->Draw("APL");