ROOT logo
AliRoot » PWGHF » VERTEXINGHF » AliHFMassFitter

class AliHFMassFitter: public TNamed


 AliHFMassFitter for the fit of invariant mass distribution
 of charmed mesons

 Author: C.Bianchin, chiara.bianchin@pd.infn.it

Function Members (Methods)

public:
AliHFMassFitter()
AliHFMassFitter(const AliHFMassFitter& mfit)
AliHFMassFitter(const TH1F* histoToFit, Double_t minvalue, Double_t maxvalue, Int_t rebin = 1, Int_t fittypeb = kExpo, Int_t fittypes = kGaus)
virtual~AliHFMassFitter()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
voidBackground(Double_t nOfSigma, Double_t& background, Double_t& errbackground) const
voidBackground(Double_t min, Double_t max, Double_t& background, Double_t& errbackground) const
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
voidDrawFit(Double_t nsigma = 3) const
voidDrawHere(TVirtualPad* pd, Double_t nsigma = 3, Int_t writeFitInfo = 1) const
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
voidFillNtuParam()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tFitFunction4Bkg(Double_t* x, Double_t* par)
Double_tFitFunction4MassDistr(Double_t* x, Double_t* par)
Double_tFitFunction4Sgn(Double_t* x, Double_t* par)
TF1*GetBackgroundFullRangeFunc()
TF1*GetBackgroundRecalcFunc()
Int_tGetBinN() const
Double_tGetChiSquare() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
voidGetFitPars(Float_t* pars) const
Bool_t*GetFixParam() const
Bool_tGetFixThisParam(Int_t thispar) const
TH1F*GetHistoClone() const
virtual const char*TObject::GetIconName() const
TF1*GetMassFunc()
Double_tGetMaxRangeFit() const
Double_tGetMean() const
Double_tGetMeanUncertainty() const
Double_tGetMinRangeFit() const
virtual const char*TNamed::GetName() const
Int_tGetNFinalPars() const
TNtuple*GetNtuParam() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TVirtualPad*GetPad(Double_t nsigma = 3, Int_t writeFitInfo = 1) const
voidGetRangeFit(Double_t& minvalue, Double_t& maxvalue) const
Double_tGetRawYield() const
Double_tGetRawYieldError() const
Double_tGetReducedChiSquare() const
Int_tGetReflectionSigmaFactor() const
voidGetSideBandsBounds(Int_t& lb, Int_t& hb) const
Double_tGetSigma() const
Double_tGetSigmaUncertainty() const
virtual const char*TNamed::GetTitle() const
voidGetTypeOfFit(Bool_t& background, Int_t& typeb) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitNtuParam(TString ntuname = "ntupar")
virtual voidTObject::Inspect() constMENU
voidIntS(Float_t* valuewitherror) const
Double_tIntTot() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
Bool_tMassFitter(Bool_t draw = kTRUE)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
TNtuple*NtuParamOneShot(TString ntuname = "ntupar")
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliHFMassFitter&operator=(const AliHFMassFitter& mfit)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidPrintParTitles() const
virtual Int_tTObject::Read(const char* name)
voidRebinMass(Int_t bingroup = 1)
virtual voidTObject::RecursiveRemove(TObject* obj)
Bool_tRefitWithBkgOnly(Bool_t draw = kTRUE)
voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetBinN(Int_t newbinN)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetDefaultFixParam()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetFixGaussianMean(Double_t mean = 1.865, Bool_t fixpar = kTRUE)
voidSetFixGaussianSigma(Double_t sigma = 0.012, Bool_t fixpar = kTRUE)
voidSetFixParam(Bool_t* fixpar)
Bool_tSetFixThisParam(Int_t thispar, Bool_t fixpar)
voidSetHisto(const TH1F* histoToFit)
voidSetInitialGaussianMean(Double_t mean)
voidSetInitialGaussianSigma(Double_t sigma)
voidSetMaxRangeFit(Double_t maxvalue)
voidSetMinRangeFit(Double_t minvalue)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetRangeFit(Double_t minvalue, Double_t maxvalue)
voidSetReflectionSigmaFactor(Int_t constant)
voidSetSideBands(Bool_t onlysidebands = kTRUE)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidSetType(Int_t fittypeb, Int_t fittypes)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseChi2Fit()
voidSetUseLikelihoodFit()
voidSetUseLikelihoodWithWeightsFit()
virtual voidShowMembers(TMemberInspector&)
voidSignal(Double_t nOfSigma, Double_t& signal, Double_t& errsignal) const
voidSignal(Double_t min, Double_t max, Double_t& signal, Double_t& errsignal) const
voidSignificance(Double_t nOfSigma, Double_t& significance, Double_t& errsignificance) const
voidSignificance(Double_t min, Double_t max, Double_t& significance, Double_t& errsignificance) const
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
voidWriteCanvas(TString userIDstring = "", TString path = "./", Double_t nsigma = 3, Int_t writeFitInfo = 1, Bool_t draw = kFALSE) const
voidWriteHisto(TString path = "./") const
voidWriteNtuple(TString path = "./") const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidAddFunctionsToHisto()
Bool_tCheckRangeFit()
voidComputeNFinalPars()
voidComputeParSize()
voidPlotFit(TVirtualPad* pd, Double_t nsigma = 3, Int_t writeFitInfo = 1) const
Bool_tSideBandsBounds()

