fSideBandl(0),
fSideBandr(0),
fcounter(0),
+ fFitOption("L,"),
fContourGraph(0)
{
// default constructor
fSideBandl(0),
fSideBandr(0),
fcounter(0),
+ fFitOption("L,"),
fContourGraph(0)
{
// standard constructor
fSideBandl(mfit.fSideBandl),
fSideBandr(mfit.fSideBandr),
fcounter(mfit.fcounter),
+ fFitOption(mfit.fFitOption),
fContourGraph(mfit.fContourGraph)
{
//copy constructor
fSideBands= mfit.fSideBands;
fSideBandl= mfit.fSideBandl;
fSideBandr= mfit.fSideBandr;
+ fFitOption= mfit.fFitOption;
fcounter= mfit.fcounter;
fContourGraph= mfit.fContourGraph;
//if only signal and reflection: skip
if (!(ftypeOfFit4Bkg==3 && ftypeOfFit4Sgn==1)) {
ftypeOfFit4Sgn=0;
- fhistoInvMass->Fit(bkgname.Data(),"R,L,E,0");
+ fhistoInvMass->Fit(bkgname.Data(),Form("R,%sE,0",fFitOption.Data()));
for(Int_t i=0;i<bkgPar;i++){
fFitPars[i]=funcbkg->GetParameter(i);
funcbkg1->SetLineColor(2); //red
- switch (ftypeOfFit4Bkg) {
+ switch (ftypeOfFit4Bkg) {
case 0:
{
cout<<"*** Exponential Fit ***"<<endl;
}
break;
}
- //cout<<"Parameters set to: "<<0.5*(totInt-intbkg1)<<"\t"<<fMass<<"\t"<<ffactor*fSigmaSgn<<"\t"<<intbkg1<<"\t"<<slope1<<"\t"<<conc1<<"\t"<<endl;
- //cout<<"Limits: ("<<fminMass<<","<<fmaxMass<<")\tnPar = "<<bkgPar<<"\tgsidebands = "<<fSideBands<<endl;
+ //cout<<"Parameters set to: "<<0.5*(totInt-intbkg1)<<"\t"<<fMass<<"\t"<<ffactor*fSigmaSgn<<"\t"<<intbkg1<<"\t"<<slope1<<"\t"<<conc1<<"\t"<<endl;
+ //cout<<"Limits: ("<<fminMass<<","<<fmaxMass<<")\tnPar = "<<bkgPar<<"\tgsidebands = "<<fSideBands<<endl;
- Int_t status=fhistoInvMass->Fit(bkg1name.Data(),"R,L,E,+,0");
+ Int_t status=fhistoInvMass->Fit(bkg1name.Data(),Form("R,%sE,+,0",fFitOption.Data()));
if (status != 0){
cout<<"Minuit returned "<<status<<endl;
return kFALSE;
Int_t status;
- status = fhistoInvMass->Fit(massname.Data(),"R,L,E,+,0");
+ status = fhistoInvMass->Fit(massname.Data(),Form("R,%sE,+,0",fFitOption.Data()));
if (status != 0){
cout<<"Minuit returned "<<status<<endl;
return kFALSE;
}
- Int_t status=fhistoInvMass->Fit(bkgname.Data(),"R,L,E,+,0");
+ Int_t status=fhistoInvMass->Fit(bkgname.Data(),Form("R,%sE,+,0",fFitOption.Data()));
if (status != 0){
cout<<"Minuit returned "<<status<<endl;
return kFALSE;
TF1* GetMassFunc(){
return fhistoInvMass->GetFunction("funcmass");
}
-
+ void SetUseLikelihoodFit(){fFitOption="L,";}
+ void SetUseLikelihoodWithWeightsFit(){fFitOption="WL,";}
+ void SetUseChi2Fit(){fFitOption="";}
private:
Int_t fSideBandl; // left side band limit (bin number)
Int_t fSideBandr; // right side band limit (bin number)
Int_t fcounter; // internal counter
+ TString fFitOption; // L, LW or Chi2
TList* fContourGraph; // TList of TGraph containing contour plots
- ClassDef(AliHFMassFitter,6); // class for invariant mass fit
+ ClassDef(AliHFMassFitter,7); // class for invariant mass fit
};
#endif