#include "TInterpreter.h" #include "TCanvas.h" #include "TSystem.h" #include "TStyle.h" #include "TFile.h" #include "TH2.h" #include "TNtuple.h" #include "TPaveLabel.h" #include "TPaveText.h" #include "TFrame.h" #include "TSystem.h" #include "TCint.h" Double_t Tr,U; Double_t Ta; Double_t Tf; Double_t dx; Double_t xmin,ymin; Double_t xmax,ymax; Int_t nbinsx,nbinsy; TProfile *hist2_Tr; TProfile *hist2_Ta; TH1D *hist2_Tf; TH2D *hist2_U; Double_t wurzel(Double_t a, Double_t n) { return pow(a, 1.0/n); } Double_t formel(Double_t *x, Double_t *par) { Double_t xx = x[0]; Int_t binx = hist2_Tf->GetXaxis()->FindBin(xx); Tf = hist2_Tf->GetBinContent(binx)+273.15; Tr=Tf; //Tr = wurzel(((U*U-par[0]*Ta*Ta+par[1]*Ta*Ta+par[0]*Ta*Ta)/par[1]),2); //Tr = wurzel(((x[0]-par[0]*Tf*Tf+par[1]*Tf*Tf+par[0]*Tf*Tf)/par[1]),2); //Tr = wurzel(((x[0]*x[0]*x[0]*x[0])-(5.67e-8*par[0]*Tf*Tf*Tf*Tf))/(5.67e-8*par[1]),4); //Tr=x[0]*par[1]+par[0]; //pol1 //Tr = par[0]*x[0]*x[0]*x[0]+par[1]*x[0]*x[0]+par[2]*x[0]+par[3]; //pol3 return (Tr-273.15); } void fitkalibpro () { TString dir = "C:/root/myroot/TMP/"; char datafile[] = ("c:/root/myroot/TMP/TMP32.root"); TFile *f = new TFile(datafile,"READ"); hist2_U = (TH2D*)f->Get("hist_2U"); hist2_Tr = (TProfile*)f->Get("hist_2Tr"); hist2_Ta = (TProfile*)f->Get("hist_2Ta"); hist2_Tf = (TH1D*)f->Get("hist_2Tf"); hist_Ta = (TProfile*)f->Get("hist_Ta"); TCanvas *c1 = new TCanvas("c1","Kalibrierungsmessung",10,10,700,400); c1->SetBorderMode(0); c1->SetFillColor(0); nbinsx = hist2_Tr->GetNbinsX(); nbinsy = hist2_Tr->GetNbinsX(); xmin = hist2_Tr->GetXaxis()->GetXmin(); xmax = hist2_Tr->GetXaxis()->GetXmax(); ymin = hist2_Tr->GetYaxis()->GetXmin(); ymax = hist2_Tr->GetYaxis()->GetXmax(); dx = hist2_Tr->GetBinWidth(1); hist2_Tr->SetTitle(";voltage in mV;temperature in #circC"); gStyle->SetOptStat(0); gStyle->SetOptFit(11); hist2_Tr->UseCurrentStyle(); hist2_Tr->SetMinimum(15.0); hist2_Tr->SetMaximum(75.0); hist2_Tr->GetXaxis()->SetLabelFont(42); hist2_Tr->GetXaxis()->SetTitleFont(42); hist2_Tr->GetYaxis()->SetLabelFont(42); hist2_Tr->GetYaxis()->SetTitleFont(42); hist2_Tr->GetXaxis()->SetLabelSize(0.05); hist2_Tr->GetXaxis()->SetTitleSize(0.05); hist2_Tr->GetYaxis()->SetLabelSize(0.05); hist2_Tr->GetYaxis()->SetTitleSize(0.05); TF1 *fTMP = new TF1("formel",formel,xmin,xmax,4); fTMP->SetNpx(50); fTMP->SetParameters(1.0,1.0,1.0,1.0); fTMP->SetLineColor(3); fTMP->SetLineWidth(2); hist2_Tr->Fit(fTMP,"MR"); hist2_Tf->Draw("same"); char runtext[] = Form("Fitkalib"); TText text; text.SetTextSize(0.05); text.SetTextAlign(31); text.SetTextFont(42); text.DrawTextNDC(0.4,0.85,runtext); text.SetTextAlign(22); TLatex ltext; ltext.SetTextSize(0.05); ltext.SetTextAlign(11); ltext.SetTextFont(42); TBox box; box.SetLineWidth(1); box.SetLineColor(0); box.SetLineStyle(1); box.SetFillStyle(1001); }