Data Members

public:
enum ETypeOfBkg { kExpo
kLin
kPol2
kNoBk
kPow
kPowEx
};
enum ETypeOfSgn { kGaus
k2Gaus
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
TList*fContourGraphTList of TGraph containing contour plots
TStringfFitOptionL, LW or Chi2
Float_t*fFitPars[fParsSize] array of fit parameters
Bool_t*fFixPar[fNFinalPars] for each par if kTRUE it is fixed in fit
Double_tfMasssignal gaussian mean value
Double_tfMassErrerr signal gaussian mean value
Int_tfNFinalParsnumber of parameters of the final function
Int_tfNbinnumber of bins
Int_tfParsSizesize of fFitPars array
Double_tfRawYieldsignal gaussian integral
Double_tfRawYieldErrerr on signal gaussian integral
Int_tfSideBandlleft side band limit (bin number)
Int_tfSideBandrright side band limit (bin number)
Bool_tfSideBandskTRUE = only side bands considered
Double_tfSigmaSgnsignal gaussian sigma
Double_tfSigmaSgnErrerr signal gaussian sigma
Bool_tfWithBkgsignal+background (kTRUE) or signal only (kFALSE)
Int_tfcounterinternal counter
Int_tffactornumber to multiply to the sigma of the signal to obtain the reflected gaussian
TH1F*fhistoInvMasshistogram to fit
Int_tfmaxBinMassbin corresponding to fmaxMass
Double_tfmaxMassupper mass limit
Int_tfminBinMassbin corresponding to fminMass
Double_tfminMasslower mass limit
TNtuple*fntuParamcontains fit parameters
Int_tftypeOfFit4Bkg0 = exponential; 1 = linear; 2 = pol2
Int_tftypeOfFit4Sgn0 = gaus; 1 = gaus+gaus broadened

Class Charts

Inheritance Chart:
TNamed
AliHFMassFitter

Function documentation

AliHFMassFitter()
 default constructor
AliHFMassFitter(const TH1F* histoToFit, Double_t minvalue, Double_t maxvalue, Int_t rebin = 1, Int_t fittypeb = kExpo, Int_t fittypes = kGaus)
 standard constructor
AliHFMassFitter(const AliHFMassFitter& mfit)
copy constructor
~AliHFMassFitter()
AliHFMassFitter& operator=(const AliHFMassFitter& mfit)
void ComputeNFinalPars()
void ComputeParSize()
void SetDefaultFixParam()
Bool_t SetFixThisParam(Int_t thispar, Bool_t fixpar)
Bool_t GetFixThisParam(Int_t thispar) const
return the value of fFixPar[thispar]
void SetHisto(const TH1F* histoToFit)
void SetType(Int_t fittypeb, Int_t fittypes)
void Reset()
void InitNtuParam(TString ntuname = "ntupar")
void FillNtuParam()
 Fill ntuple with fit parameters
TNtuple* NtuParamOneShot(TString ntuname = "ntupar")
 Create, fill and return ntuple with fit parameters
void RebinMass(Int_t bingroup = 1)
 Rebin invariant mass histogram
Double_t FitFunction4MassDistr(Double_t* x, Double_t* par)
 Fit function for signal+background
Double_t FitFunction4Sgn(Double_t* x, Double_t* par)
 Fit function for the signal
Double_t FitFunction4Bkg(Double_t* x, Double_t* par)
 Fit function for the background
Bool_t SideBandsBounds()
void GetSideBandsBounds(Int_t& lb, Int_t& hb) const
Bool_t CheckRangeFit()
check if the limit of the range correspond to the limit of bins. If not reset the limit to the nearer value which satisfy this condition
Bool_t MassFitter(Bool_t draw = kTRUE)
 Main method of the class: performs the fit of the histogram
Bool_t RefitWithBkgOnly(Bool_t draw = kTRUE)
Double_t GetChiSquare() const
Get Chi^2 method
Double_t GetReducedChiSquare() const
Get reduced Chi^2 method
void GetFitPars(Float_t* pars) const
 Return fit parameters
void IntS(Float_t* valuewitherror) const
void AddFunctionsToHisto()
TH1F* GetHistoClone() const
void WriteHisto(TString path = "./") const
void WriteNtuple(TString path = "./") const
TNtuple* nget=(TNtuple*)fntuParam->Clone();
void WriteCanvas(TString userIDstring = "", TString path = "./", Double_t nsigma = 3, Int_t writeFitInfo = 1, Bool_t draw = kFALSE) const
TVirtualPad* GetPad(Double_t nsigma = 3, Int_t writeFitInfo = 1) const
return a TVirtualPad with the fitted histograms and info
void PlotFit(TVirtualPad* pd, Double_t nsigma = 3, Int_t writeFitInfo = 1) const
plot histogram, fit functions and write parameters according to verbosity level (0,1,>1)
void DrawHere(TVirtualPad* pd, Double_t nsigma = 3, Int_t writeFitInfo = 1) const
draws histogram together with fit functions with default nice colors in user canvas
void DrawFit(Double_t nsigma = 3) const
void PrintParTitles() const
void Signal(Double_t nOfSigma, Double_t& signal, Double_t& errsignal) const
 Return signal integral in mean+- n sigma
void Signal(Double_t min, Double_t max, Double_t& signal, Double_t& errsignal) const
void Background(Double_t nOfSigma, Double_t& background, Double_t& errbackground) const
 Return background integral in mean+- n sigma
void Background(Double_t min, Double_t max, Double_t& background, Double_t& errbackground) const
 Return background integral in a range
void Significance(Double_t nOfSigma, Double_t& significance, Double_t& errsignificance) const
 Return significance in mean+- n sigma
void Significance(Double_t min, Double_t max, Double_t& significance, Double_t& errsignificance) const
 Return significance integral in a range
void SetRangeFit(Double_t minvalue, Double_t maxvalue)
{fminMass=minvalue; fmaxMass=maxvalue; CheckRangeFit();}
void SetMinRangeFit(Double_t minvalue)
{fminMass=minvalue;printf("CheckRangeFit after SetMaxRangeFit is also set\n");}
void SetMaxRangeFit(Double_t maxvalue)
{fmaxMass=maxvalue;printf("CheckRangeFit after SetMinRangeFit is also set\n");}
void SetBinN(Int_t newbinN)
{fNbin=newbinN;}
void SetReflectionSigmaFactor(Int_t constant)
{ffactor=constant;}
void SetInitialGaussianMean(Double_t mean)
{fMass=mean;}
void SetInitialGaussianSigma(Double_t sigma)
{fSigmaSgn=sigma;}
void SetSideBands(Bool_t onlysidebands = kTRUE)
{fSideBands=onlysidebands;}
void SetFixParam(Bool_t* fixpar)
{fFixPar=fixpar;}
void SetFixGaussianMean(Double_t mean = 1.865, Bool_t fixpar = kTRUE)
void SetFixGaussianSigma(Double_t sigma = 0.012, Bool_t fixpar = kTRUE)
void GetRangeFit(Double_t& minvalue, Double_t& maxvalue) const
{minvalue=fminMass; maxvalue=fmaxMass;}
Double_t GetMinRangeFit() const
{return fminMass;}
Double_t GetMaxRangeFit() const
{return fmaxMass;}
Int_t GetBinN() const
{return fNbin;}
Int_t GetNFinalPars() const
{return fNFinalPars;}
void GetTypeOfFit(Bool_t& background, Int_t& typeb) const
{background = fWithBkg; typeb = ftypeOfFit4Bkg;}
Int_t GetReflectionSigmaFactor() const
{return ffactor;}
Double_t GetMean() const
{return fMass;}
Double_t GetMeanUncertainty() const
{return fMassErr;}
Double_t GetSigma() const
{return fSigmaSgn;}
Double_t GetSigmaUncertainty() const
{ return fSigmaSgnErr;}
Double_t GetRawYield() const
{return fRawYield;}
Double_t GetRawYieldError() const
{return fRawYieldErr;}
Bool_t* GetFixParam() const
{return fFixPar;}
TNtuple* GetNtuParam() const
{return fntuParam;}
Double_t IntTot() const
{return fhistoInvMass->Integral("width");}
TF1* GetBackgroundFullRangeFunc()
TF1* GetBackgroundRecalcFunc()
TF1* GetMassFunc()
void SetUseLikelihoodFit()
{fFitOption="L,";}
void SetUseLikelihoodWithWeightsFit()
{fFitOption="WL,";}
void SetUseChi2Fit()