]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliCaloRawAnalyzerLMS.h
Factorization of the different raw fitting algorithms in EMCAL (Per Thomas)
[u/mrichter/AliRoot.git] / EMCAL / AliCaloRawAnalyzerLMS.h
1 #ifndef ALICALORAWANALYZERLMS_H
2 #define ALICALORAWANALYZERLMS_H
3 /**************************************************************************
4  * This file is property of and copyright by                              *
5  * the Relativistic Heavy Ion Group (RHIG), Yale University, US, 2009     *
6  *                                                                        *
7  * Primary Author: Per Thomas Hille <p.t.hille@fys.uio.no>                *
8  *                                                                        *
9  * Contributors are mentioned in the code where appropriate.              *
10  * Please report bugs to p.t.hille@fys.uio.no                             *
11  *                                                                        *
12  * Permission to use, copy, modify and distribute this software and its   *
13  * documentation strictly for non-commercial purposes is hereby granted   *
14  * without fee, provided that the above copyright notice appears in all   *
15  * copies and that both the copyright notice and this permission notice   *
16  * appear in the supporting documentation. The authors make no claims     *
17  * about the suitability of this software for any purpose. It is          *
18  * provided "as is" without express or implied warranty.                  *
19  **************************************************************************/
20
21
22 // Extraction of amplitude and peak position
23 // FRom CALO raw data using
24 // Chi square fit
25
26 #include "AliCaloRawAnalyzer.h"
27 #include "AliCaloConstants.h"
28
29 using namespace ALTRO;
30
31 class  TF1;
32 class  TGraph;
33
34 class  AliCaloRawAnalyzerLMS : public AliCaloRawAnalyzer
35 {
36   friend class AliCaloRawAnalyzerFactory;
37
38  public:
39   //  AliCaloRawAnalyzerLMS();
40   virtual ~AliCaloRawAnalyzerLMS();
41   virtual AliCaloFitResults  Evaluate( const std::vector<AliCaloBunchInfo> &bunchvector, const UInt_t altrocfg1,  const UInt_t altrocfg2 );
42   void PrintFitResult(const TF1 *f) const;
43   
44   // shaper tau value, in time-bins, and flag for keeping tau fixed
45   Float_t GetTau() const { return fTau;};
46   void SetTau(Float_t f) { fTau = f; }; 
47   Bool_t GetFixTau() const { return fFixTau; }; 
48   void SetFixTau(Bool_t b) { fFixTau = b; }; 
49
50   // extra interfaces
51   TF1 * GetFit() const { return fTf1; };
52
53  private:
54   AliCaloRawAnalyzerLMS();
55   AliCaloRawAnalyzerLMS(const AliCaloRawAnalyzerLMS & );
56   AliCaloRawAnalyzerLMS  & operator = (const AliCaloRawAnalyzerLMS  &);
57  
58   double fXaxis[ALTROMAXSAMPLES]; //Axis if time bins, ( used by TGraph )
59   const double fkEulerSquared; //e^2 = 7.389056098930650227
60   TF1 *fTf1;     // Analytical formula of the Semi Gaussian to be fitted
61
62   Float_t fTau; // shaper tau, in time bins
63   Bool_t fFixTau; // flag if tau should be fix
64
65   ClassDef(AliCaloRawAnalyzerLMS, 2)
66
67 };
68
69 #endif