本文整理汇总了C++中TPad::SetTopMargin方法的典型用法代码示例。如果您正苦于以下问题:C++ TPad::SetTopMargin方法的具体用法?C++ TPad::SetTopMargin怎么用?C++ TPad::SetTopMargin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPad
的用法示例。
在下文中一共展示了TPad::SetTopMargin方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitSubPad
void InitSubPad(TPad* pad, int i)
{
//printf("Pad: %p, index: %d\n",pad,i);
pad->cd(i);
TPad *tmpPad = (TPad*) pad->GetPad(i);
tmpPad->SetLeftMargin (0.20);
tmpPad->SetTopMargin (0.05);
tmpPad->SetRightMargin (0.07);
tmpPad->SetBottomMargin(0.15);
return;
}
示例2: plot_ratio
TPad* plot_ratio(TCanvas *canv, bool up){
canv->SetFillColor (0);
canv->SetBorderMode (0);
canv->SetBorderSize (10);
// Set margins to reasonable defaults
canv->SetLeftMargin (0.18);
canv->SetLeftMargin (0.17);
canv->SetRightMargin (0.05);
canv->SetTopMargin (0.12);
canv->SetBottomMargin (0.18);
// Setup a frame which makes sense
canv->SetFrameFillStyle (0);
canv->SetFrameLineStyle (0);
canv->SetFrameBorderMode(0);
canv->SetFrameBorderSize(10);
canv->SetFrameFillStyle (0);
canv->SetFrameLineStyle (0);
canv->SetFrameBorderMode(0);
canv->SetFrameBorderSize(10);
canv->cd();
TPad *pad = 0;
if (up){
pad = new TPad("upper","pad",0, 0.26 ,1 ,1);
pad->SetBottomMargin(0.05);
pad->SetTopMargin(0.09);
pad->Draw();
pad->cd();
return pad;
}
else {
pad = new TPad("lower","pad",0, 0,1 ,0.26);
pad->SetTopMargin(0.05);
pad->SetBottomMargin(0.24);
pad->Draw();
pad->cd();
return pad;
}
};
示例3: ALICEWorkInProgress
void ALICEWorkInProgress(TCanvas *c,TString today){
//date must be in the form: 04/05/2010
if(today=="today"){
TDatime startt;
int date=startt.GetDate();
int y=date/10000;
int m=(date%10000)/100;
int d=date%100;
today="";
today+=d;
if(m<10)
today.Append("/0");
else today.Append("/");
today+=m;
today.Append("/");
today+=y;
}
TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo",0.67,0.65,0.82,0.89);
// myPadLogo->SetFillColor(2);
myPadLogo->SetBorderMode(0);
myPadLogo->SetBorderSize(2);
myPadLogo->SetFrameBorderMode(0);
myPadLogo->SetLeftMargin(0.0);
myPadLogo->SetTopMargin(0.0);
myPadLogo->SetBottomMargin(0.0);
myPadLogo->SetRightMargin(0.0);
myPadLogo->Draw();
myPadLogo->cd();
TASImage *myAliceLogo = new TASImage("/u/mfasel/work/electron/Spectrum/alice_logo.png");
myAliceLogo->Draw();
c->cd();
TPaveText* t1=new TPaveText(0.59,0.59,0.89,0.66,"NDC");
t1->SetFillStyle(0);
t1->SetBorderSize(0);
t1->AddText(0.,0.,"ALICE Performance");
t1->SetTextColor(kRed);
t1->SetTextFont(42);
t1->Draw();
TPaveText* t2=new TPaveText(0.59,0.54,0.89,0.60,"NDC");
t2->SetFillStyle(0);
t2->SetBorderSize(0);
t2->SetTextColor(kRed);
t2->SetTextFont(52);
t2->AddText(0.,0.,today.Data());
t2->Draw();
}
示例4: DrawALICELogo
void DrawALICELogo(Bool_t prel, Float_t x1, Float_t y1, Float_t x2, Float_t y2)
{
// correct for aspect ratio of figure plus aspect ratio of pad (coordinates are NDC!)
x2 = x1 + (y2 - y1) * (466. / 523) * gPad->GetWh() * gPad->GetHNDC() / (gPad->GetWNDC() * gPad->GetWw());
// Printf("%f %f %f %f", x1, x2, y1, y2);
TPad *myPadLogo = new TPad("myPadLogo", "Pad for ALICE Logo", x1, y1, x2, y2);
myPadLogo->SetLeftMargin(0);
myPadLogo->SetTopMargin(0);
myPadLogo->SetRightMargin(0);
myPadLogo->SetBottomMargin(0);
myPadLogo->Draw();
myPadLogo->cd();
TASImage *myAliceLogo = new TASImage((prel) ? "~/alice_logo_preliminary.eps" : "~/alice_logo_performance.eps");
myAliceLogo->Draw();
}
示例5: DrawALICELogo
void DrawALICELogo(Float_t x1, Float_t y1, Float_t x2, Float_t y2)
{
// Correct for aspect ratio of figure plus aspect ratio of pad.
// Coordinates are NDC!
x2 = x1 + (y2 - y1)*0.891*gPad->GetCanvas()->GetWindowHeight()*gPad->GetHNDC() / (gPad->GetWNDC() * gPad->GetCanvas()->GetWindowWidth());
TPad *myPadLogo = new TPad("myPadLogo","Pad for ALICE Logo", x1, y1, x2, y2);
myPadLogo->SetLeftMargin(0);
myPadLogo->SetTopMargin(0);
myPadLogo->SetRightMargin(0);
myPadLogo->SetBottomMargin(0);
myPadLogo->Draw();
myPadLogo->cd();
TASImage *myAliceLogo =
new TASImage("alice_logo_preliminary.eps");
myAliceLogo->Draw("same");
}
示例6: DrawVariable
//.........这里部分代码省略.........
hs->Add(hTTZ);
hs->Add(hWJets);
hs->Add(hDYJets);
hs->Add(hST);
hs->Add(hTT);
hs->Add(hQCD);
if (BLIND) {
for(int i=0;i<h[0]->GetNbinsX();i++) {
if (h[0]->GetBinCenter(i+1) > BLIND_MIN && h[0]->GetBinCenter(i+1) < BLIND_MAX) {
h[0]->SetBinContent(i+1,0);
h[0]->SetBinError(i+1,0);
}
}
}
TH1F *hRatio = (TH1F*)h[0]->Clone("Ratio");
hRatio->SetLineWidth(2);
hRatio->Divide(hBkg);
TLegend *leg = new TLegend(0.86,0.55,0.99,0.9);
leg->SetFillColor(0);
leg->SetTextFont(42);
leg->SetTextSize(0.03);
leg->AddEntry(hQCD,"QCD","F");
leg->AddEntry(hTT,"TTbar","F");
leg->AddEntry(hST,"ST","F");
leg->AddEntry(hTTZ,"ttZ","F");
leg->AddEntry(hTTW,"ttW","F");
leg->AddEntry(hWJets,"WJets","F");
leg->AddEntry(hDYJets,"ZJets","F");
leg->AddEntry(hVV,"Diboson","F");
leg->AddEntry(h[1],"ttHbb","L");
leg->AddEntry(h[2],"ttHNonbb","L");
if (SHAPE) {
h[1]->SetFillStyle(3001);
h[2]->SetFillStyle(3001);
h[0]->Scale(1./h[0]->Integral());
h[1]->Scale(1./h[1]->Integral());
h[2]->Scale(1./h[2]->Integral());
hQCD->Scale(1./hQCD->Integral());
hBkg->Scale(1./hBkg->Integral());
double max = TMath::Max(h[0]->GetBinContent(h[0]->GetMaximumBin()),hBkg->GetBinContent(hBkg->GetMaximumBin()));
hBkg->SetMaximum(1.1*max);
hBkg->GetXaxis()->SetTitle(XTITLE);
hBkg->GetXaxis()->SetRangeUser(XMIN,XMAX);
hBkg->Draw("hist");
h[0]->Draw("same E");
//h[1]->Draw("same hist");
leg->Draw();
gPad->RedrawAxis();
can->Print("can_"+VAR+"_norm.pdf");
}
else {
can->SetBottomMargin(0.25);
gPad->SetLogy();
//h[1]->Scale(h[0]->Integral()/h[1]->Integral());
h[1]->SetFillColor(0);
TH1F *hAux = (TH1F*)h[0]->Clone("aux");
hAux->Reset();
hAux->GetYaxis()->SetRangeUser(0.5,1.1*TMath::Max(h[1]->GetBinContent(h[1]->GetMaximumBin()),h[0]->GetBinContent(h[0]->GetMaximumBin())));
hAux->GetXaxis()->SetRangeUser(XMIN,XMAX);
hAux->GetYaxis()->SetTitle(TString::Format("Number of events / %1.2f fb^{-1}",LUMI/1000));
hAux->GetXaxis()->SetTitle("");
hAux->GetXaxis()->SetLabelSize(0.0);
hAux->Draw();
hs->Draw("hist same");
h[0]->Draw("same E");
h[1]->Draw("same hist");
h[2]->Draw("same hist");
leg->Draw();
gPad->RedrawAxis();
TPad *pad = new TPad("pad","pad",0.,0.,1.,1.);
pad->SetTopMargin(0.77);
pad->SetRightMargin(0.15);
pad->SetFillColor(0);
pad->SetFillStyle(0);
pad->Draw();
pad->cd(0);
pad->SetGridy();
hRatio->GetXaxis()->SetTitleOffset(0.95);
hRatio->GetYaxis()->SetTitleOffset(1.5);
hRatio->GetYaxis()->SetTickLength(0.06);
hRatio->GetYaxis()->SetTitleSize(0.03);
hRatio->GetYaxis()->SetLabelSize(0.03);
hRatio->GetYaxis()->SetTitle("Data/MC");
hRatio->GetXaxis()->SetTitle(XTITLE);
hRatio->GetXaxis()->SetRangeUser(XMIN,XMAX);
hRatio->GetYaxis()->SetRangeUser(0.5,1.5);
hRatio->GetYaxis()->SetNdivisions(505);
hRatio->Draw();
if (PRINT) {
can->Print("plots/can_"+VAR+"_abs.pdf");
can->Print("plots/can_"+VAR+"_abs.png");
}
}
}
示例7: plot1d
void plot1d(int hid) {
gStyle->SetOptStat(0);
char c[50];
c1->Clear();
if(m1dHist[hid]==0){
c1->Divide(2,2);
for(int quad=0; quad<kFgtNumQuads; quad++){
TVirtualPad* pad1 = c1->cd(quad+1);
pad1->SetLogy(l1dHist[hid]);
double xmin, xmax, ymin=0.0, ymax=0.0;
if(l1dHist[hid]==1) ymin=0.1;
for(int disc=0; disc<kFgtNumDiscs; disc++){
sprintf(c,"%1d%1s-%s",disc+1,cquad[quad],c1dHist[hid]);
//printf("Getting %s\n",c);
TH1F *h = hist1[disc][quad][hid] = (TH1F*)file->Get(c);
xmin=h->GetXaxis()->GetXmin();
xmax=h->GetXaxis()->GetXmax();
double m=h->GetMaximum();
if(ymax<m) ymax=m;
printf("disc=%d max=%6.1f ymax=%6.1f xmin=%6.1f xmax=%6.1f\n",disc+1,m,ymax,xmin,xmax);
}
sprintf(c,"Quad%1s-%s",cquad[quad],c1dHist[hid]);
TH2F *frame = new TH2F(c,c,1,xmin,xmax,1,ymin,ymax*1.2); frame->SetStats(0); frame->Draw();
for(int disc=0; disc<kFgtNumDiscs; disc++){
TH1F *h=hist1[disc][quad][hid];
h->SetLineColor(color[disc]); h->SetLineWidth(3); h->Draw("SAME");
if(f1dHist[hid]==0){
float mean=h->GetMean();
sprintf(c,"%1d%s mean=%6.2f",disc+1,cquad[quad],mean);
}else if(f1dHist[hid]==1){
int res = h->Fit("gaus","0Q");
TF1 *f = h->GetFunction("gaus");
float sig = f->GetParameter(2);
if(res==0 && sig>0.0001 && h->GetEntries()>5){
f->SetLineColor(color[disc]); f->SetLineWidth(2); f->Draw("SAME");
sprintf(c,"%1d%s sig=%6.3f",disc+1,cquad[quad],sig);
}else{
sprintf(c,"%1d%s",disc+1,cquad[quad]);
}
}else if(f1dHist[hid]==2){
int res = h->Fit("landau","0Q");
TF1 *f = h->GetFunction("landau");
float peak = f->GetParameter(1);
if(res==0 && peak>0 && h->GetEntries()>5){
f->SetLineColor(color[disc]); f->SetLineWidth(2); f->Draw("SAME");
sprintf(c,"%1d%s mpv=%6.0f",disc+1,cquad[quad],peak);
}else{
sprintf(c,"%1d%s",disc+1,cquad[quad]);
}
}
TText *t1;
float x1= 0.2, x2= 0.55;
float y1=0.8 - 0.07*disc;
float y2=0.8 - 0.07*(disc-3);
if(disc<3) { t1 = new TText(x1,y1,c); }
else { t1 = new TText(x2,y2,c); }
t1->SetNDC();
t1->SetTextSize(0.04);
t1->SetTextColor(color[disc]);
t1->Draw();
}
}
}else{
c1->Divide(4,6);
gStyle->SetOptStat(0);
gStyle->SetOptTitle(0);
gStyle->SetOptFit(0);
for(int disc=0; disc<kFgtNumDiscs; disc++){
for(int quad=0; quad<kFgtNumQuads; quad++){
TPad* pad = c1->cd(disc*4+quad+1);
pad->SetRightMargin(0.01); pad->SetLeftMargin(0.1);
pad->SetTopMargin(0.01); pad->SetBottomMargin(0.1);
pad->SetLogy(l1dHist[hid]);
sprintf(c,"%1d%1s-%s",disc+1,cquad[quad],c1dHist[hid]);
TH1F *h = hist1[disc][quad][hid] = (TH1F*)file->Get(c);
h->SetFillColor(color[disc]);
h->GetXaxis()->SetLabelSize(0.1);
h->GetYaxis()->SetLabelSize(0.1);
h->GetXaxis()->SetNdivisions(205);
h->Draw();
if(f1dHist[hid]==0){
float mean=h->GetMean();
sprintf(c,"%1d%s mean=%6.2f",disc+1,cquad[quad],mean);
}else if(f1dHist[hid]==1){
int res = h->Fit("gaus","0Q");
TF1 *f = h->GetFunction("gaus");
float sig = f->GetParameter(2);
if(res==0 && sig>0.0001 && h->GetEntries()>5){
f->SetLineColor(color[disc]); f->SetLineWidth(2); f->Draw("SAME");
sprintf(c,"%1d%s sig=%6.3f",disc+1,cquad[quad],sig);
}else{
sprintf(c,"%1d%s",disc+1,cquad[quad]);
}
}else if(f1dHist[hid]==2){
int res = h->Fit("landau","0Q");
TF1 *f = h->GetFunction("landau");
float peak = f->GetParameter(1);
if(res==0 && peak>0 && h->GetEntries()>5){
f->SetLineColor(1); f->SetLineWidth(2); f->Draw("SAME");
//.........这里部分代码省略.........
示例8: plot2d
void plot2d(int hid) {
gStyle->SetOptStat(0);
char c[50];
c1->Clear();
if(hid!=2 && hid!=4){
c1->Divide(2,3);
for(int disc=0; disc<kFgtNumDiscs; disc++){
TPad *pad = c1->cd(disc+1);
pad->SetLogz(1);
pad->SetTopMargin(0.01); pad->SetBottomMargin(0.02);
sprintf(c,"Disc%1d%s",disc+1,c2dHist[hid]);
//printf("Getting %s\n",c);
TH2F *h = hist2[disc][hid] = (TH2F*)file->Get(c);
h->Draw("COLZ");
}
}else if(hid==2){ // special case for timing per APVboard
gStyle->SetOptTitle(0);
gStyle->SetOptFit(0);
c1->Divide(2,1);
char txt[100];
//int disc=3; char name[100]="MaxAdc";
int disc=4; char name[100]="LandauMPV";
//int disc=5; char name[100]="LandauMPV-3Sing";
TVirtualPad *pad2 = c1->cd(1);
pad2->Divide(1,2);
TVirtualPad *pad3=pad2->cd(1);
pad3->SetLogz(1); pad2->SetLogz(0);
sprintf(c,"Disc%1d%s",disc,c2dHist[hid]);
TH2F *h = hist2[disc][hid] = (TH2F*)file->Get(c);
h->Draw("COLZ");
TText *tt1= new TText(0.05,0.1,"(RDO-1)*12+ARM*2+GRP"); tt1->SetTextAngle(90); tt1->SetNDC(); tt1->Draw();
sprintf(txt,"Tbin for %s",name);
TText *tt2= new TText(0.3,0,txt); tt2->SetNDC(); tt2->Draw();
TVirtualPad* pad4 = c1->cd(2);
pad4->SetTopMargin(0.01); pad4->SetBottomMargin(0.1);
int maxid=0;
float off,max=0;
TH1D *h1[24];
float mean[24];
for(int i=0; i<24; i++){
char ccc[10]; sprintf(ccc,"_%d_%d",disc,i);
h1[i] = h->ProjectionX(ccc,i+1,i+1);
if(h1[i]->GetMaximum() > max && i!=0) {max=h1[i]->GetMaximum(); maxid=i; }
}
off=max/4.0;
printf("max=%f off=%f\n",max,off);
for(int i=0; i<24; i++){
h1[i]->GetXaxis()->SetRangeUser(2,11);
int res = h1[i]->Fit("gaus","0Q");
TF1* f=h1[i]->GetFunction("gaus");
if(h1[i]->GetMaximum()>max/3 && res==0){
mean[i] = f->GetParameter(1);
//mean[i]=h1[i]->GetMean();
}else{mean[i]=0;};
//printf("%d mean=%f\n",i,mean[i]);
}
//h1[maxid]->SetLineColor(maxid+1); h1[maxid]->SetLineWidth(2); h1[maxid]->Draw("PL");
for(int rdo=1; rdo<=2; rdo++){
for(int arm=0; arm<6; arm++){
for(int grp=0; grp<2; grp++){
i=(rdo-1)*12+arm*2+grp;
int nb=h1[i]->GetNbinsX();
for(int t=0; t<nb; t++){ h1[i]->AddBinContent(t+1,off*i); }
h1[i]->SetLineColor(i%6+1); h1[i]->SetLineWidth(3);
if(i==0) {
h1[i]->SetMinimum(0);
h1[i]->SetMaximum(max*6.5);
h1[i]->Draw("PL");
} else {h1[i]->Draw("PL same");}
char name[100];
sprintf(name,"Rdo%1dArm%1dGrp%1d",rdo,arm,grp);
TText *tx = new TText(8.5,(max/4.0)*(i+0.2),name); tx->SetTextColor(i%6+1); tx->SetTextSize(0.03);
tx->Draw();
}
}
}
// TText *tt3= new TText(0.95,0.1,"offsets added by (RDO-1)*12+ARM*2+GRP"); tt3->SetTextAngle(90); tt3->SetNDC(); tt3->Draw();
TText *tt4= new TText(0.4,0,txt); tt4->SetNDC(); tt4->Draw();
//correlation
float t2[24]={-8.47, -5.16, -0.21, -2.23, 1.11, -4.09,
-3.13, -9.08, -5.88, -7.01, -6.22, -9.79,
0.75, -8.91, 0.16, 1.12, -0.99, -4.56,
7.57, -3.68, 7.12, -6.54, -4.08, -8.21};
TGraph *g= new TGraph(1);
int j=0;
for(int i=0; i<24; i++){
if(mean[i]>0) {g->SetPoint(j,(mean[i]-6.0)*27,t2[i]); j++;}
}
TVirtualPad* pad5=pad2->cd(2);
g->SetMarkerStyle(20+i/6); g->SetMarkerSize(1);
g->Draw("ap");
for(int i=0; i<24; i++){
TGraph *g2= new TGraph(1);
if(mean[i]>0) {g2->SetPoint(j,(mean[i]-6.0)*27,t2[i]); j++;}
g2->SetMarkerStyle(20+i/6); g2->SetMarkerSize(2); g2->SetMarkerColor(i%6+1);
g2->Draw("p");
}
//.........这里部分代码省略.........
示例9: vs_PlotQCDcomp
//.........这里部分代码省略.........
if ( hptFOR != 0 ) {
for (int b = 0; b < hptFOR->GetNbinsX(); b++) {
Double_t mainHistoContent = hptFOR->GetBinContent(b);
Double_t systUpHistoContent = hptSUR->GetBinContent(b);
Double_t systDnHistoContent = hptSDR->GetBinContent(b);
Double_t systDiffUp = fabs( (double) systUpHistoContent - mainHistoContent );
Double_t systDiffDn = fabs( (double) mainHistoContent - systDnHistoContent );
// use average error for histogram
Double_t systDiff = ( systDiffUp + systDiffDn ) / 2.;
Double_t statErr = hptFOR->GetBinError(b);
Double_t combError = sqrt( systDiff * systDiff + statErr * statErr );
hptFOR->SetBinError(b, combError);
} //for
}//if
cPt->SetLogy(1);
gPad->Update();
cPt->Update();
// hptR->Scale(1,"width");
// hptR->SetMinimum(0.02);
// hptR->SetMaximum(1000);
hptR->GetXaxis()->SetTitle("1^{st} photon p_{T} [GeV]");
hptR->GetYaxis()->SetTitle("Number of Events / GeV");
if(isMC) hptR->SetMarkerSize(0);
if(isMC) hptR->Draw("histE");
else hptR->Draw("E X0");
hptFOR->SetMarkerSize(0);
hptFOR->SetLineColor(2);
hptFOR->SetFillColor(2);
hptFOR->SetFillStyle(3004);
hptFOR->Draw("same hist ][ E2");
legend->Clear();
if(isMC) legend->SetHeader("#gamma/QCD (Sim)");
else legend->SetHeader("#gamma/QCD (Data)");
if(isMC) legend->AddEntry(hptR, "#gamma", "l");
else legend->AddEntry(hptR, "#gamma", "p");
legend->AddEntry(hptFOR, "Pred (from #gamma_{jet})", "f");
legend->Draw();
as->DrawLatex(0.17, 0.93, outLumi.c_str() );
cPt->Update();
cPt->SetBottomMargin(0.2 + 0.8 * cPt->GetBottomMargin() - 0.2 * cPt->GetTopMargin());
TPad *ratioPt = new TPad("BottomPad", "", 0, 0, 1, 1);
ratioPt->SetTopMargin(0.8 - 0.8 * ratioPt->GetBottomMargin() + 0.2 * ratioPt->GetTopMargin());
ratioPt->SetFillStyle(0);
ratioPt->SetFrameFillColor(10);
ratioPt->SetFrameBorderMode(0);
ratioPt->Draw();
ratioPt->cd();
ratioPt->SetLogy(0);
TH1F *hptRat = (TH1F*) divideHistosForRatio(hptR,hptFOR);
hptRat->SetMinimum(0.);
hptRat->SetMaximum(10.);
hptRat->GetXaxis()->SetNdivisions(505);
if(isMC) hptRat->GetYaxis()->SetTitle("Sim/Pred");
else hptRat->GetYaxis()->SetTitle("Data/Pred");
hptRat->GetYaxis()->SetTitleSize(0.04);
hptRat->GetYaxis()->SetLabelSize(0.03);
hptRat->GetYaxis()->SetTitleOffset(1.3);
hptRat->GetYaxis()->SetNdivisions(505);
hptRat->SetMarkerStyle(20);
hptRat->SetMarkerSize(1);
hptRat->SetMarkerColor(1);
hptRat->SetLineColor(1);
hptRat->Draw("E X0");
TH1F *hptFRat = (TH1F*) getSystErrForRatio(hptFOR);
hptFRat->SetLineColor(2);
hptFRat->SetFillColor(2);
hptFRat->SetFillStyle(3004);
hptFRat->Draw("same hist ][ E2");
TLine * line = new TLine( hptRat->GetXaxis()->GetXmin(), 1., hptRat->GetXaxis()->GetXmax(), 1. );
line->SetLineColor(1);
line->SetLineWidth(0.5);
line->SetLineStyle(1);
line->Draw("same");
hptR->GetXaxis()->SetLabelSize(0);
hptR->GetXaxis()->SetTitle("");
cPt->RedrawAxis();
gPad->Update();
cPt->Update();
return;
}
示例10: makePlot
void makePlot(const TString& title,
TGraphAsymmErrors* graph_Data_passed, TF1* fit_Data_passed, const TString& legendEntry_Data_passed,
TGraphAsymmErrors* graph_mcSum_passed, TF1* fit_mcSum_passed, const TString& legendEntry_mcSum_passed,
TGraphAsymmErrors* graph_Data_failed, TF1* fit_Data_failed, const TString& legendEntry_Data_failed,
TGraphAsymmErrors* graph_mcSum_failed, TF1* fit_mcSum_failed, const TString& legendEntry_mcSum_failed,
const TString& outputFileName)
{
TCanvas* canvas = new TCanvas("canvas", "canvas", 800, 900);
canvas->SetFillColor(10);
canvas->SetBorderSize(2);
canvas->SetLeftMargin(0.12);
canvas->SetBottomMargin(0.12);
//TPad* topPad = new TPad("topPad", "topPad", 0.00, 0.35, 1.00, 1.00);
TPad* topPad = new TPad("topPad", "topPad", 0.00, 1.00 - 0.65*(0.93/0.84), 1.00, 1.00);
topPad->SetFillColor(10);
topPad->SetTopMargin(0.04);
topPad->SetLeftMargin(0.15);
//topPad->SetBottomMargin(0.03);
topPad->SetBottomMargin(0.12);
topPad->SetRightMargin(0.05);
topPad->SetGridx();
topPad->SetGridy();
canvas->cd();
topPad->Draw();
topPad->cd();
TH1* dummyHistogram_top = new TH1D("dummyHistogram_top", "dummyHistogram_top", 10, 0., 100.);
dummyHistogram_top->SetTitle("");
dummyHistogram_top->SetStats(false);
dummyHistogram_top->SetMaximum(1.2);
dummyHistogram_top->SetMinimum(0.);
TAxis* xAxis_top = dummyHistogram_top->GetXaxis();
xAxis_top->SetTitle("calo-E_{T}^{miss} / GeV");
xAxis_top->SetTitleOffset(1.15);
//xAxis_top->SetLabelColor(10);
//xAxis_top->SetTitleColor(10);
TAxis* yAxis_top = dummyHistogram_top->GetYaxis();
yAxis_top->SetTitle("#varepsilon");
yAxis_top->SetTitleOffset(1.2);
dummyHistogram_top->Draw();
//dummyHistogram_top->Draw("axis");
//graph_Data_passed->SetLineColor(4);
//graph_Data_passed->SetMarkerColor(4);
//graph_Data_passed->SetMarkerStyle(20);
//graph_Data_passed->Draw("p");
//fit_Data_passed->SetLineColor(graph_Data_passed->GetLineColor());
//fit_Data_passed->SetLineWidth(2);
//fit_Data_passed->Draw("same");
graph_mcSum_passed->SetLineColor(7);
graph_mcSum_passed->SetMarkerColor(7);
graph_mcSum_passed->SetMarkerStyle(24);
graph_mcSum_passed->Draw("p");
fit_mcSum_passed->SetLineColor(graph_mcSum_passed->GetLineColor());
fit_mcSum_passed->SetLineWidth(2);
fit_mcSum_passed->Draw("same");
graph_Data_failed->SetLineColor(2);
graph_Data_failed->SetMarkerColor(2);
graph_Data_failed->SetMarkerStyle(21);
//graph_Data_failed->Draw("p");
fit_Data_failed->SetLineColor(graph_Data_failed->GetLineColor());
fit_Data_failed->SetLineWidth(2);
//fit_Data_failed->Draw("same");
graph_mcSum_failed->SetLineColor(6);
graph_mcSum_failed->SetMarkerColor(6);
graph_mcSum_failed->SetMarkerStyle(25);
graph_mcSum_failed->Draw("p");
fit_mcSum_failed->SetLineColor(graph_mcSum_failed->GetLineColor());
fit_mcSum_failed->SetLineWidth(2);
fit_mcSum_failed->Draw("same");
TLegend* legend = new TLegend(0.61, 0.16, 0.89, 0.47, "", "brNDC");
legend->SetBorderSize(0);
legend->SetFillColor(0);
//legend->AddEntry(graph_Data_passed, legendEntry_Data_passed.Data(), "p");
legend->AddEntry(graph_mcSum_passed, legendEntry_mcSum_passed.Data(), "p");
//legend->AddEntry(graph_Data_failed, legendEntry_Data_failed.Data(), "p");
legend->AddEntry(graph_mcSum_failed, legendEntry_mcSum_failed.Data(), "p");
legend->Draw();
TPaveText* label = 0;
if ( title.Length() > 0 ) {
label = new TPaveText(0.175, 0.89, 0.48, 0.94, "NDC");
label->AddText(title.Data());
label->SetTextAlign(13);
label->SetTextSize(0.045);
label->SetFillStyle(0);
label->SetBorderSize(0);
//.........这里部分代码省略.........
示例11: limit
void limit()
{
//=========Macro generated from canvas: limit/limit
//========= (Thu Apr 27 14:38:33 2017) by ROOT version6.02/05
TCanvas *limit = new TCanvas("limit", "limit",0,0,600,600);
gStyle->SetOptFit(1);
gStyle->SetOptStat(0);
gStyle->SetOptTitle(0);
limit->SetHighLightColor(2);
limit->Range(0,0,1,1);
limit->SetFillColor(0);
limit->SetBorderMode(0);
limit->SetBorderSize(2);
limit->SetLeftMargin(0.16);
limit->SetRightMargin(0.04);
limit->SetTopMargin(0.06);
limit->SetBottomMargin(0.12);
limit->SetFrameFillStyle(0);
limit->SetFrameBorderMode(0);
// ------------>Primitives in pad: pad
TPad *pad = new TPad("pad", "pad",0,0,1,1);
pad->Draw();
pad->cd();
pad->Range(-59.99999,-2.046818,1565,15.01);
pad->SetFillColor(0);
pad->SetBorderMode(0);
pad->SetLogy();
pad->SetBorderSize(2);
pad->SetTickx(1);
pad->SetTicky(1);
pad->SetLeftMargin(0.16);
pad->SetRightMargin(0.04);
pad->SetTopMargin(0.06);
pad->SetBottomMargin(0.12);
pad->SetFrameFillStyle(0);
pad->SetFrameBorderMode(0);
pad->SetFrameFillStyle(0);
pad->SetFrameBorderMode(0);
TH1F *tmp01 = new TH1F("tmp01","Graph",100,200,1500);
tmp01->SetMinimum(0.);
tmp01->SetMaximum(13.98659);
tmp01->SetStats(0);
tmp01->SetLineStyle(0);
tmp01->SetMarkerStyle(20);
tmp01->GetXaxis()->SetTitle("m_{H} (GeV)");
tmp01->GetXaxis()->SetLabelFont(42);
tmp01->GetXaxis()->SetLabelOffset(0.01);
tmp01->GetXaxis()->SetTitleSize(0.05);
tmp01->GetXaxis()->SetTickLength(0.02);
tmp01->GetXaxis()->SetTitleOffset(1.08);
tmp01->GetXaxis()->SetTitleFont(42);
tmp01->GetYaxis()->SetTitle("95% CL limit on #sigma/#sigma_{SM}");
tmp01->GetYaxis()->SetLabelFont(42);
tmp01->GetYaxis()->SetLabelOffset(0.007);
tmp01->GetYaxis()->SetTitleSize(0.05);
tmp01->GetYaxis()->SetTickLength(0.02);
tmp01->GetYaxis()->SetTitleOffset(1.56);
tmp01->GetYaxis()->SetTitleFont(42);
tmp01->GetZaxis()->SetLabelFont(42);
tmp01->GetZaxis()->SetLabelOffset(0.007);
tmp01->GetZaxis()->SetTitleSize(0.05);
tmp01->GetZaxis()->SetTickLength(0.02);
tmp01->GetZaxis()->SetTitleFont(42);
tmp01->Draw("AXIS");
TH1F *tmp02 = new TH1F("tmp02","Graph",100,200,1500);
tmp02->SetMinimum(0);
tmp02->SetMaximum(13.98659);
tmp02->SetStats(0);
tmp02->SetLineStyle(0);
tmp02->SetMarkerStyle(20);
tmp02->GetXaxis()->SetTitle("m_{H} (GeV)");
tmp02->GetXaxis()->SetLabelFont(42);
tmp02->GetXaxis()->SetLabelOffset(0.01);
tmp02->GetXaxis()->SetTitleSize(0.05);
tmp02->GetXaxis()->SetTickLength(0.02);
tmp02->GetXaxis()->SetTitleOffset(1.08);
tmp02->GetXaxis()->SetTitleFont(42);
tmp02->GetYaxis()->SetTitle("95% CL limit on #sigma/#sigma_{SM}");
tmp02->GetYaxis()->SetLabelFont(42);
tmp02->GetYaxis()->SetLabelOffset(0.007);
tmp02->GetYaxis()->SetTitleSize(0.05);
tmp02->GetYaxis()->SetTickLength(0.02);
tmp02->GetYaxis()->SetTitleOffset(1.56);
tmp02->GetYaxis()->SetTitleFont(42);
tmp02->GetZaxis()->SetLabelFont(42);
tmp02->GetZaxis()->SetLabelOffset(0.007);
tmp02->GetZaxis()->SetTitleSize(0.05);
tmp02->GetZaxis()->SetTickLength(0.02);
tmp02->GetZaxis()->SetTitleFont(42);
tmp02->Draw("AXIGSAME");
Double_t Graph0_fx3001[27] = {
200,
250,
300,
350,
400,
//.........这里部分代码省略.........
示例12: setStyle
makeLTauStack(TString name,TString file,TString dir,int s,TString labelX,TString units = "GeV",bool left=false,TString channel = "",bool log = false,bool dndm=false,bool doRatio = false)
{
setStyle();
float xR=0.45;
if(left)
xR=0.2;
if(doRatio){
TCanvas * c = new TCanvas(name,name,600,600);
}
else{
TCanvas * c = new TCanvas(name,name,600,600);
c->SetLeftMargin (0.18);
c->SetRightMargin (0.05);
c->SetTopMargin (0.08);
c->SetBottomMargin (0.15);
}
c->cd();
if(doRatio){
TPad * plotPad = new TPad("pad1","",0.0,0.3,1.0,1.0);
plotPad->SetLeftMargin (0.18);
plotPad->SetTopMargin (0.10);
plotPad->SetRightMargin (0.07);
plotPad->SetBottomMargin(0.03);
TPad * ratioPad = new TPad("pad2","",0.0,0.0,1.0,0.3);
ratioPad->SetLeftMargin (0.18);
ratioPad->SetTopMargin (0.00);
ratioPad->SetRightMargin (0.07);
ratioPad->SetBottomMargin(0.30);
ratioPad->SetGridy(1);
}
else{
TPad * plotPad = new TPad("pad1","",0.0,0.0,1.0,1.0);
plotPad->SetLeftMargin (0.18);
plotPad->SetRightMargin (0.05);
plotPad->SetTopMargin (0.08);
plotPad->SetBottomMargin (0.15);
}
plotPad->Draw();
plotPad->cd();
TFile *f = new TFile(file);
TH1F * data = (TH1F*)(f->Get(dir+"/data_obs"));
if (dndm) convertToDNDM(data);
applyDATAStyle(data);
TH1F * QCD = (TH1F*)(f->Get(dir+"/QCD"));
if (dndm) convertToDNDM(QCD);
applyStyle(QCD,kMagenta-10,1,1001);
TH1F * ttbar = (TH1F*)(f->Get(dir+"/TT"));
if (dndm) convertToDNDM(ttbar);
applyStyle(ttbar,kBlue-8,1,1001);
if(channel == "#tau_{e}#tau_{h}"){
TH1F * EWK = (TH1F*)(f->Get(dir+"/W"));
EWK->Add((TH1F*)(f->Get(dir+"/VV")));
if (dndm) convertToDNDM(EWK);
applyStyle(EWK,kRed+2,1,1001);
if(f->Get(dir+"/ZL")!=0)
TH1F * ZEE = (TH1F*)(f->Get(dir+"/ZL"));
if(f->Get(dir+"/ZJ")!=0)
ZEE->Add((TH1F*)(f->Get(dir+"/ZJ")));
if(f->Get(dir+"/ZLL")!=0)
TH1F * ZEE = (TH1F*)(f->Get(dir+"/ZLL")));
if (dndm) convertToDNDM(ZEE);
applyStyle(ZEE,kAzure+2,1,1001);
}
示例13: fit
//.........这里部分代码省略.........
leg->SetBorderSize(0);
leg->SetTextSize(0.04);
leg->SetTextFont(42);
leg->SetFillStyle(0);
leg->AddEntry(h,"Data","pl");
leg->AddEntry(f,"Fit","l");
leg->AddEntry(mass,"D^{0}+#bar{D^{#lower[0.2]{0}}} Signal","f");
leg->AddEntry(massSwap,"K-#pi swapped","f");
leg->AddEntry(background,"Combinatorial","l");
leg->Draw("same");
TLatex* texCms = new TLatex(0.18,0.93, "#scale[1.25]{CMS} Preliminary");
texCms->SetNDC();
texCms->SetTextAlign(12);
texCms->SetTextSize(0.04);
texCms->SetTextFont(42);
texCms->Draw();
TLatex* texCol = new TLatex(0.96,0.93, Form("%s #sqrt{s_{NN}} = 5.02 TeV",collisionsystem.Data()));
texCol->SetNDC();
texCol->SetTextAlign(32);
texCol->SetTextSize(0.04);
texCol->SetTextFont(42);
texCol->Draw();
TLatex* texPt = new TLatex(0.22,0.78,Form("%.1f < p_{T} < %.1f GeV/c",ptmin,ptmax));
texPt->SetNDC();
texPt->SetTextFont(42);
texPt->SetTextSize(0.04);
texPt->SetLineWidth(2);
texPt->Draw();
TLatex* texY = new TLatex(0.22,0.83,"|y| < 1.0");
texY->SetNDC();
texY->SetTextFont(42);
texY->SetTextSize(0.04);
texY->SetLineWidth(2);
texY->Draw();
TLatex* texYield = new TLatex(0.22,0.73,Form("N_{D} = %.0f #pm %.0f",yield,yieldErr));
texYield->SetNDC();
texYield->SetTextFont(42);
texYield->SetTextSize(0.04);
texYield->SetLineWidth(2);
texYield->Draw();
c->SaveAs(Form("plotFits/DMass_expo_%s_%.0f_%.0f.pdf",collisionsystem.Data(),ptmin,ptmax));
TCanvas* cPull = new TCanvas(Form("cPull_%.0f_%.0f",ptmin,ptmax),"",600,700);
TH1D* hPull = (TH1D*)h->Clone("hPull");
for(int i=0;i<h->GetNbinsX();i++)
{
Double_t nfit = f->Integral(h->GetBinLowEdge(i+1),h->GetBinLowEdge(i+1)+h->GetBinWidth(i+1))/h->GetBinWidth(i+1);
hPull->SetBinContent(i+1,(h->GetBinContent(i+1)-nfit)/h->GetBinError(i+1));
hPull->SetBinError(i+1,0);
}
hPull->SetMinimum(-4.);
hPull->SetMaximum(4.);
hPull->SetYTitle("Pull");
hPull->GetXaxis()->SetTitleOffset(1.);
hPull->GetYaxis()->SetTitleOffset(0.65);
hPull->GetXaxis()->SetLabelOffset(0.007);
hPull->GetYaxis()->SetLabelOffset(0.007);
hPull->GetXaxis()->SetTitleSize(0.12);
hPull->GetYaxis()->SetTitleSize(0.12);
hPull->GetXaxis()->SetLabelSize(0.1);
hPull->GetYaxis()->SetLabelSize(0.1);
hPull->GetYaxis()->SetNdivisions(504);
TLine* lPull = new TLine(1.7, 0, 2., 0);
lPull->SetLineWidth(1);
lPull->SetLineStyle(7);
lPull->SetLineColor(1);
TPad* pFit = new TPad("pFit","",0,0.3,1,1);
pFit->SetBottomMargin(0);
pFit->Draw();
pFit->cd();
h->Draw("e");
background->Draw("same");
mass->Draw("same");
massSwap->Draw("same");
f->Draw("same");
leg->Draw("same");
texCms->Draw();
texCol->Draw();
texPt->Draw();
texY->Draw();
texYield->Draw();
cPull->cd();
TPad* pPull = new TPad("pPull","",0,0,1,0.3);
pPull->SetTopMargin(0);
pPull->SetBottomMargin(0.3);
pPull->Draw();
pPull->cd();
hPull->Draw("p");
lPull->Draw();
cPull->cd();
cPull->SaveAs(Form("plotFits/DMass_expo_%s_%.0f_%.0f_Pull.pdf",collisionsystem.Data(),ptmin,ptmax));
return mass;
}
示例14: createPlot
//.........这里部分代码省略.........
histV1->Draw(); // Draw old histo first, ratio is new/old
histV2->Draw("sames");
mainpad->Update();
TPaveStats *st1 = (TPaveStats*)(histV1->GetListOfFunctions()->FindObject("stats"));
st1->SetX1NDC(0.77);
st1->SetY1NDC(0.80);
st1->SetX2NDC(0.98);
st1->SetY2NDC(0.97);
Double_t defaulth = st1->GetY2NDC() - st1->GetY1NDC();
Double_t gaph = 0.02;
TPaveStats *st2 = (TPaveStats*)(histV2->GetListOfFunctions()->FindObject("stats"));
st2->SetX1NDC(0.77);
st2->SetY1NDC(st1->GetY1NDC() - 1.0*defaulth - gaph);
st2->SetX2NDC(0.98);
st2->SetY2NDC(st1->GetY1NDC() - gaph);
TLegend *leg = new TLegend(0.32,0.86,0.76,0.97);
leg->SetTextSize(0.042);
leg->SetTextFont(42);
leg->SetFillColor(10);
leg->SetBorderSize(1); // no frame, no shadow
leg->AddEntry(histV1, V1_V1run, "L" );
leg->AddEntry(histV2, V2_V2run, "L" );
leg->Draw("SAME");
// Draw ratio histogram
if (DrawRatio){
canvas->cd();
TPad* respad = new TPad("respad","respad",0.0,0.78,1.0,0.95);
respad->SetTopMargin(1.05);
respad->Draw();
respad->cd();
TH1F* hratio = (TH1F*) histV2->Clone("hratio");
hratio->Divide(histV1);
hratio->SetMaximum(hratio->GetMaximum()*1.1);
hratio->SetMinimum(hratio->GetMinimum()/1.1);
//if (hratio->GetMinimum()==0.0) hratio->SetMinimum(1.0/hratio->GetMaximum());
// hratio->SetMinimum(1.0/hratio->GetMaximum());
hratio->GetYaxis()->SetLabelSize(0.1);
// hratio->GetYaxis()->SetRangeUser(0,2);
hratio->GetXaxis()->SetLabelSize(0);
hratio->GetXaxis()->SetTitleSize(0);
hratio->GetYaxis()->SetTitleSize(0.22);
hratio->GetYaxis()->SetTitleOffset(0.26);
hratio->GetYaxis()->SetLabelSize(0.2);
hratio->GetYaxis()->SetNdivisions(5);
hratio->GetYaxis()->SetTitle("NEW/REF");
hratio->Draw();
}
// Compare parameters of histograms
double Entries1 = histV1->GetEntries();
double Entries2 = histV2->GetEntries();
if (Entries1 != Entries2) {
std::cout<<" Difference in # of ENTRIES for " <<hname<< std::endl;
std::cout<<"\t Entries1 = " << Entries1 << "\t Entries2 = " << Entries2 << std::endl;
}
double Mean1 = histV1->GetMean();
double Mean2 = histV2->GetMean();
if (Mean1 != Mean2) {
std::cout<<" Difference in MEANS for " <<hname<< std::endl;
示例15: DrawGraphs
void SingleAnalysis::DrawGraphs()
{
std::cout << "Drawing graphs" << std::endl;
// special case for erec and deviation
m_pERecCanvas->cd();
TPad *pERecPad = new TPad("ERecPad", "ERecPad", 0.02, 0.37, 0.95, 0.99);
pERecPad->Draw();
pERecPad->cd();
pERecPad->Range(-19.23077,0.01,96.15385,1428.571);
pERecPad->SetFillColor(0);
pERecPad->SetBorderMode(0);
pERecPad->SetBorderSize(2);
pERecPad->SetTickx(1);
pERecPad->SetTicky(1);
pERecPad->SetLeftMargin(0.1666667);
pERecPad->SetRightMargin(0.01);
pERecPad->SetTopMargin(0.02);
pERecPad->SetBottomMargin(0.0);
pERecPad->SetFrameLineWidth(1);
pERecPad->SetFrameBorderMode(0);
m_canvasMultiGraphMap[E_REC].second->Draw("ap");
this->PostDrawMultiGraph(E_REC, m_canvasMultiGraphMap[E_REC].second);
TLegend *pLegend = pERecPad->BuildLegend();
pLegend->SetBorderSize(0);
pLegend->SetLineColor(0);
pLegend->SetLineStyle(0);
pLegend->SetLineWidth(1);
pLegend->SetFillColor(0);
pLegend->SetFillStyle(0);
pLegend->SetTextSize(0.04);
pERecPad->Modified();
m_pERecCanvas->cd();
TPad *pERecDeviationPad = new TPad("ERecDeviationPad", "ERecDeviationPad", 0.02, 0, 0.95, 0.37);
pERecDeviationPad->Draw();
pERecDeviationPad->cd();
pERecDeviationPad->Range(-19.23077,-0.3993507,96.15385,0.25);
pERecDeviationPad->SetFillColor(0);
pERecDeviationPad->SetBorderMode(0);
pERecDeviationPad->SetBorderSize(2);
pERecDeviationPad->SetTickx(1);
pERecDeviationPad->SetTicky(1);
pERecDeviationPad->SetLeftMargin(0.1666667);
pERecDeviationPad->SetRightMargin(0.01);
pERecDeviationPad->SetTopMargin(0);
pERecDeviationPad->SetBottomMargin(0.23);
pERecDeviationPad->SetFrameLineWidth(1);
pERecDeviationPad->SetFrameBorderMode(0);
m_canvasMultiGraphMap[E_REC_DEVIATION].second->Draw("ap");
TF1 *pLin = new TF1("lin", "0", 0, 90);
pLin->SetLineColor(kBlack);
pLin->SetLineWidth(1);
pLin->SetLineStyle(2);
pLin->Draw("same");
this->PostDrawMultiGraph(E_REC_DEVIATION, m_canvasMultiGraphMap[E_REC_DEVIATION].second);
pERecDeviationPad->Modified();
for(CanvasMultiGraphMap::iterator graphIter = m_canvasMultiGraphMap.begin(), graphEndIter = m_canvasMultiGraphMap.end() ;
graphEndIter != graphIter ; ++graphIter)
{
if(graphIter->first == E_REC || graphIter->first == E_REC_DEVIATION)
continue;
graphIter->second.first->cd();
graphIter->second.second->Draw("ap");
this->PostDrawMultiGraph(graphIter->first, graphIter->second.second);
TLegend *pLegend = graphIter->second.first->BuildLegend();
pLegend->SetBorderSize(0);
pLegend->SetLineColor(0);
pLegend->SetLineStyle(1);
pLegend->SetLineWidth(1);
pLegend->SetFillColor(0);
pLegend->SetFillStyle(0);
pLegend->SetTextSize(0.04);
}
}