Difference between revisions of "Lmd eta three pion hlu"
From Lmdwiki
Jump to navigationJump to searchLine 30: | Line 30: | ||
[[File:side_band_subtracted_standard_gaussian_fit.png]] | [[File:side_band_subtracted_standard_gaussian_fit.png]] | ||
+ | |||
+ | source code: | ||
+ | <pre | ||
+ | test(){ | ||
+ | TH1D* h1=new TH1D("test","test",50,-5,+5); | ||
+ | h1->FillRandom("gaus",1e7); | ||
+ | TH1D* h2=h1->Clone("subtracted"); | ||
+ | for(int i=2;i<100;i++){ | ||
+ | float middle=h1->GetBinContent(i); | ||
+ | float left=h1->GetBinContent(i-1); | ||
+ | float right=h1->GetBinContent(i+1); | ||
+ | float result=middle-(left+right)/2.0; | ||
+ | float error=sqrt(middle+left/2.0+right/2.0); | ||
+ | h2->SetBinContent(i,result); | ||
+ | h2->SetBinError(i,error); | ||
+ | } | ||
+ | |||
+ | TF1* func=new TF1("fit","-0.2*0.2/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/([2]**4))"); | ||
+ | func->FixParameter(2,1); | ||
+ | func->FixParameter(0,1e7/sqrt(2*3.1416)/1*(10.0/50.0)); | ||
+ | func->FixParameter(1,0); | ||
+ | h2->Fit("fit"); | ||
+ | TCanvas* c1=new TCanvas("c1","c1",696,474); | ||
+ | h2->Draw(); | ||
+ | TCanvas* c2=new TCanvas("c2","c2",696,474); | ||
+ | h1->Fit("gaus"); | ||
+ | h1->Draw(); | ||
+ | } | ||
+ | </pre> | ||
==reference== | ==reference== |
Revision as of 21:09, 10 March 2014
Statistics
Fit missing mass of proton
Error creating thumbnail: File missing |
Error creating thumbnail: File missing |
More
File:Eta and eta prime two pion.pdf
Form of side-band subtraction histograms
Question: Suppose there is an original function (e.g. Gaussian), what is the form of the function after bin-by-bin side-band subtraction
Answer: Suppose the function is y=f(x). The side-band subtraction makes a new function:
Test of the formula
10M events of Gaussian distribution were generated for a histograms:
side-band subtracted and plot together with the function:
source code:
FillRandom("gaus",1e7); TH1D* h2=h1->Clone("subtracted"); for(int i=2;i<100;i++){ float middle=h1->GetBinContent(i); float left=h1->GetBinContent(i-1); float right=h1->GetBinContent(i+1); float result=middle-(left+right)/2.0; float error=sqrt(middle+left/2.0+right/2.0); h2->SetBinContent(i,result); h2->SetBinError(i,error); } TF1* func=new TF1("fit","-0.2*0.2/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/([2]**4))"); func->FixParameter(2,1); func->FixParameter(0,1e7/sqrt(2*3.1416)/1*(10.0/50.0)); func->FixParameter(1,0); h2->Fit("fit"); TCanvas* c1=new TCanvas("c1","c1",696,474); h2->Draw(); TCanvas* c2=new TCanvas("c2","c2",696,474); h1->Fit("gaus"); h1->Draw(); }