Adding code to patch St1 HV mapping
[u/mrichter/AliRoot.git] / MUON / AliMUONPreprocessor.h
1 #ifndef ALIMUONPREPROCESSOR_H
2 #define ALIMUONPREPROCESSOR_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 /// \ingroup shuttle
10 /// \class AliMUONPreprocessor
11 /// \brief Shuttle preprocessor for MUON subsystems (TRK and TRG)
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ALI_PREPROCESSOR_H
16 #  include "AliPreprocessor.h"
17 #endif
18
19 class AliMUONVSubprocessor;
20 class TObjArray;
21
22 class AliMUONPreprocessor : public AliPreprocessor
23 {
24 public:
25   virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
26   virtual UInt_t Process(TMap* dcsAliasMap);
27   virtual void Print(Option_t* opt="") const;
28
29   /// Return info whether the current subprocessor(s) needs DCS or not  
30   virtual Bool_t ProcessDCS() { return fProcessDCS; }
31
32   /// Publish AliPreprocessor::Log function
33   void Log(const char* message) { AliPreprocessor::Log(message); }
34   
35   /// Publish AliPreprocessor::GetFileSources function
36   TList* GetFileSources(Int_t system, const char* id) 
37   { return AliPreprocessor::GetFileSources(system,id); }
38
39   /// Publish AliPreprocessor::Store function
40   Bool_t Store(const char* pathLevel2, const char* pathLevel3, TObject* object,
41                AliCDBMetaData* metaData, 
42                Int_t validityStart = 0, Bool_t validityInfinite = kFALSE)
43   {
44     return AliPreprocessor::Store(pathLevel2,pathLevel3,object,metaData,
45                                   validityStart,validityInfinite);
46   }
47   
48   /// Publish AliPreprocessor::GetRunParameter
49   const char* GetRunParameter(const char* param)
50   {
51     return AliPreprocessor::GetRunParameter(param);
52   }
53   
54   /// Publish AliPreprocessor::GetFile function
55   const char* GetFile(Int_t system, const char* id, const char* source)
56   {
57     return AliPreprocessor::GetFile(system,id,source);
58   }  
59
60   /// Publish AliPreprocessor::GetFromOCDB function
61     AliCDBEntry* GetFromOCDB(const char* pathLevel2, const char* pathLevel3) {
62       return AliPreprocessor::GetFromOCDB(pathLevel2,pathLevel3);      
63     }
64
65   /// Publish AliPreprocessor::GetFromOCDB function
66   AliCDBEntry* GetGeometryFromOCDB()
67   {
68     return AliPreprocessor::GetGeometryFromOCDB();
69   }
70   
71   /// Whether we can be used (e.g. whether we were properly initialized)
72   Bool_t IsValid() const { return fIsValid; }
73   
74   /// Mark as invalid
75   void Invalidate() { fIsValid = kFALSE; }
76   
77   /// Whether we should do something or not
78   Bool_t IsApplicable() { return fIsApplicable; }
79   
80   /// Return log book parameter
81   TString GetLogBookParam(const char* parname)
82   { return TString(AliPreprocessor::GetRunParameter(parname)); }
83   
84 protected:
85   AliMUONPreprocessor(const char* detName, AliShuttleInterface* shuttle);
86   virtual ~AliMUONPreprocessor();
87   
88   void Add(AliMUONVSubprocessor* subProcessor, Bool_t processDCS=kFALSE); 
89   void ClearSubprocessors();
90   
91   Bool_t fIsValid; //!< whether we were correctly initialized
92   Bool_t fIsApplicable; //!< whether we have something to do
93   
94 private:
95   /// Not implemented
96   AliMUONPreprocessor(const AliMUONPreprocessor& rhs);
97   /// Not implemented
98   AliMUONPreprocessor& operator=(const AliMUONPreprocessor& rhs);
99   
100   AliMUONVSubprocessor* Subprocessor(Int_t i) const;
101   
102 private:
103
104   TObjArray* fSubprocessors; //!< sub processors to execute
105   Bool_t fProcessDCS; //!< whether the current subprocessor(s) needs DCS or not
106
107   ClassDef(AliMUONPreprocessor,4) // MUON Shuttle preprocessor
108 };
109
110 #endif