#ifndef ALIDIELECTRONBTOJPSITOELECDFFITFCNFITTER_H
#define ALIDIELECTRONBTOJPSITOELECDFFITFCNFITTER_H
#include "AliDielectronBtoJPSItoEleCDFfitFCN.h"
class TF1;
class TF2;
class TH1F;
class TH2F;
class TArrayD;
class AliDielectronBtoJPSItoEleCDFfitFCNfitter {
public:
AliDielectronBtoJPSItoEleCDFfitFCNfitter();
virtual ~AliDielectronBtoJPSItoEleCDFfitFCNfitter();
enum {kInvMassSignal=5, kInvMassBkg=4, kInvMassTotal=9};
void SetInvMassParameters(const Double_t massPar[kInvMassTotal]);
void GetInvMassParameters(TArrayD &massPar);
void SetInvMassSignalParameters(const Double_t massPar[kInvMassSignal]);
void GetInvMassSignalParameters(TArrayD &massPar);
void SetInvMassBkgParameters(const Double_t massPar[kInvMassBkg]);
void GetInvMassBkgParameters(TArrayD &massPar);
Double_t CDFInvMassSignal(const Double_t *x, const Double_t *par);
Double_t CDFInvMassBkg(const Double_t *x, const Double_t *par);
Double_t CDFInvMassTotal(const Double_t *x, const Double_t *par);
void SetInvMass(TH1F *mass) {fInvMass=mass;}
void SetParameterToFixInInvMass(Bool_t fixed[kInvMassTotal]) {for(Int_t i=0; i<kInvMassTotal; i++)
fParameterInvMassToFix[i]=fixed[i];}
TH1F * FitInvMass(Double_t norm[2], Double_t mMin=0, Double_t mMax=0);
TH1F * FitInvMassSignal( Double_t norm=1, Double_t mMin=0, Double_t mMax=0);
enum {kPseudo=9, kPseudoBkg=7};
void SetPseudoProper(TH1F *hX) {if(fX)delete fX; fX=hX;}
void GetPseudoProperParameters(TArrayD &xPar, Int_t type);
Double_t CDFResolutionFunction(const Double_t *x, const Double_t *par);
Double_t PsProperBackFitFunc(const Double_t* x, const Double_t* par);
void SetParameterToFixInX(Bool_t fixed[kPseudo]) {for(Int_t i=0; i<kPseudo; i++)
fParameterXToFix[i]=fixed[i];}
void SetPseudoProperBkg(TH2F *hX2D) {fX2D=hX2D;}
void SetPseudoProperBkgParameters(Double_t xBkgPar[kPseudoBkg]);
void GetPseudoProperBkgParameters(TArrayD& bkgParam);
void SetParameterToFixInXbkg(Bool_t fixed[kPseudoBkg]) {for(Int_t i=0; i<kPseudoBkg; i++) fParameterXbkgToFix[i]=fixed[i];}
TH1F *FitResolutionFunction(Double_t xmin, Double_t xmax, Int_t type, Double_t norm=1);
TH2F *FitBkgPsudoProper(Double_t xMin, Double_t xMax, Double_t norm);
void SetFitOption(char *opt) {fFitOpt=opt;}
void SetCrystalBallFunction(Bool_t isCB) {fFCN->SetCrystalBallFunction(isCB);}
void PrintParamStatus() {fFCN->PrintStatus();}
AliDielectronBtoJPSItoEleCDFfitFCN * GetFCN() {return fFCN;}
protected :
TH1F *fInvMass;
TH1F *fX;
TH2F *fX2D;
AliDielectronBtoJPSItoEleCDFfitFCN *fFCN;
TString fFitOpt;
Bool_t fParameterInvMassToFix[kInvMassTotal];
Bool_t fParameterXToFix[kPseudo];
Bool_t fParameterXbkgToFix[kPseudoBkg];
AliDielectronBtoJPSItoEleCDFfitFCNfitter(const AliDielectronBtoJPSItoEleCDFfitFCNfitter& source);
AliDielectronBtoJPSItoEleCDFfitFCNfitter& operator=(const AliDielectronBtoJPSItoEleCDFfitFCNfitter& source);
ClassDef (AliDielectronBtoJPSItoEleCDFfitFCNfitter,1);
};
#endif
AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:1 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:2 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:3 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:4 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:5 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:6 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:7 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:8 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:9 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:10 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:11 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:12 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:13 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:14 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:15 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:16 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:17 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:18 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:19 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:20 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:21 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:22 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:23 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:24 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:25 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:26 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:27 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:28 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:29 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:30 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:31 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:32 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:33 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:34 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:35 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:36 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:37 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:38 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:39 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:40 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:41 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:42 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:43 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:44 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:45 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:46 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:47 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:48 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:49 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:50 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:51 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:52 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:53 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:54 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:55 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:56 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:57 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:58 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:59 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:60 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:61 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:62 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:63 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:64 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:65 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:66 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:67 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:68 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:69 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:70 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:71 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:72 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:73 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:74 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:75 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:76 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:77 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:78 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:79 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:80 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:81 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:82 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:83 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:84 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:85 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:86 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:87 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:88 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:89 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:90 AliDielectronBtoJPSItoEleCDFfitFCNfitter.h:91