Difference between revisions of "Lmd eta three pion hlu"
From Lmdwiki
Jump to navigationJump to searchLine 75: | Line 75: | ||
<tr> | <tr> | ||
<td>[[File:Side band subtracted standard gaussian fit 1sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width:1, Sigma: 1 Original magnitude: 3.98942e+02; fitted magnitude: 3.31002e+02]]</td> | <td>[[File:Side band subtracted standard gaussian fit 1sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width:1, Sigma: 1 Original magnitude: 3.98942e+02; fitted magnitude: 3.31002e+02]]</td> | ||
− | <td>[[File:Side band subtracted standard gaussian fit 0.5sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width: | + | <td>[[File:Side band subtracted standard gaussian fit 0.5sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width:0.5, Sigma: 1 Original magnitude: 1.99471e+02; fitted magnitude: 1.91370e+02]]</td> |
− | <td>[[File:Side band subtracted standard gaussian fit 2sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width: | + | <td>[[File:Side band subtracted standard gaussian fit 2sigma.png|thumb|left|300px|fit of side-band subtracted Gaussian. bin width:2, Sigma: 1 Original magnitude: 7.97884e+02; fitted magnitude: 2.49810e+02]]</td> |
</tr> | </tr> | ||
</table> | </table> | ||
Line 127: | Line 127: | ||
</pre> | </pre> | ||
+ | |||
===Test with background=== | ===Test with background=== | ||
<table> | <table> |
Revision as of 14:19, 17 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:
test(){ const float NEvent=1e7; const int NBin=50; const float Low=-5; const float High=5; const float BinWidth=(High-Low)/NBin; TH1D* h1=new TH1D("test","test",NBin,Low,High); h1->FillRandom("gaus",NEvent); 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","-[3]*[3]/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/([2]**4))"); func->FixParameter(2,1); func->FixParameter(0,NEvent/sqrt(2*3.1416)/1*BinWidth); func->FixParameter(1,0); func->FixParameter(3,BinWidth); 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(); }
Test with larg bin width
Error creating thumbnail: File missing |
Error creating thumbnail: File missing |
Error creating thumbnail: File missing |
test(){ const float NEvent=1e3; const int NBin=5; const float Low=-5; const float High=5; const float BinWidth=(High-Low)/NBin; TRandom3 random(0); TH1D* h1=new TH1D("test","test",NBin,Low,High); h1->FillRandom("gaus",NEvent); 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* funcFix=new TF1("fit_fix","-[3]*[3]/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*ga\ us(0)/([2]**4))"); funcFix->FixParameter(2,1); funcFix->FixParameter(0,NEvent/sqrt(2*3.1416)/1*BinWidth); funcFix->FixParameter(1,0); funcFix->FixParameter(3,BinWidth); funcFix->SetLineColor(kRed); h2->Fit("fit_fix"); TF1* func=new TF1("fit","-[3]*[3]/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/(\ [2]**4))"); func->FixParameter(2,1); // func->FixParameter(0,NEvent/sqrt(2*3.1416)/1*BinWidth); func->FixParameter(1,0); func->FixParameter(3,BinWidth); func->SetLineColor(kBlue); 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(); }
Test with background
Error creating thumbnail: File missing |
Error creating thumbnail: File missing |
test(){ const float NEvent=1e5; const float NSignal=1e5; const int NBin=20; const float Low=-5; const float High=5; const float BinWidth=(High-Low)/NBin; TRandom3 random(0); TH1D* h1=new TH1D("test","test",NBin,Low,High); h1->FillRandom("pol2",NEvent); h1->FillRandom("gaus",NSignal); 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* funcFix=new TF1("fit_fix","-[3]*[3]/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/([2]**4))"); funcFix->FixParameter(2,1); funcFix->FixParameter(0,NSignal/sqrt(2*3.1416)/1*BinWidth); funcFix->FixParameter(1,0); funcFix->FixParameter(3,BinWidth); funcFix->SetLineColor(kRed); h2->Fit("fit_fix"); TF1* func=new TF1("fit","-[3]*[3]/2*(-gaus(0)/[2]/[2]+(x-[1])*(x-[1])*gaus(0)/([2]**4))"); func->FixParameter(2,1); // func->FixParameter(0,NEvent/sqrt(2*3.1416)/1*BinWidth); func->FixParameter(1,0); func->FixParameter(3,BinWidth); func->SetLineColor(kBlue); h2->Fit("fit","+"); TCanvas* c2=new TCanvas("c2","c2",696,474); h2->Draw(); TCanvas* c1=new TCanvas("c1","c1",696,474); TF1* signal_back=new TF1("signal_back","gaus(0)+pol2(2)"); signal_back->SetParameters(NEvent/sqrt(2*3.1416)/1*BinWidth,0.0,1.0,0.0,0.0,0.0); h1->Fit("signal_back"); h1->Draw(); }