Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
CorrFit3DCF.h
1/*
2 * CorrFit3DCF.h
3 *
4 * Created on: 08-04-2015
5 * Author: Daniel Wielanek
6 * E-mail: daniel.wielanek@gmail.com
7 * Warsaw University of Technology, Faculty of Physics
8 */
9
10#ifndef HALCORRFIT3DCF_H_
11#define HALCORRFIT3DCF_H_
12
13#include "CorrFitFunc3D.h"
14
15#include "CorrFitMask.h"
16class TH3;
17class TH1D;
21namespace Hal {
22 class CorrFitMask3D;
23 class CorrFitMath3DCF;
24 class CorrFitSHCF;
25 class CorrFit3DCFPainter;
26 class CorrFit3DCF : public CorrFitFunc3D {
27
28 public:
29 private:
30 enum class EDrawMode { kNormal, kDiagonal1, kDiagonal2 };
31 friend class CorrFitMath3DCF;
32 friend class CorrFitSHCF;
33 friend class CorrFit3DCFPainter;
34 Array_1<Double_t> fXbins;
35 Array_1<Double_t> fYbins;
36 Array_1<Double_t> fZbins;
37 Double_t fXBinf = {0};
38 Double_t fYBinf = {0};
39 Double_t fZBinf = {0};
40 Double_t fXAxisf = {0};
41 Double_t fYAxisf = {0};
42 Double_t fZAxisf = {0};
43 Double_t GetFunX(Double_t* x, Double_t* params) const;
44 Double_t GetFunY(Double_t* x, Double_t* params) const;
45 Double_t GetFunZ(Double_t* x, Double_t* params) const;
46 Double_t GetFunXYpp(Double_t* x, Double_t* params) const;
47 Double_t GetFunXYpm(Double_t* x, Double_t* params) const;
48 Double_t GetFunXZpp(Double_t* x, Double_t* params) const;
49 Double_t GetFunXZpm(Double_t* x, Double_t* params) const;
50 Double_t GetFunYZpp(Double_t* x, Double_t* params) const;
51 Double_t GetFunYZpm(Double_t* x, Double_t* params) const;
52 Double_t GetFunXYZppp(Double_t* x, Double_t* params) const;
53 Double_t GetFunXYZpmp(Double_t* x, Double_t* params) const;
54 Double_t GetFunXYZppm(Double_t* x, Double_t* params) const;
55 Double_t GetFunXYZpmm(Double_t* x, Double_t* params) const;
56 Double_t GetFunXY2d(Double_t* x, Double_t* params) const;
57 Double_t GetFunXZ2d(Double_t* x, Double_t* params) const;
58 Double_t GetFunYZ2d(Double_t* x, Double_t* params) const;
59 Double_t GetScaledValue(Double_t x, Double_t* params) const;
60 void SetParametersToTF1(TF1* f) const;
61 void Calculatef(Double_t width);
62
63 protected:
67 mutable Int_t fBinX = {0}, fBinY = {0}, fBinZ = {0};
68
69 virtual void MakePainter(TString options);
70
71 CorrFitMask3D* GetMask() const { return (CorrFitMask3D*) fMask; };
76 virtual void RecalculateFunction() const {};
77 virtual void RecalculateSmoothFunction() const;
83 void SetErrors(TH1* num, const TH1* den) const;
84 virtual void EstimateActiveBins();
85 void DrawPureFunction(TString option);
86 void DrawFunctionWithCF(TString option);
87 void DrawOther(TString option);
88 void DrawDiagonalOther(TString option);
89 void DrawDiagonalWithCF(TString option);
90 void PrepareRaw();
91 TF1* GetDrawableFunc(TString option);
92 double GetChiTFD(const double* par) const;
93 double GetChiTF(const double* par) const;
94 double GetLogTFD(const double* par) const;
102 Double_t EvalDenominator(Double_t x, Double_t y, Double_t z) const;
111 virtual Double_t EvalCF(const Double_t* x, const Double_t* params) const;
118 virtual Double_t CalculateCF(const Double_t* x, const Double_t* params) const = 0;
126 virtual Double_t GetNumericalError(Int_t /*x*/, Int_t /*y*/, Int_t /*z*/) const { return 0; };
127 CorrFit3DCF(e3DMode mode, Int_t parameters = 3);
128
129 public:
134 CorrFit3DCF(Int_t parameters = 4);
144 void SetFuncRange(Double_t x_min, Double_t x_max, Double_t y_min, Double_t y_max, Double_t z_min, Double_t z_max);
150 void SetRadiusLimits(Double_t min, Double_t max);
151
152 void SetFittingMask(const CorrFitMask& map);
160 Double_t Eval(Double_t x, Double_t y, Double_t z);
161 virtual ~CorrFit3DCF();
162 ClassDef(CorrFit3DCF, 1)
163 };
164} // namespace Hal
165#endif /* HALCORRFIT3DCF_H_ */
void SetRadiusLimits(Double_t min, Double_t max)
virtual Double_t GetNumericalError(Int_t, Int_t, Int_t) const
virtual Double_t CalculateCF(const Double_t *x, const Double_t *params) const =0
Double_t EvalDenominator(Double_t x, Double_t y, Double_t z) const
virtual void MakePainter(TString options)
virtual Double_t EvalCF(const Double_t *x, const Double_t *params) const
virtual void RecalculateSmoothFunction() const
virtual void EstimateActiveBins()
Double_t Eval(Double_t x, Double_t y, Double_t z)
void SetErrors(TH1 *num, const TH1 *den) const
void SetFittingMask(const CorrFitMask &map)
virtual void RecalculateFunction() const
Definition CorrFit3DCF.h:76
void SetFuncRange(Double_t x_min, Double_t x_max, Double_t y_min, Double_t y_max, Double_t z_min, Double_t z_max)
CorrFitMask * fMask