Hi Michael,
I checked my modified version of your GEn PRL code into 'CVSROOT/
exp/gen/prl'. The new files 'TF1Lib.h,cc' contain the classes for
drawing error bands and Fourier transforms:
TH1Error - subclass of TH1D which calculates error band from
associated function (given in constructor).
TH1Fourier - subclass of TH1D which calculates radial Fourier
transform and associated error band (similar to above).
TF1Fourier - subclass of TF1, Fourier transform without error
band.
I modified 'GEnFitFunc.C' to construct 'TH1Error' classes instead
of regular TH1F. The (...,0) in the constructor delays calculation
of the error band. I removed the associated error propagation
calculation functions in 'GEnFitFuncLib.C'. I modified 'GEn_paper.C'
with statements like
hFriedrichWalcherError->CalcErrorBand(1);
hFriedrichWalcher2Error->CalcErrorBand(2);
for 1 and 2 sigma error bands. The histograms are draw the same way
as before. You can see the changes by
cvs diff -r 1.1 GEn_paper.C
I also added a section to the bottom to calculate the Fourier
transform, with a smoothed out error band, as discussed in the
meeting. There are a couple of lines using the new classes to
calculate the transform (without smoothing), which are commented out:
TH1Fourier* ft = new TH1Fourier(fTwoDipolesRfit,0,4);
ft->SetFillColor(6);
ft->Draw("e3same");
TF1Fourier* fn = new TF1Fourier(fTwoDipolesRfit,0,4);
fn->SetLineColor(2);
fn->Draw("same");
The last thing worth noting is that I introduced a new way of
accounting for the data of <r_n^2>. In steading of fixing one of the
parameters to give the right value of <r_n^2> and then explicitly
calculating the error in that parameter, I add
( ( r2n-f(p) ) / dr2n )^2
to the ChiSq function and keep all three parameters free in the two
dipole fit. The resulting error band is about 10-20% in places.
Technically, this is done still within the TGraph::Fit() framework by
adding an extra point to the world GEn data: r2n +/- dr2n at Q^2=-.
1, and then modifying the fit function to return 'r^2_n' at negative
Q^2. You don't see it because of the lower limit at Q^2=0. You can
find the changes in the functions
'fTwoDipolesRfit', etc, modified from 'fTwoDipolesRnn' in
'GEnFitFuncLib.C'
I used your code as the basis for the plots of the GEn rho_Breit.
Hope this helps,
--Chris
Dept. of Physics & Astronomy
University of Kentucky
373 C.-P. Building
Lexington, KY 40506-0055
859-257-2504 (office)
859-323-2846 (fax)
This archive was generated by hypermail 2.1.2 : Mon Feb 24 2014 - 14:07:33 EST