#include #include #include #include #include #include "TTree.h" #include "TFile.h" #include "TROOT.h" #include //MyFunction *half = new MyFunction("(h1->GetMaximum-h1->GetMinimum)/2"); Double_t myfunction(Double_t *x, Double_t *par) { Float_t xx =x[0]; //Double_t f = mid+par[0]*sin(2*pi*(xx-par[1])/par[2]); Double_t f = par[3]+par[0]*sin(2*TMath::Pi()*(xx-par[1])/par[2]); return f; } void mk() { Int_t counts; ifstream in; in.open("foo.dat"); TFile *f = new TFile("Datei.root","RECREATE"); TH1D *h1 = new TH1D("h1","test",1000,0,1000); Int_t min = kMaxInt; Int_t max = 0; Int_t nlines = 0; while(!in.eof()) { in >> counts; if(countsmax) max = counts; if (!in.good()) break; h1->Fill(nlines,counts); nlines++; } Double_t mid = (max-min)/2; TF1 *fit = new TF1("fit",myfunction,0,2,4); fit->SetParameters(40,50,100,mid); //h1->Fit("fit","+QEM"); h1->Fit("fit","","",0+20,nlines-20); in.close(); h1->Draw(); f->Write(); }