]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPreprocessor.h
New raw-reader class which deals with events taken from shared memory via the DATE...
[u/mrichter/AliRoot.git] / MUON / AliMUONPreprocessor.h
index deeb3c9de48e87788a77c4983da118242d7f31ea..5cfae3533345c1d4f5a648c55815ed7875205198 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,45 @@ public:
                                   validityStart,validityInfinite);
   }
   
+  /// Publish AliPreprocessor::GetFile function
   const char* GetFile(Int_t system, const char* id, const char* source)
   {
     return AliPreprocessor::GetFile(system,id,source);
   }  
   
-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; }
+  
+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