ROOT logo
#ifndef ALITRDTRENDINGMANAGER_H
#define ALITRDTRENDINGMANAGER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Trend Value Manager                                                   //
//                                                                        //
//  Authors:                                                              //
//    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include "TObject.h"
#endif

#ifndef ALITRDTRENDVALUE_H
#include "AliTRDtrendValue.h"
#endif

class TH1;
class TObjArray;
class AliTRDtrendingManager : public TObject
{
public:
  enum AliTRDtrendingManagerSteer{
    kRelative    = BIT(14) // trending plots normalized to mean/sigma
  };
  virtual ~AliTRDtrendingManager();
  void              AddValue(const Char_t *name
                            ,Double_t mean,Double_t sigm=1
                            ,const Char_t *title=NULL
                            ,const Char_t *responsible=NULL
                            ,const Char_t *notifiables=NULL
                            ,Char_t **messages = NULL
                            );
  AliTRDtrendValue* GetValue(const Char_t *name);
  static AliTRDtrendingManager*	Instance();
  Bool_t            IsRelativeMeanSigma() const     { return TestBit(kRelative);}
  void              Load(const char *fn = "$ALICE_ROOT/PWGPP/TRD/data/TRD.Trend.root");
  TH1*              MakeTrends(const char *fileList, TObjArray *dump=NULL);
  Bool_t            ModifyValue(const Char_t *name
                            ,const Char_t *title
                            ,Double_t mean,Double_t sigm
                            ,Char_t **messages=NULL
                            ,const Char_t *responsible=NULL
                            ,const Char_t *notifiables=NULL
                            );
  void              Print(Option_t *o="") const;
//  void              ResetRunRange(Int_t runStart, Int_t runStop) {fRunRange[0]=runStart; fRunRange[1]=runStop;}
  void              SetRelativeMeanSigma(Bool_t set=kTRUE) { SetBit(kRelative, set);}
  void              Terminate();

protected:
  AliTRDtrendingManager();
  AliTRDtrendingManager(const AliTRDtrendingManager& ref);
  AliTRDtrendingManager& operator=(const AliTRDtrendingManager& ref);

private:
  void              MakeList(Int_t entries=1000);
//  static Bool_t	                fgTerminated; // instance terminate flag
	static AliTRDtrendingManager*	fgInstance;	  // instance
  TObjArray        *fEntries;    // list of trending values
  ClassDef(AliTRDtrendingManager, 0) // TRD trending Manager
};

#endif
 AliTRDtrendingManager.h:1
 AliTRDtrendingManager.h:2
 AliTRDtrendingManager.h:3
 AliTRDtrendingManager.h:4
 AliTRDtrendingManager.h:5
 AliTRDtrendingManager.h:6
 AliTRDtrendingManager.h:7
 AliTRDtrendingManager.h:8
 AliTRDtrendingManager.h:9
 AliTRDtrendingManager.h:10
 AliTRDtrendingManager.h:11
 AliTRDtrendingManager.h:12
 AliTRDtrendingManager.h:13
 AliTRDtrendingManager.h:14
 AliTRDtrendingManager.h:15
 AliTRDtrendingManager.h:16
 AliTRDtrendingManager.h:17
 AliTRDtrendingManager.h:18
 AliTRDtrendingManager.h:19
 AliTRDtrendingManager.h:20
 AliTRDtrendingManager.h:21
 AliTRDtrendingManager.h:22
 AliTRDtrendingManager.h:23
 AliTRDtrendingManager.h:24
 AliTRDtrendingManager.h:25
 AliTRDtrendingManager.h:26
 AliTRDtrendingManager.h:27
 AliTRDtrendingManager.h:28
 AliTRDtrendingManager.h:29
 AliTRDtrendingManager.h:30
 AliTRDtrendingManager.h:31
 AliTRDtrendingManager.h:32
 AliTRDtrendingManager.h:33
 AliTRDtrendingManager.h:34
 AliTRDtrendingManager.h:35
 AliTRDtrendingManager.h:36
 AliTRDtrendingManager.h:37
 AliTRDtrendingManager.h:38
 AliTRDtrendingManager.h:39
 AliTRDtrendingManager.h:40
 AliTRDtrendingManager.h:41
 AliTRDtrendingManager.h:42
 AliTRDtrendingManager.h:43
 AliTRDtrendingManager.h:44
 AliTRDtrendingManager.h:45
 AliTRDtrendingManager.h:46
 AliTRDtrendingManager.h:47
 AliTRDtrendingManager.h:48
 AliTRDtrendingManager.h:49
 AliTRDtrendingManager.h:50
 AliTRDtrendingManager.h:51
 AliTRDtrendingManager.h:52
 AliTRDtrendingManager.h:53
 AliTRDtrendingManager.h:54
 AliTRDtrendingManager.h:55
 AliTRDtrendingManager.h:56
 AliTRDtrendingManager.h:57
 AliTRDtrendingManager.h:58
 AliTRDtrendingManager.h:59
 AliTRDtrendingManager.h:60
 AliTRDtrendingManager.h:61
 AliTRDtrendingManager.h:62
 AliTRDtrendingManager.h:63
 AliTRDtrendingManager.h:64
 AliTRDtrendingManager.h:65
 AliTRDtrendingManager.h:66
 AliTRDtrendingManager.h:67
 AliTRDtrendingManager.h:68
 AliTRDtrendingManager.h:69