T49SumGaus
class description - source file - inheritance tree (.pdf)
private:
T49SumGaus()
Int_t Binom(Int_t n, Int_t k)
Double_t OnePeak(Double_t x, Double_t* par)
void PolyFit(const Int_t NPoints, Float_t* x, Float_t* y, Float_t* err, Int_t Order, Float_t* Result)
public:
T49SumGaus(Char_t* name)
~T49SumGaus()
static TClass* Class()
void DrawPeaks(Int_t LineWidth = 2)
virtual Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0)
virtual Double_t EvalPar(const Double_t* x, const Double_t* params = 0)
Float_t GetAmpError(Int_t i)
Float_t GetAmplitude(Int_t i)
Float_t GetAsymmetry()
void GetBBPars(Float_t& c, Float_t& d, Float_t& e, Float_t& f)
Float_t GetMaximum(Int_t i)
Float_t GetPosError(Int_t i)
Float_t GetPosition(Int_t i)
Float_t GetPowSigScale()
Float_t GetPtot()
Float_t GetRelPosition(Int_t i)
Float_t GetRelRise(Int_t part)
Float_t GetResError()
Float_t GetResolution()
Float_t GetSigCut(Int_t part, Float_t frac = 0.9)
Float_t GetStep()
void Init(TH1* Hist, Char_t* Opt = "")
void InitPositions(Float_t pipos)
virtual TClass* IsA() const
Bool_t IsAmplitudeFixed(Int_t i)
Float_t RelRise(Float_t Ptot, Int_t Part)
void ResetFreePosition(Int_t i)
void RestoreParameters()
void SetAmplitude(Int_t i, Float_t x, Float_t lowlim, Float_t uplim)
void SetAmplitude(Int_t i, Float_t x)
void SetAsymmetry(Float_t asym)
void SetAsymmetry(Float_t asym, Float_t lowlim, Float_t uplim)
void SetBBPars(Float_t c, Float_t d, Float_t e, Float_t f)
void SetFixedAmplitude(Int_t i, Float_t x)
void SetFixedAmplitude(Int_t i)
void SetFixedPosition(Int_t i, Float_t x)
void SetFixedPosition(Int_t i)
void SetFree()
void SetFreePosition(Int_t i, Float_t x)
void SetFreePosition(Int_t i)
void SetNpHist(TH1* Hist)
void SetPosition(Int_t i, Float_t x, Float_t lowlim = 0, Float_t uplim = 0)
void SetPowSigScale(Float_t power)
void SetPtot(Float_t p)
void SetResolution(Float_t x)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void StoreCovMat()
void StoreParameters()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
Float_t fParaC Constants for rel rise parametrisation
Float_t fParaD
Float_t fParaE
Float_t fParaF
Float_t fPtot
Bool_t fAmpFix[4]
Double_t fStoredPars[10]
Double_t fStoredLowLim[10]
Double_t fStoredUpLim[10]
Bool_t fStored
TH1* fNpHist
Float_t fXstep
Float_t fYvals[801]
TObjArray* fGraphs ! To store the graphs for the different peaks
Bool_t fLinSigScale
Float_t fPowSigScale
Double_t fTailPar1
Double_t fTailPar2
public:
Double_t fCovMatMinuit[9][9]
Float_t fCovMat[9][9]
dE/dx fit function class
This is an interface to a TF1, used to fit dE/dx spectra. The
interface of this function is identical to the older
T49DedxFunction, but here the function consists of four peaks,
which are built up as sum of Gaussians with widths proportional to
1/sqrt(n_point). You have to specify a number-of-point-histogram
for initialization.
Note 1: The function has a finite precision, since internally, the
sum of gaussians is stored once and then rescaled according to the
parameters.
Note 2: The amplitude for each particle species is now equal to the
surface area of the corresponding peak. Use GetMaximum to get the
peak value.
Note 7 aug 2001:
Changed internal meaning of parameter 0. This parameter is now the
pion resolution, instead of relative resolution. For fitting stability.
T49SumGaus(Char_t* name): TF1()
TF1(name,(Double_t (*)(Double_t *, Double_t *)) 0,0.5,2.0,9)
~T49SumGaus()
void SetNpHist(TH1 *Hist)
Use this function to specify the number-of-points histogram.
Double_t EvalPar(const Double_t* x, const Double_t* params)
Double_t Eval(Double_t x, Double_t y, Double_t z)
Float_t GetSigCut(Int_t part, Float_t frac)
This function is still under study...
void SetFree()
Release bounds on relative positions (N.B. the pion position
is not affected)
void SetFreePosition(Int_t i,Float_t x)
Release bound on peak position i, and set position to x.
void SetFixedPosition(Int_t i,Float_t x)
Set fixed value for peak position i
void SetFreePosition(Int_t i)
Release bounds on position of peak i
void SetFixedPosition(Int_t i)
Fix position of peak i
void ResetFreePosition(Int_t i)
Set position to Bethe Bloch value, and
void SetPosition(Int_t i, Float_t x, Float_t lowlim, Float_t uplim)
Set position and bounds. (N.B.: the bounds of non-pion peaks
change with the pion peak position, since they are relative positions)
void InitPositions(Float_t pipos)
Sets pion position to pipos, and relative positions of other peaks
acoording to Bethe-Bloch parametrization
void SetAmplitude(Int_t i, Float_t x,Float_t lowlim, Float_t uplim)
Set the amplitude of a particle species. Note that the amplitudes
are properly normalised now. Therefore the Amplitude directly
provides the integral of each peak.
void SetAmplitude(Int_t i, Float_t x)
void SetFixedAmplitude(Int_t i, Float_t x)
Facility to fix the amplitude. Mainly used to fix amplitudes at zero.
void SetFixedAmplitude(Int_t i)
void SetResolution(Float_t x)
void SetAsymmetry(Float_t asym)
void SetAsymmetry(Float_t asym, Float_t lowlim, Float_t uplim)
Float_t GetPosition(Int_t i)
Float_t GetRelPosition(Int_t i)
Float_t GetAmplitude(Int_t i)
Float_t GetResolution()
Float_t GetMaximum(Int_t i)
This function returns the peak value of a single particle
species. Use this function for normalisations, etc.
Float_t GetAsymmetry()
Float_t GetPosError(Int_t i)
Use this function to get the errors after a Minuit fit. First
call StoreCovMat!
Float_t GetAmpError(Int_t i)
Use this function to get the errors after a Minuit fit. First
call StoreCovMat!
Float_t GetResError()
Use this function to get the errors after a Minuit fit. First
call StoreCovMat!
void StoreCovMat()
Store the covariance matrix from Minuit, in order to later
calculate errors on parameters.
void StoreParameters()
The class may hold one alternative set of parameters. This method
stores the parameters internally.
void RestoreParameters()
Sets the parameters to the values stored using StoreParameters().
Float_t GetRelRise(Int_t part)
Returns the value of dE/dx from the Bethe-Bloch-parametrization. First
call SetPtot()
void DrawPeaks(Int_t LineWidth)
Draws four peaks, one for each particle species.
void Init(TH1* Hist,Char_t* Opt)
This method uses the histogram to provide an estimate for the peak
positions, amplitudes and widths. Relies heavily on the Bethe-Bloch
parametrization, so first call SetPtot(). Option "V" triggers
verbose behaviour.
Float_t RelRise(Float_t Ptot, Int_t Part)
Returns expected dE/dx values, according to Bethe-Bloch parametrization
(Called by GetRelRise())
** Code provided by Christof Roland **
Double_t OnePeak(Double_t x, Double_t *par)
void PolyFit(const Int_t NPoints, Float_t* x, Float_t* y, Float_t* err, Int_t Order, Float_t* Result)
Fits polynomial of form par[0] + par[1]*x +par[2]*x^2, etc
Uses the provided errors as weights.
(Called internally by Init())
Int_t Binom(Int_t n,Int_t k)
Calculates binomial coefficient n over k.
Called by PolyFit()
Inline Functions
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
void SetBBPars(Float_t c, Float_t d, Float_t e, Float_t f)
void GetBBPars(Float_t& c, Float_t& d, Float_t& e, Float_t& f)
void SetPowSigScale(Float_t power)
Float_t GetPowSigScale()
void SetPtot(Float_t p)
Bool_t IsAmplitudeFixed(Int_t i)
Float_t GetPtot()
Float_t GetStep()
T49SumGaus T49SumGaus()
Last update: Thu Aug 17 15:33:50 2006
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.