AliRoot Core  3dc7879 (3dc7879)
AliCaloFastAltroFitv0.h
Go to the documentation of this file.
1 #ifndef ALICALOFASTALTROFITV0_H
2 #define ALICALOFASTALTROFITV0_H
3 
4 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice */
6 
7 //_________________________________________________________________________
21 //_________________________________________________________________________
22 
23 // --- ROOT system ---
24 #include <TNamed.h>
25 class TCanvas;
26 class TVirtualPad;
27 class TF1;
28 class TH1F;
29 
30 class AliCaloFastAltroFitv0 : public TNamed
31 {
32 
33 public:
34 
36  AliCaloFastAltroFitv0(const char* name, const char* title,
37  const Double_t sig=1.3, const Double_t tau=2.35, const Double_t n=2.);
38 
39  virtual ~AliCaloFastAltroFitv0();
40 
41  virtual void FastFit(Int_t* t, Int_t* y, Int_t nPoints, Double_t sig, Double_t tau,
42  Double_t n, Double_t ped, Double_t tMax);
43 
44  void FastFit(TH1F* h, Double_t sig, Double_t tau,
45  Double_t n, Double_t ped, Double_t tMax);
46 
47  void Reset();
48  void SetSig(const Double_t sig) {fSig = sig;}
49  void SetTau(const Double_t tau) {fTau = tau;}
50  void SetN(const Double_t n) {fN = n;}
51  void SetParameters(const Double_t sig, const Double_t tau, const Double_t n)
52  {fSig = sig; fTau = tau; fN = n;}
53 
54  Double_t GetSig() const { return fSig ; }
55  Double_t GetTau() const { return fTau ; }
56  Double_t GetN() const { return fN ; }
57  Double_t GetPed() const { return fPed ; }
58 
59  Double_t GetEnergy() const { return fAmp ; }
60  Double_t GetAmp() const { return GetEnergy() ; }
61  Double_t GetAmpErr() const { return fAmpErr ; }
62  Double_t GetTime() const { return fT0 ; }
63  Double_t GetT0() const { return GetTime() ; }
64  Double_t GetT0Err() const { return fT0Err ; }
65  Double_t GetChi2() const { return fChi2 ; }
66  Int_t GetNDF() const { return fNDF ; }
67  Int_t GetNfit() const { return fNfit ; }
68  Int_t GetNoFit() const { return fNoFit ; }
69 
70  void GetFitResult(Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0,
71  Double_t &chi2,Int_t &ndf) const;
72  void GetFittedPoints(Int_t &nfit, Double_t* ar[2]) const;
73 
74  // Drawing for QA
75  TCanvas* DrawFastFunction(); // *MENU*
76 
77  static Double_t StdResponseFunction(const Double_t *x, const Double_t *par);
78 
79  static void CutRightPart(Int_t *t,Int_t *y,Int_t nPoints, Double_t tMax, Int_t &ii);
80 
81  static void DeductPedestal(Int_t* t, Int_t* y, Int_t nPointsIn, Double_t ped, Double_t tau,
82  Double_t* tn, Double_t* yn, Int_t &nPointsOut);
83 
84  static void FastFit(const Double_t* t, const Double_t* y, const Int_t nPoints,
85  const Double_t sig, const Double_t tau,
86  Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, Double_t &chi2);
87 
88  static Bool_t QuadraticRoots(const Double_t a, const Double_t b, const Double_t c,
89  Double_t &x1, Double_t &x2);
90 
91  static void Amplitude(const Double_t* t, const Double_t* y, const Int_t nPoints,
92  const Double_t sig, const Double_t tau,
93  Double_t t0, Double_t &amp, Double_t &chi2);
94 
95  static void CalculateParsErrors(const Double_t* t, const Double_t* y, const Int_t nPoints,
96  const Double_t sig, const Double_t tau,
97  Double_t &amp, Double_t &t0, Double_t &eamp, Double_t &et0);
98 
99 protected:
100 
101  Double_t fSig;
102  Double_t fTau;
103  Double_t fN;
104  Double_t fPed;
105 
106  Double_t fAmp;
107  Double_t fAmpErr;
108  Double_t fT0;
109  Double_t fT0Err;
110  Double_t fChi2;
111  Int_t fNDF;
112  Int_t fNoFit;
113 
114  // Working variable
115  Int_t fNfit;
116  Double_t* fTfit;
117  Double_t* fAmpfit;
118 
119  TF1* fStdFun;
120 
121 private:
122 
125 
127  ClassDef(AliCaloFastAltroFitv0,1) ;
129 
130 };
131 
132 #endif // ALICALOFASTALTROFITV0_H
TBrowser b
Definition: RunAnaESD.C:12
void Reset()
Reset variables.
Double_t * fAmpfit
! Points for fit after selection - amplitudes
AliCaloFastAltroFitv0()
Default constructor.
virtual ~AliCaloFastAltroFitv0()
Destructor.
Double_t GetEnergy() const
Double_t GetT0Err() const
Double_t GetAmpErr() const
static Double_t StdResponseFunction(const Double_t *x, const Double_t *par)
virtual void FastFit(Int_t *t, Int_t *y, Int_t nPoints, Double_t sig, Double_t tau, Double_t n, Double_t ped, Double_t tMax)
Fast fit.
static void DeductPedestal(Int_t *t, Int_t *y, Int_t nPointsIn, Double_t ped, Double_t tau, Double_t *tn, Double_t *yn, Int_t &nPointsOut)
Double_t fChi2
Chi square.
static void CutRightPart(Int_t *t, Int_t *y, Int_t nPoints, Double_t tMax, Int_t &ii)
Cut right part of altro sample : static function.
Double_t chi2
Definition: AnalyzeLaser.C:7
void GetFitResult(Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, Double_t &chi2, Int_t &ndf) const
Double_t fT0Err
Time error.
Int_t fNoFit
No solution for square equation.
Double_t fAmp
Amplitude.
Int_t fNfit
! Number points for fit
void GetFittedPoints(Int_t &nfit, Double_t *ar[2]) const
static void CalculateParsErrors(const Double_t *t, const Double_t *y, const Int_t nPoints, const Double_t sig, const Double_t tau, Double_t &amp, Double_t &t0, Double_t &eamp, Double_t &et0)
Double_t fTau
First fixed parameter od fitting function (should be - filter time response.
void SetSig(const Double_t sig)
Double_t * fTfit
! Points for fit after selection - time bins
Procedure of fast altro fitting.
Int_t fNDF
Number degree of freedom.
void SetTau(const Double_t tau)
Double_t fN
Second fixed parameter od fitting function (should be positive)
static void Amplitude(const Double_t *t, const Double_t *y, const Int_t nPoints, const Double_t sig, const Double_t tau, Double_t t0, Double_t &amp, Double_t &chi2)
static Bool_t QuadraticRoots(const Double_t a, const Double_t b, const Double_t c, Double_t &x1, Double_t &x2)
Resolve quadratic equations a*x**2 + b*x + c.
void SetN(const Double_t n)
Double_t fAmpErr
Amplitude error.
void SetParameters(const Double_t sig, const Double_t tau, const Double_t n)
AliCaloFastAltroFitv0 & operator=(const AliCaloFastAltroFitv0 &obj)
Assignment operator.
TF1 * fStdFun
! Function for drawing
Double_t fSig
Error in amplitude - used in chi2 calculation.