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;
// }}}
};
Esempio n. 2
0
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();
}