]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliCaloFastAltroFitv0.h
fix
[u/mrichter/AliRoot.git] / RAW / AliCaloFastAltroFitv0.h
index d80612a4538d276a9f451dbcd81b794dd6ba3f38..7d3d7d2ac589e913b440e43dbf147e13b54be4a3 100644 (file)
-//_________________________________________________________________________
-//  Procedure of fast altro fitting     
-//                  
-//*-- Author:  Aleksei Pavlinov; IHEP, Protvino, Russia
-
-#ifndef ALICALOFASTALTROFITV0_H
-#define ALICALOFASTALTROFITV0_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice     */
-/* $Id: $ */
-
-/* History of svn commits
- * $Log$
- */
-
-#include <TNamed.h>
-// --- ROOT system ---
-class TCanvas;
-class TVirtualPad;
-class TF1;
-class TH1F;
-
-class AliCaloFastAltroFitv0 : public TNamed {
-
-public:
-
-  AliCaloFastAltroFitv0();
-  AliCaloFastAltroFitv0(const char* name, const char* title,
-  const Double_t sig=1.3, const Double_t tau=2.35, const Double_t n=2.);
-  virtual ~AliCaloFastAltroFitv0(); 
-
-  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);
-
-  void FastFit(TH1F* h, Double_t sig, Double_t tau, 
-  Double_t n, Double_t ped, Double_t tMax);
-
-  void Reset();
-  void SetSig(const Double_t sig) {fSig = sig;}
-  void SetTau(const Double_t tau) {fTau = tau;}
-  void SetN(const Double_t n)     {fN = n;}
-  void SetParameters(const Double_t sig, const Double_t tau, const Double_t n) 
-  {fSig = sig; fTau = tau; fN = n;}
-
-  Double_t GetSig()    const {return fSig;}
-  Double_t GetTau()    const {return fTau;}
-  Double_t GetN()      const {return fN;}
-  Double_t GetPed()    const {return fPed;}
-
-  Double_t GetEnergy() const {return fAmp;}
-  Double_t GetAmp()    const {return GetEnergy();}
-  Double_t GetAmpErr() const {return fAmpErr;}
-  Double_t GetTime()   const {return fT0;}
-  Double_t GetT0()     const {return GetTime();}
-  Double_t GetT0Err()  const {return fT0Err;}
-  Double_t GetChi2()   const {return fChi2;}
-  Int_t    GetNDF()    const {return fNDF;}
-  Int_t    GetNfit()   const {return fNfit;}
-
-  void GetFitResult(Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, 
-                    Double_t &chi2,Int_t &ndf) const;
-  void     GetFittedPoints(Int_t &nfit, Double_t* ar[2]) const;
-
-  // Drawing for QA
-  TCanvas* DrawFastFunction(); // *MENU*
-  static Double_t StdResponseFunction(const Double_t *x, const  Double_t *par); 
-
-  static void CutRightPart(Int_t *t,Int_t *y,Int_t nPoints, Double_t tMax, Int_t &ii); 
-  static void DeductPedestal(Int_t* t, Int_t* y, Int_t n, Double_t ped, Double_t tau, 
-  Double_t* tn, Double_t* yn, Int_t &nn);
-
-  static void FastFit(const Double_t* t, const Double_t* y, const Int_t n, 
-                      const Double_t sig, const Double_t tau,
-                      Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, 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);
-  static void Amplitude(const Double_t* t, const Double_t* y, const Int_t n, 
-                        const Double_t sig, const Double_t tau, 
-                        Double_t t0, Double_t &amp, Double_t &chi2);
-  static void CalculateParsErrors(const Double_t* t, const Double_t* y, const Int_t n, 
-                                 const Double_t sig, const Double_t tau,
-                                Double_t &amp, Double_t &t0, Double_t &eamp, Double_t &et0);
-protected:
-  Double_t fSig; // error in amplitude - used in chi2 calculation
-  Double_t fTau; // first  fixed parameter od fitting function (should be - filter time response
-  Double_t fN;   // second fixed parameter od fitting function (should be positive)
-  Double_t fPed; // pedestal
-
-  Double_t fAmp;    // amplitude
-  Double_t fAmpErr; // amplitude error
-  Double_t fT0;     // time
-  Double_t fT0Err;  // time error
-  Double_t fChi2;   // chi square
-  Int_t    fNDF;    // number degree of freedom
-
-  // Working variable
-  Int_t     fNfit;   //! number points for fit
-  Double_t* fTfit;   //! points for fit after selection - time bins
-  Double_t* fAmpfit; //!                                - amplitudes
-  // 
-  TF1*      fStdFun; //! function for drawing
-
-private:
-  AliCaloFastAltroFitv0(const AliCaloFastAltroFitv0 &obj);
-  AliCaloFastAltroFitv0& operator= (const AliCaloFastAltroFitv0 &obj);
-
-  ClassDef(AliCaloFastAltroFitv0,1) // Class for fast altro fitting
-};
-
-#endif // ALICALOFASTALTROFITV0_H
+//_________________________________________________________________________\r
+//  Procedure of fast altro fitting     \r
+//                  \r
+//*-- Author:  Aleksei Pavlinov; IHEP, Protvino, Russia & WSU, Detroit, USA\r
+\r
+#ifndef ALICALOFASTALTROFITV0_H\r
+#define ALICALOFASTALTROFITV0_H\r
+/* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *\r
+ * See cxx source for full Copyright notice     */\r
+/* $Id: $ */\r
+\r
+/* History of svn commits\r
+ * $Log$\r
+ */\r
+\r
+#include <TNamed.h>\r
+// --- ROOT system ---\r
+class TCanvas;\r
+class TVirtualPad;\r
+class TF1;\r
+class TH1F;\r
+\r
+class AliCaloFastAltroFitv0 : public TNamed {\r
+\r
+public:\r
+\r
+  AliCaloFastAltroFitv0();\r
+  AliCaloFastAltroFitv0(const char* name, const char* title,\r
+  const Double_t sig=1.3, const Double_t tau=2.35, const Double_t n=2.);\r
+  virtual ~AliCaloFastAltroFitv0(); \r
+\r
+  virtual void FastFit(Int_t* t, Int_t* y, Int_t nPoints, Double_t sig, Double_t tau, \r
+  Double_t n, Double_t ped, Double_t tMax);\r
+\r
+  void FastFit(TH1F* h, Double_t sig, Double_t tau, \r
+  Double_t n, Double_t ped, Double_t tMax);\r
+\r
+  void Reset();\r
+  void SetSig(const Double_t sig) {fSig = sig;}\r
+  void SetTau(const Double_t tau) {fTau = tau;}\r
+  void SetN(const Double_t n)     {fN = n;}\r
+  void SetParameters(const Double_t sig, const Double_t tau, const Double_t n) \r
+  {fSig = sig; fTau = tau; fN = n;}\r
+\r
+  Double_t GetSig()    const {return fSig;}\r
+  Double_t GetTau()    const {return fTau;}\r
+  Double_t GetN()      const {return fN;}\r
+  Double_t GetPed()    const {return fPed;}\r
+\r
+  Double_t GetEnergy() const {return fAmp;}\r
+  Double_t GetAmp()    const {return GetEnergy();}\r
+  Double_t GetAmpErr() const {return fAmpErr;}\r
+  Double_t GetTime()   const {return fT0;}\r
+  Double_t GetT0()     const {return GetTime();}\r
+  Double_t GetT0Err()  const {return fT0Err;}\r
+  Double_t GetChi2()   const {return fChi2;}\r
+  Int_t    GetNDF()    const {return fNDF;}\r
+  Int_t    GetNfit()   const {return fNfit;}\r
+  Int_t    GetNoFit()  const {return fNoFit;}\r
+\r
+  void GetFitResult(Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, \r
+                    Double_t &chi2,Int_t &ndf) const;\r
+  void     GetFittedPoints(Int_t &nfit, Double_t* ar[2]) const;\r
+\r
+  // Drawing for QA\r
+  TCanvas* DrawFastFunction(); // *MENU*\r
+  static Double_t StdResponseFunction(const Double_t *x, const  Double_t *par); \r
+\r
+  static void CutRightPart(Int_t *t,Int_t *y,Int_t nPoints, Double_t tMax, Int_t &ii); \r
+  static void DeductPedestal(Int_t* t, Int_t* y, Int_t nPointsIn, Double_t ped, Double_t tau, \r
+  Double_t* tn, Double_t* yn, Int_t &nPointsOut);\r
+\r
+  static void FastFit(const Double_t* t, const Double_t* y, const Int_t nPoints, \r
+                      const Double_t sig, const Double_t tau,\r
+                      Double_t &amp, Double_t &eamp, Double_t &t0, Double_t &et0, Double_t &chi2);\r
+  static Bool_t QuadraticRoots(const Double_t a, const Double_t b, const Double_t c, \r
+                               Double_t &x1, Double_t &x2);\r
+  static void Amplitude(const Double_t* t, const Double_t* y, const Int_t nPoints, \r
+                        const Double_t sig, const Double_t tau, \r
+                        Double_t t0, Double_t &amp, Double_t &chi2);\r
+  static void CalculateParsErrors(const Double_t* t, const Double_t* y, const Int_t nPoints, \r
+                                 const Double_t sig, const Double_t tau,\r
+                                Double_t &amp, Double_t &t0, Double_t &eamp, Double_t &et0);\r
+protected:\r
+  Double_t fSig; // error in amplitude - used in chi2 calculation\r
+  Double_t fTau; // first  fixed parameter od fitting function (should be - filter time response\r
+  Double_t fN;   // second fixed parameter od fitting function (should be positive)\r
+  Double_t fPed; // pedestal\r
+\r
+  Double_t fAmp;    // amplitude\r
+  Double_t fAmpErr; // amplitude error\r
+  Double_t fT0;     // time\r
+  Double_t fT0Err;  // time error\r
+  Double_t fChi2;   // chi square\r
+  Int_t    fNDF;    // number degree of freedom\r
+  Int_t    fNoFit;  // no solution for square equation\r
+\r
+  // Working variable\r
+  Int_t     fNfit;   //! number points for fit\r
+  Double_t* fTfit;   //! points for fit after selection - time bins\r
+  Double_t* fAmpfit; //!                                - amplitudes\r
+  // \r
+  TF1*      fStdFun; //! function for drawing\r
+\r
+private:\r
+  AliCaloFastAltroFitv0(const AliCaloFastAltroFitv0 &obj);\r
+  AliCaloFastAltroFitv0& operator= (const AliCaloFastAltroFitv0 &obj);\r
+\r
+  ClassDef(AliCaloFastAltroFitv0,1) // Class for fast altro fitting\r
+};\r
+\r
+#endif // ALICALOFASTALTROFITV0_H\r