- Disentangle masks effect from trigger chamber efficiency estimation.
[u/mrichter/AliRoot.git] / MUON / AliMUONPreprocessor.h
index deeb3c9..325b401 100644 (file)
@@ -10,7 +10,7 @@
 /// \class AliMUONPreprocessor
 /// \brief Shuttle preprocessor for MUON subsystems (TRK and TRG)
 /// 
-/// \author Laurent Aphecetche
+//  Author Laurent Aphecetche
 
 #ifndef ALI_PREPROCESSOR_H
 #  include "AliPreprocessor.h"
@@ -22,17 +22,22 @@ class TObjArray;
 class AliMUONPreprocessor : public AliPreprocessor
 {
 public:
-  AliMUONPreprocessor(const char* detector, AliShuttleInterface* shuttle);
-  virtual ~AliMUONPreprocessor();
-  
   virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
   virtual UInt_t Process(TMap* dcsAliasMap);
   virtual void Print(Option_t* opt="") const;
+
+  /// Return info whether the current subprocessor(s) needs DCS or not  
+  virtual Bool_t ProcessDCS() { return fProcessDCS; }
+
+  /// Publish AliPreprocessor::Log function
+  void Log(const char* message) { AliPreprocessor::Log(message); }
   
+  /// Publish AliPreprocessor::GetFileSources function
   TList* GetFileSources(Int_t system, const char* id) 
   { return AliPreprocessor::GetFileSources(system,id); }
 
-  UInt_t Store(const char* pathLevel2, const char* pathLevel3, TObject* object,
+  /// Publish AliPreprocessor::Store function
+  Bool_t Store(const char* pathLevel2, const char* pathLevel3, TObject* object,
                AliCDBMetaData* metaData, 
                Int_t validityStart = 0, Bool_t validityInfinite = kFALSE)
   {
@@ -40,23 +45,66 @@ public:
                                   validityStart,validityInfinite);
   }
   
+  /// Publish AliPreprocessor::GetRunParameter
+  const char* GetRunParameter(const char* param)
+  {
+    return AliPreprocessor::GetRunParameter(param);
+  }
+  
+  /// Publish AliPreprocessor::GetFile function
   const char* GetFile(Int_t system, const char* id, const char* source)
   {
     return AliPreprocessor::GetFile(system,id,source);
   }  
+
+  /// Publish AliPreprocessor::GetFromOCDB function
+    AliCDBEntry* GetFromOCDB(const char* pathLevel2, const char* pathLevel3) {
+      return AliPreprocessor::GetFromOCDB(pathLevel2,pathLevel3);      
+    }
+
+  /// Publish AliPreprocessor::GetFromOCDB function
+  AliCDBEntry* GetGeometryFromOCDB()
+  {
+    return AliPreprocessor::GetGeometryFromOCDB();
+  }
   
-private:
-  enum ESubprocessors { kPedestal=0, kLast };
+  /// Whether we can be used (e.g. whether we were properly initialized)
+  Bool_t IsValid() const { return fIsValid; }
   
+  /// Mark as invalid
+  void Invalidate() { fIsValid = kFALSE; }
+  
+  /// Whether we should do something or not
+  Bool_t IsApplicable() { return fIsApplicable; }
+  
+  /// Return log book parameter
+  TString GetLogBookParam(const char* parname)
+  { return TString(AliPreprocessor::GetRunParameter(parname)); }
+  
+protected:
+  AliMUONPreprocessor(const char* detName, AliShuttleInterface* shuttle);
+  virtual ~AliMUONPreprocessor();
+  
+  void Add(AliMUONVSubprocessor* subProcessor, Bool_t processDCS=kFALSE); 
+  void ClearSubprocessors();
+  
+  Bool_t fIsValid; //!< whether we were correctly initialized
+  Bool_t fIsApplicable; //!< whether we have something to do
+  
+private:
+  /// Not implemented
   AliMUONPreprocessor(const AliMUONPreprocessor& rhs);
+  /// Not implemented
   AliMUONPreprocessor& operator=(const AliMUONPreprocessor& rhs);
   
   AliMUONVSubprocessor* Subprocessor(Int_t i) const;
   
 private:
-  TObjArray* fSubprocessors; ///!< sub processors to execute
-  
-  ClassDef(AliMUONPreprocessor,1) // MUON Shuttle preprocessor
+
+  TObjArray* fSubprocessors; //!< sub processors to execute
+  Bool_t fProcessDCS; //!< whether the current subprocessor(s) needs DCS or not
+
+  ClassDef(AliMUONPreprocessor,4) // MUON Shuttle preprocessor
 };
 
 #endif