]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDCalibraVdriftLinearFit.h
- bugfix to correctly handle stack 0 active but with all links inactive
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibraVdriftLinearFit.h
1 #ifndef ALITRDCALIBRAVDRIFTLINEARFIT_H
2 #define ALITRDCALIBRAVDRIFTLINEARFIT_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ///////////////////////////////////////////////////////////////////////////////
10 //                                                                           //
11 //  TRD calibration class for online calibration                             //
12 //                                                                           //
13 ///////////////////////////////////////////////////////////////////////////////
14
15 //#include "TObjArray.h"
16 #include "TObject.h"
17
18 //class TVectorD;
19 class TObjArray;
20 class TH2S;
21 class TH2;
22 class TTreeSRedirector;
23 class TString;
24 class TGraphErrors;
25 class TLinearFitter;
26 class TTreeSRedirector;
27
28 class AliTRDCalibraVdriftLinearFit : public TObject {
29
30  public:
31
32   AliTRDCalibraVdriftLinearFit();
33   AliTRDCalibraVdriftLinearFit(const AliTRDCalibraVdriftLinearFit &ped);
34   AliTRDCalibraVdriftLinearFit(const TObjArray &obja);
35   virtual ~AliTRDCalibraVdriftLinearFit();
36   virtual Long64_t Merge(const TCollection* list);
37   virtual void Copy(TObject &c) const;
38
39   AliTRDCalibraVdriftLinearFit& operator = (const  AliTRDCalibraVdriftLinearFit &source);
40
41   void            Update(Int_t detector, Float_t tnp, Float_t pars1);
42   void            FillPEArray();
43   void            FillPEArray2();
44   void            SetNameCalibUsed(const char*name)          { fNameCalibUsed = name;};
45   const char*     GetNameCalibUsed() const                   { return fNameCalibUsed;};
46   void            Add(const AliTRDCalibraVdriftLinearFit *ped);
47   TH2S           *GetLinearFitterHisto(Int_t detector, Bool_t force=kFALSE);
48   TH2S           *GetLinearFitterHistoForce(Int_t detector);
49   TH2S           *GetLinearFitterHistoNoForce(Int_t detector) const   { return (TH2S*)fLinearFitterHistoArray.UncheckedAt(detector);};
50   Bool_t          GetParam(Int_t detector, TVectorD *param);
51   Bool_t          GetError(Int_t detector, TVectorD *error);
52   Int_t           GetMinNumberOfPointsForFit() const         { return fMinNpointsFit;};
53
54   TObjArray      *GetPArray()                    { return &fLinearFitterPArray;       };
55   TObjArray      *GetEArray()                    { return &fLinearFitterEArray;       };
56   TObjArray       GetHistoArray() const          { return fLinearFitterHistoArray;    };
57   void            SetRobustFit(Bool_t robustFit) { fRobustFit = robustFit;            };
58   void            SetMinNumberOfPointsForFit(Int_t minNpointsFit) { fMinNpointsFit = minNpointsFit;};
59
60   // Debug
61   void     SetDebugLevel(Short_t level)          { fDebugLevel = level;               };
62   void     SetSeeDetector(Int_t seeDetector)     { fSeeDetector = seeDetector;        };
63
64 private:
65   TGraphErrors   *DrawMS(const TH2 *const h2, Int_t &nEntries);
66
67   Int_t           fVersion;                 // Version of the object
68   TString         fNameCalibUsed;           // Info of the version, subversion, firstrun of the calib used
69
70   TObjArray       fLinearFitterHistoArray;  // TObjArray of histo2D for debugging Linear Fitters
71   TObjArray       fLinearFitterPArray;      // Array of result parameters from linear fitters for the detectors
72   TObjArray       fLinearFitterEArray;      // Array of result errors from linear fitters for the detectors
73   Bool_t          fRobustFit;               // Robust fit or not
74   Int_t           fMinNpointsFit;           // Min number of points for the fit  
75
76  //For debugging
77   TTreeSRedirector *fDebugStreamer;         //!Debug streamer
78   Short_t           fDebugLevel;            // Flag for debugging
79   Int_t             fSeeDetector;           // Detector to see
80  
81   ClassDef(AliTRDCalibraVdriftLinearFit,4)  // Online Vdrift calibration
82
83 };
84
85
86
87 #endif
88