remove exec
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTriggerDCSConfigDB.h
1 #ifndef ALIEMCALTRIGGERDCSCONFIGDB_H
2 #define ALIEMCALTRIGGERDCSCONFIGDB_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7  
8  
9
10 Adapted from TRD: thanks!
11 Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
12 */
13
14 #ifndef ROOT_TObject
15 #include "TObject.h"
16 #endif
17
18 class AliCDBEntry;
19
20 class AliEMCALTriggerDCSConfig;
21
22 class AliEMCALTriggerDCSConfigDB : public TObject 
23 {
24 public:
25         
26         static AliEMCALTriggerDCSConfigDB*  Instance();
27         static void                         Terminate();
28
29         void                                SetRun(Long64_t run);
30         Long64_t                            GetRun() const { return fRun; }
31         const AliEMCALTriggerDCSConfig*     GetTriggerDCSConfig();
32         
33 protected:
34
35         // For caching see also implentation of GetCachedCDBObject in the .cxx file
36         // For now, only one cached object but let the possibility to have more
37         enum { kCDBCacheSize = 1    };   // Number of cached objects
38         enum { kIDTriggerConfig = 0 };   // IDs of cached objects
39
40         const TObject *GetCachedCDBObject(Int_t id);
41   
42         void           Invalidate();
43     
44         AliCDBEntry   *GetCDBEntry(const Char_t *cdbPath);
45         const TObject *CacheCDBEntry(Int_t id, const Char_t *cdbPath);
46
47         static AliEMCALTriggerDCSConfigDB* fgInstance;                 //  Instance of this class (singleton implementation)
48         static Bool_t                      fgTerminated;               //  Defines if this class has already been terminated
49
50         AliCDBEntry*                       fCDBEntries[kCDBCacheSize]; //  Cache for CDB entries
51         TObject*                           fCDBCache[kCDBCacheSize];   //  Cache for calibration objects.
52
53         Long64_t                           fRun;                       //  Run Number
54   
55  private:
56
57         AliEMCALTriggerDCSConfigDB();                                  //  This is a singleton, constructor is private!  
58         AliEMCALTriggerDCSConfigDB(const AliEMCALTriggerDCSConfigDB &c);   
59         AliEMCALTriggerDCSConfigDB &operator=(const AliEMCALTriggerDCSConfigDB &c); 
60         virtual ~AliEMCALTriggerDCSConfigDB();
61
62         ClassDef(AliEMCALTriggerDCSConfigDB, 1)                         //  Provides central access to the CDB
63 };
64
65 #endif
66