Processing SPD Mean Vertex only in PHYSICS runs.
[u/mrichter/AliRoot.git] / STEER / AliShuttleInterface.h
1 #ifndef ALI_SHUTTLE_INTERFACE_H
2 #define ALI_SHUTTLE_INTERFACE_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 // abstract interface class to AliShuttle
11 //
12
13 #include <TObject.h>
14 #include <TString.h>
15
16 class TList;
17 class AliPreprocessor;
18 class AliCDBMetaData;
19 class AliCDBPath;
20 class AliCDBEntry;
21
22 class AliShuttleInterface : public TObject
23 {
24   public:
25     enum System { kDAQ = 0, kDCS, kHLT };
26     enum { kNDetectors = 21 }; // number of subdetectors in ALICE
27
28     virtual Bool_t Store(const AliCDBPath& path, TObject* object, AliCDBMetaData* metaData,
29                                 Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) = 0;
30     virtual Bool_t StoreReferenceData(const AliCDBPath& path, TObject* object, AliCDBMetaData* metaData) = 0;
31     virtual Bool_t StoreReferenceFile(const char* detector, const char* localFile, const char* gridFileName) = 0;
32     virtual Bool_t StoreRunMetadataFile(const char* localFile, const char* gridFileName) = 0;
33     
34     virtual const char* GetFile(Int_t system, const char* detector, const char* id, const char* source) = 0;
35     
36     virtual TList* GetFileSources(Int_t system, const char* detector, const char* id = 0) = 0;
37     virtual TList* GetFileIDs(Int_t system, const char* detector, const char* source) = 0;
38     
39     virtual const char* GetRunParameter(const char* lbEntry) = 0;
40     virtual UInt_t GetStartTimeDCSQuery() = 0;
41     virtual UInt_t GetEndTimeDCSQuery() = 0;
42     virtual const char* GetRunType() = 0;
43     virtual Bool_t GetHLTStatus() = 0;
44     virtual const char* GetTriggerConfiguration() = 0;
45     virtual const char* GetCTPTimeParams() = 0;
46     virtual const char* GetTriggerDetectorMask() = 0;
47
48     virtual AliCDBEntry* GetFromOCDB(const char* detector, const AliCDBPath& path) = 0;
49     
50     virtual void Log(const char* detector, const char* message, UInt_t level=3) = 0;
51
52     virtual void RegisterPreprocessor(AliPreprocessor* preprocessor) = 0;
53
54     static const char* GetSystemName(UInt_t system) {return (system < 3) ? fkSystemNames[system] : 0;}
55
56     static const char* GetOfflineDetName(const char* detName);
57     static const char* GetDetName(UInt_t detPos);
58     static Int_t GetDetPos(const char* detName);
59     static UInt_t NDetectors() {return kNDetectors;}
60
61     static TString GetMainCDB () {return fgkMainCDB;}
62     static TString GetLocalCDB () {return fgkLocalCDB;}
63
64     static TString GetMainRefStorage() {return fgkMainRefStorage;}
65     static TString GetLocalRefStorage() {return fgkLocalRefStorage;}
66     static const char* GetShuttleLogDir() {return fgkShuttleLogDir.Data();}
67     static const char* GetShuttleTempDir() {return fgkShuttleTempDir.Data();}
68
69   protected:
70
71     static const char* fkSystemNames[3];                // names of the systems providing data to the shuttle
72     static const char* fgkDetName[kNDetectors];         // names of detectors' preprocessors (3-letter code convention)
73     static const char* fgkOfflineDetName[kNDetectors];  // names of detectors in OCDB (AliRoot naming convention)
74
75     static TString fgkMainCDB;          // URI of the main (Grid) CDB storage
76     static TString fgkLocalCDB;         // URI of the local backup CDB storage
77     static TString fgkMainRefStorage;   // URI of the main (Grid) REFERENCE storage
78     static TString fgkLocalRefStorage;  // URI of the local REFERENCE storage
79
80     static TString fgkShuttleTempDir;   // path of SHUTTLE temp folder
81     static TString fgkShuttleLogDir;    // path of SHUTTLE log folder
82
83   private:
84     ClassDef(AliShuttleInterface, 0);
85 };
86
87 #endif