void plot2DSignalAnalytisch( TString filename, TString histogramName, TString xtitle = "x", TString ytitle = "y", double rebinx = 1, double rebiny = 1, double xtitleOffset = 1.1, double ytitleOffset = 1.3 ) { // {{{ InitgStyle(); //gStyle->SetOptStat(0); //gCanvas = new TCanvas("gCanvas", "gCanvas", 0, 0, 800, 600); LoadHistogramTH2D(histogramName , filename, 1.0, histogram);// Summe (SM //gCanvas->Clear(); histogram->GetXaxis()->SetTitle(xtitle); histogram->GetXaxis()->SetTitleOffset(xtitleOffset); histogram->GetYaxis()->SetTitle(ytitle); histogram->GetYaxis()->SetTitleOffset(ytitleOffset); //histogram->GetZaxis()->SetTitle("d^{2}#sigma / dM_{#bar{t}}dM_{t} [pb]"); //histogram->GetZaxis()->SetTitleOffset(ytitleOffset); // gCanvas->Update(); //TF2 *fitFunction = new TF2("fitFunction", HistoSum, -1, 1, -1, 1, 4); //allgemeine "return"-Varianten //fitFunction->SetParameters(0.9,0.,0.); TF2 *fitFunction = new TF2("fitFunction", HistoSum, -1, 1, -1, 1, 2); histogram->Fit(fitFunction, "N"); // for(int i =1; i<=5;i++){ // for(int j=1;j<=5;j++){ // cout << "Bininhalt("<<i<<","<<j<<"): " << histogram->GetBinContent(i,j) << endl; // } // } histogram->RebinX(rebinx); histogram->RebinY(rebiny); histogram->Draw("lego"); fitFunction->SetLineColor(kRed); fitFunction->SetLineWidth(0.5); fitFunction->Draw("same"); cout << fitFunction->GetChisquare()/fitFunction->GetNDF() << endl; //gCanvas->Print(epsFilename(filename, histogramName)+".eps"); //cout << histogram[0]->Integral() << endl; // }}} };
void annotation3d() { TCanvas *c = new TCanvas("c", "c", 600, 600); c->SetTheta(30); c->SetPhi(50); gStyle->SetOptStat(0); gStyle->SetHistTopMargin(0); gStyle->SetOptTitle(kFALSE); // Define and draw a surface TF2 *f = new TF2("f", "[0]*cos(x)*cos(y)", -1, 1, -1, 1); f->SetParameter(0, 1); double s = 1./f->Integral(-1, 1, -1, 1); f->SetParameter(0, s); f->SetNpx(50); f->SetNpy(50); f->GetXaxis()->SetTitle("x"); f->GetXaxis()->SetTitleOffset(1.4); f->GetXaxis()->SetTitleSize(0.04); f->GetXaxis()->CenterTitle(); f->GetXaxis()->SetNdivisions(505); f->GetXaxis()->SetTitleOffset(1.3); f->GetXaxis()->SetLabelSize(0.03); f->GetXaxis()->ChangeLabel(2,-1,-1,-1,kRed,-1,"X_{0}"); f->GetYaxis()->SetTitle("y"); f->GetYaxis()->CenterTitle(); f->GetYaxis()->SetTitleOffset(1.4); f->GetYaxis()->SetTitleSize(0.04); f->GetYaxis()->SetTitleOffset(1.3); f->GetYaxis()->SetNdivisions(505); f->GetYaxis()->SetLabelSize(0.03); f->GetZaxis()->SetTitle("dP/dx"); f->GetZaxis()->CenterTitle(); f->GetZaxis()->SetTitleOffset(1.3); f->GetZaxis()->SetNdivisions(505); f->GetZaxis()->SetTitleSize(0.04); f->GetZaxis()->SetLabelSize(0.03); f->SetLineWidth(1); f->SetLineColorAlpha(kAzure-2, 0.3); f->Draw("surf1 fb"); // Lines for 3D annotation double x[11] = {-0.500, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.500}; double y[11] = {-0.985, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 0.985}; double z[11]; for (int i = 0; i < 11; ++i) z[i] = s*cos(x[i])*cos(y[i]); TPolyLine3D *g2 = new TPolyLine3D(11, x, y, z); double xx[2] = {-0.5, -0.5}; double yy[2] = {-0.985, -0.985}; double zz[2] = {0.11, s*cos(-0.5)*cos(-0.985)}; TPolyLine3D *l2 = new TPolyLine3D(2, xx, yy, zz); g2->SetLineColor(kRed); g2->SetLineWidth(3); g2->Draw(); l2->SetLineColor(kRed); l2->SetLineStyle(2); l2->SetLineWidth(1); l2->Draw(); // Draw text Annotations TLatex *txt = new TLatex(0.05, 0, "f(y,x_{0})"); txt->SetTextFont(42); txt->SetTextColor(kRed); txt->Draw(); TLatex *txt1 = new TLatex(0.12, 0.52, "f(x,y)"); txt1->SetTextColor(kBlue); txt1->SetTextFont(42); txt1->Draw(); }