]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliCaloFitResults.h
Added calculation of edge positions of module, needing for geometry checking and...
[u/mrichter/AliRoot.git] / EMCAL / AliCaloFitResults.h
1 // -*- mode: c++ -*-
2 #ifndef ALICALOFITRESULTS_H
3 #define ALICALOFITRESULTS_H
4 /**************************************************************************
5  * This file is property of and copyright by                              *
6  * the Relativistic Heavy Ion Group (RHIG), Yale University, US, 2009     *
7  *                                                                        *
8  * Primary Author: Per Thomas Hille <p.t.hille@fys.uio.no>                *
9  *                                                                        *
10  * Contributors are mentioned in the code where appropriate.              *
11  * Please report bugs to p.t.hille@fys.uio.no                             *
12  *                                                                        *
13  * Permission to use, copy, modify and distribute this software and its   *
14  * documentation strictly for non-commercial purposes is hereby granted   *
15  * without fee, provided that the above copyright notice appears in all   *
16  * copies and that both the copyright notice and this permission notice   *
17  * appear in the supporting documentation. The authors make no claims     *
18  * about the suitability of this software for any purpose. It is          *
19  * provided "as is" without express or implied warranty.                  *
20  **************************************************************************/
21
22
23 #include "Rtypes.h"
24
25 #include "AliCaloFitSubarray.h"
26
27 // Container class to hold results from fitting 
28 // as well as other methods for
29 // raw data signals extraction
30 class  AliCaloFitResults
31 {
32  public:
33   enum kReturnCode {kFitPar=1, kDummy=-1, kCrude=-9, kNoFit=-99, kInvalid=-9999};// possible return values
34   // kFitPar: method fit or parametrization was used
35   // kDummy: just a filler parameter, if e.g. chi2 not available
36   // kCrude: maximum was used
37   // kNoFit: maximum was used, exception handling for fit invoked
38   // kInvalid: could not even look for maximum
39
40   explicit AliCaloFitResults( const Int_t maxSig, 
41                               const Float_t ped, 
42                               const Short_t fitStatus, 
43                               const Float_t  amp, 
44                               const Float_t time,
45                               const Int_t maxTimebin,
46                               const Float_t chi, 
47                               const Int_t ndf, 
48                               const Int_t minSig, 
49                               const AliCaloFitSubarray fitSubarray); 
50
51   explicit AliCaloFitResults( const Int_t maxSig, 
52                               const Float_t ped, 
53                               const Short_t fitStatus, 
54                               const Float_t  amp, 
55                               const Float_t time,
56                               const Int_t maxTimebin,
57                               const Float_t chi, 
58                               const Int_t ndf, 
59                               const Int_t minSig = kDummy); 
60
61   // shorter interface when no fit is done
62   explicit AliCaloFitResults( const Int_t maxSig, 
63                               const Float_t ped, 
64                               const Short_t fitStatus, 
65                               const Float_t  amp, 
66                               const Int_t maxTimebin); 
67
68   // minimum interface
69   explicit AliCaloFitResults( const Int_t maxSig, const Int_t minSig );
70
71
72   virtual  ~AliCaloFitResults();
73   Int_t  GetMaxSig() const  { return fMaxSig;};
74   Float_t   GetPed() const { return fPed;};
75   Int_t  GetMinSig() const { return fMinSig;};
76   Int_t  GetStatus() const  { return fStatus;};
77   Float_t   GetAmp() const {  return fAmpSig; };
78   Float_t   GetTof() const {  return fTime; }; 
79   Float_t   GetTime() const {  return fTime; };
80   Int_t   GetMaxTimebin() const {  return fMaxTimebin; };
81   Float_t   GetChisSquare() const { return fChi2Sig;};
82   Int_t  GetNdf() const { return fNdfSig; };
83   AliCaloFitSubarray  GetFitSubarray() const { return fFitSubarray; };
84   
85  private:
86   AliCaloFitResults();
87   Int_t   fMaxSig;   //Maximum sample value ( 0 - 1023 )
88   Float_t    fPed;      //Pedestal 
89   Int_t   fStatus;   //Sucess or failure of fitting pocedure
90   Float_t    fAmpSig;   //Amplitude in entities of ADC counts
91   Float_t    fTime;       //peak/max time of signal in entities of sample intervals 
92   Int_t    fMaxTimebin;  // timebin with maximum ADC value
93   Float_t    fChi2Sig;  //Chi Square of fit 
94   Int_t   fNdfSig;   //Number of degrees of freedom of fit
95   Int_t   fMinSig;   //Pedestal 
96   AliCaloFitSubarray fFitSubarray; // info on time-bin array used for the fitting
97 };
98
99 #endif