]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliBtoJPSItoEleCDFfitHandler.h
Bug fix in the order of the Ds cuts (Sadhana, Francesco)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliBtoJPSItoEleCDFfitHandler.h
1 #ifndef ALIBTOJPSITOELECDFFITHANDLER_H\r
2 #define ALIBTOJPSITOELECDFFITHANDLER_H\r
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice                               */\r
5 \r
6 //___________________________________________________________________________\r
7 //                  Class AliBtoJPSItoEleCDFfitHandler\r
8 //            Class to perform unbinned log-likelihood fit\r
9 //      \r
10 //                         Origin: C. Di Giglio\r
11 //     Contact: Carmelo.Digiglio@ba.infn.it; Giuseppe.Bruno@ba.infn.it\r
12 //____________________________________________________________________________\r
13 \r
14 #include <TNamed.h>\r
15 #include <TBits.h>\r
16 #include "TMath.h"\r
17 #include "AliBtoJPSItoEleCDFfitFCN.h"\r
18 #include "AliLog.h"\r
19 \r
20 class TBits; \r
21 \r
22 class AliBtoJPSItoEleCDFfitHandler : public TNamed {\r
23  public:\r
24   //\r
25   AliBtoJPSItoEleCDFfitHandler();\r
26   AliBtoJPSItoEleCDFfitHandler& operator= (const AliBtoJPSItoEleCDFfitHandler& c);\r
27   AliBtoJPSItoEleCDFfitHandler(const AliBtoJPSItoEleCDFfitHandler& c);\r
28   AliBtoJPSItoEleCDFfitHandler(Double_t* decaytime, Double_t* invariantmass, Int_t ncand);\r
29   ~AliBtoJPSItoEleCDFfitHandler(); \r
30   //Double_t Up() const { return fUp*TMath::Sqrt(fLikely->GetIntegral()); }\r
31   Double_t Up() const { return fUp; }\r
32   void SetErrorDef(Double_t up) {fUp = up;}\r
33   void SetPrintStatus(Bool_t okPrintStatus) { fPrintStatus = okPrintStatus; } \r
34   Bool_t GetPrintStatus() { return fPrintStatus ; }\r
35   void SetParamStartValues (Double_t*);\r
36   Double_t* GetStartParamValues() { return fParamStartValues; }\r
37   TBits GetFixedParamList() { return fIsParamFixed; }\r
38   void FixParam(UInt_t param, Bool_t value) { fIsParamFixed.SetBitNumber(param,value); }\r
39   void FixAllParam(Bool_t value) { for(UInt_t par=0;par<16;par++) fIsParamFixed.SetBitNumber(par,value); }\r
40   Bool_t IsParamFixed(UInt_t param) { return fIsParamFixed.TestBitNumber(param); }\r
41   void SetResolutionConstants();\r
42   void SetCrystalBallFunction(Bool_t okCB);\r
43   void SetMassWndHigh(Double_t limit);\r
44   void SetMassWndLow(Double_t limit);\r
45 \r
46   Double_t operator()(const Double_t* par) const ;\r
47   void CdfFCN(Int_t & /* npar */, Double_t * /* gin */, Double_t &f, Double_t *par, Int_t /* iflag */);\r
48 \r
49   Double_t* Decaytime() const         { return fX; }\r
50   Double_t* InvariantMass() const     { return fM; }\r
51   AliBtoJPSItoEleCDFfitFCN* LikelihoodPointer() const { return fLikely; }\r
52   Int_t DoMinimization();\r
53 \r
54  private:\r
55   //\r
56   TBits fIsParamFixed;                               //array of bits: 0 = param free; 1 = param fixed;\r
57   Bool_t fPrintStatus;                               //flag to enable the prit out of the algorithm at each step\r
58   Double_t fParamStartValues[16];                    //array of parameters input value\r
59   Double_t fUp;                                      //error definition \r
60   Double_t* fX;                                      //pseudo-proper decay time X\r
61   Double_t* fM;                                      //invariant mass M\r
62   AliBtoJPSItoEleCDFfitFCN* fLikely;                 //Log likelihood function\r
63   Int_t fNcand;                                      //number of candidates\r
64   //\r
65   ClassDef(AliBtoJPSItoEleCDFfitHandler,1);\r
66 \r
67 }; \r
68 #endif\r