]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TRD/info/AliTRDtrendingManager.h
expand trending functionality by generic PutTrendValue/GetTrendValue
[u/mrichter/AliRoot.git] / PWGPP / TRD / info / AliTRDtrendingManager.h
1 #ifndef ALITRDTRENDINGMANAGER_H
2 #define ALITRDTRENDINGMANAGER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6 ////////////////////////////////////////////////////////////////////////////
7 //                                                                        //
8 //  Trend Value Manager                                                   //
9 //                                                                        //
10 //  Authors:                                                              //
11 //    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
12 //                                                                        //
13 ////////////////////////////////////////////////////////////////////////////
14
15 #ifndef ROOT_TObject
16 #include "TObject.h"
17 #endif
18
19 #ifndef ALITRDTRENDVALUE_H
20 #include "AliTRDtrendValue.h"
21 #endif
22
23 class TObjArray;
24 class AliTRDtrendingManager : public TObject
25 {
26 public:
27   enum AliTRDtrendingManagerSteer{
28     kRelative    = BIT(14) // trending plots normalized to mean/sigma
29   };
30   virtual ~AliTRDtrendingManager();
31   void              AddValue(const Char_t *name
32                             ,Double_t mean,Double_t sigm=1
33                             ,const Char_t *title=NULL
34                             ,const Char_t *responsible=NULL
35                             ,const Char_t *notifiables=NULL
36                             ,Char_t **messages = NULL
37                             );
38   AliTRDtrendValue* GetValue(const Char_t *name);
39   static AliTRDtrendingManager* Instance();
40   Bool_t            IsRelativeMeanSigma() const     { return TestBit(kRelative);}
41   void              Load(const char *fn = "$ALICE_ROOT/PWGPP/TRD/data/TRD.Trend.root");
42   Bool_t            MakeTrends(const char *fileList);
43   Bool_t            ModifyValue(const Char_t *name
44                             ,const Char_t *title
45                             ,Double_t mean,Double_t sigm
46                             ,Char_t **messages=NULL
47                             ,const Char_t *responsible=NULL
48                             ,const Char_t *notifiables=NULL
49                             );
50   void              Print(Option_t *o="") const;
51 //  void              ResetRunRange(Int_t runStart, Int_t runStop) {fRunRange[0]=runStart; fRunRange[1]=runStop;}
52   void              SetRelativeMeanSigma(Bool_t set=kTRUE) { SetBit(kRelative, set);}
53   void              Terminate();
54
55 protected:
56   AliTRDtrendingManager();
57   AliTRDtrendingManager(const AliTRDtrendingManager& ref);
58   AliTRDtrendingManager& operator=(const AliTRDtrendingManager& ref);
59
60 private:
61   static Bool_t                 fgTerminated; // instance terminate flag
62         static AliTRDtrendingManager*   fgInstance;       // instance
63   TObjArray        *fEntries;    // list of trending values
64   AliTRDtrendValue *fValue;      // current loaded trend value
65 //  Int_t             fRunRange[2];// valability range
66
67   ClassDef(AliTRDtrendingManager, 0) // TRD trending Manager
68 };
69
70 #endif