]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/AliDielectronBtoJPSItoEleCDFfitFCNfitter.h
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronBtoJPSItoEleCDFfitFCNfitter.h
CommitLineData
6730d2bd 1#ifndef ALIDIELECTRONBTOJPSITOELECDFFITFCNFITTER_H
2#define ALIDIELECTRONBTOJPSITOELECDFFITFCNFITTER_H
3/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6//_________________________________________________________________________
7// Class AliDielectronBtoJPSItoEleCDFfitFCNfitter
8// Origin: A. Mastroserio
9// Interface class to fit invariant mass and pseudoproperdecay length separately
10// Contact: Annalisa.Mastroserio@ba.infn.it
11//_________________________________________________________________________
12
13
14#include "AliDielectronBtoJPSItoEleCDFfitFCN.h"
15class TF1;
16class TF2;
17class TH1F;
18class TH2F;
19class TArrayD;
20
21class AliDielectronBtoJPSItoEleCDFfitFCNfitter {
22
23 public:
24 AliDielectronBtoJPSItoEleCDFfitFCNfitter();
25 virtual ~AliDielectronBtoJPSItoEleCDFfitFCNfitter();
26
27
28 // INVARIANT MASS
29 enum {kInvMassSignal=5, kInvMassBkg=4, kInvMassTotal=9};
30
31 void SetInvMassParameters(const Double_t massPar[kInvMassTotal]);
32 void GetInvMassParameters(TArrayD &massPar);
33 void SetInvMassSignalParameters(const Double_t massPar[kInvMassSignal]);
34 void GetInvMassSignalParameters(TArrayD &massPar);
35 void SetInvMassBkgParameters(const Double_t massPar[kInvMassBkg]);
36 void GetInvMassBkgParameters(TArrayD &massPar);
37
38 Double_t CDFInvMassSignal(const Double_t *x, const Double_t *par);
39 Double_t CDFInvMassBkg(const Double_t *x, const Double_t *par);
40 Double_t CDFInvMassTotal(const Double_t *x, const Double_t *par);
41 void SetInvMass(TH1F *mass) {fInvMass=mass;}
42 void SetParameterToFixInInvMass(Bool_t fixed[kInvMassTotal]) {for(Int_t i=0; i<kInvMassTotal; i++)
43 fParameterInvMassToFix[i]=fixed[i];}
44 TH1F * FitInvMass(Double_t norm[2], Double_t mMin=0, Double_t mMax=0);
45 TH1F * FitInvMassSignal( Double_t norm=1, Double_t mMin=0, Double_t mMax=0);
46
47
48 // RESOLUTION FUNC
49 // use SetResolutionConstants to set the parameters for FF, FS, SS
50 enum {kPseudo=9, kPseudoBkg=7};
51 void SetPseudoProper(TH1F *hX) {if(fX)delete fX; fX=hX;}
52 void GetPseudoProperParameters(TArrayD &xPar, Int_t type);
53 Double_t CDFResolutionFunction(const Double_t *x, const Double_t *par);
54 Double_t PsProperBackFitFunc(const Double_t* x, const Double_t* par);
55
56
57 void SetParameterToFixInX(Bool_t fixed[kPseudo]) {for(Int_t i=0; i<kPseudo; i++)
58 fParameterXToFix[i]=fixed[i];}
59 void SetPseudoProperBkg(TH2F *hX2D) {fX2D=hX2D;}
60 void SetPseudoProperBkgParameters(Double_t xBkgPar[kPseudoBkg]);
61 void GetPseudoProperBkgParameters(TArrayD& bkgParam);
62 void SetParameterToFixInXbkg(Bool_t fixed[kPseudoBkg]) {for(Int_t i=0; i<kPseudoBkg; i++) fParameterXbkgToFix[i]=fixed[i];}
63 TH1F *FitResolutionFunction(Double_t xmin, Double_t xmax, Int_t type, Double_t norm=1);
64 TH2F *FitBkgPsudoProper(Double_t xMin, Double_t xMax, Double_t norm);
65
66
67 // GENERAL
68 void SetFitOption(char *opt) {fFitOpt=opt;}
69 void SetCrystalBallFunction(Bool_t isCB) {fFCN->SetCrystalBallFunction(isCB);}
70 void PrintParamStatus() {fFCN->PrintStatus();}
71 AliDielectronBtoJPSItoEleCDFfitFCN * GetFCN() {return fFCN;}
72
73 protected :
74
75 TH1F *fInvMass; // 1D inv mass distribution
76 TH1F *fX; // 1D X distribution
77 TH2F *fX2D; // 2D X distribution
78 AliDielectronBtoJPSItoEleCDFfitFCN *fFCN; // fitter
79
80 TString fFitOpt; // fit options
81 Bool_t fParameterInvMassToFix[kInvMassTotal]; // booleans to fix single parameters
82 Bool_t fParameterXToFix[kPseudo]; // booleans to fix single parameters
83 Bool_t fParameterXbkgToFix[kPseudoBkg]; // booleans to fix single parameters
84
85 AliDielectronBtoJPSItoEleCDFfitFCNfitter(const AliDielectronBtoJPSItoEleCDFfitFCNfitter& source);
86 AliDielectronBtoJPSItoEleCDFfitFCNfitter& operator=(const AliDielectronBtoJPSItoEleCDFfitFCNfitter& source);
87
88 ClassDef (AliDielectronBtoJPSItoEleCDFfitFCNfitter,1);
89};
90
91#endif