]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/BASE/AliHLTModuleAgent.h
HLTcalo module
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTModuleAgent.h
index a711275e41f217e76290992b44291d563978b574..0513a23faf3fbb13b331cf537f76190f736a3729 100644 (file)
@@ -67,6 +67,9 @@ class AliHLTModulePreprocessor;
  *
  * @section alihltmoduleagent_interface Agent interface
  * The child can implement the following functions:
+ * - @ref GetDetectorMask                                                   <br>
+ *       DetectorMask for which reconstruction is run.
+ *
  * - @ref CreateConfigurations                                              <br>
  *       Create HLT configuration forming an HLT analysis chain.            <br>
  *       Reconstruction of raw data or simulated data from digits needs
@@ -155,10 +158,15 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * invocation. In the current stage of development, only one handler
    * can be activated per agent. This is sufficient for the current
    * operation, but can be extended.
-   * @param pHandler  [in] the component handler instance
+   * @param [in] pHandler  the component handler instance
    */
   int ActivateComponentHandler(AliHLTComponentHandler* pHandler);
 
+  /**
+   * Return detector mask for which reconstruction is run in this module.
+   */
+  virtual UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
@@ -171,9 +179,9 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * is always NULL and the raw gives access to data. The configurations
    * can adapt to the two cases.
    *
-   * @param handler   [in] the configuration handler
-   * @param rawReader [in] AliRoot RawReader instance 
-   * @param runloader [in] AliRoot runloader
+   * @param [in] handler   the configuration handler
+   * @param [in] rawReader AliRoot RawReader instance 
+   * @param [in] runloader AliRoot runloader
    * @return neg. error code if failed
    */
   virtual int CreateConfigurations(AliHLTConfigurationHandler* handler,
@@ -186,8 +194,8 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * described by the last configuration(s) in the chain. 
    * The agent can adapt the configurations to be registered to the current
    * AliRoot setup by checking the run loader and the raw reader.
-   * @param rawReader [in] AliRoot RawReader instance 
-   * @param runloader [in] AliRoot runloader
+   * @param [in] rawReader AliRoot RawReader instance 
+   * @param [in] runloader AliRoot runloader
    * @return string containing the top configurations separated by blanks
    */
   virtual const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
@@ -211,10 +219,16 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * - @ref AliHLTComponentHandler::AddComponent                           <br>
    *        Same functionality but handler deletes the object at the end.
    *
-   * @param pHandler  [in] instance of the component handler          
+   * @param [in] pHandler  instance of the component handler          
    */
   virtual int RegisterComponents(AliHLTComponentHandler* pHandler) const;
 
+  /**
+   * Define QA plugins
+   * @return blank separated list of class names
+   */
+  virtual const char* GetQAPlugins() const;
+
   /**
    * IDs for output handlers.
    * The agent can provide output handlers in order to treat the output
@@ -271,7 +285,8 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
     AliHLTOUTHandlerDesc(const AliHLTOUTHandlerDesc& src) 
       : fHType(src.fHType), fDt(src.fDt), fModule(src.fModule) {}
 
-    const AliHLTOUTHandlerDesc& operator=(const AliHLTOUTHandlerDesc& src) {
+    AliHLTOUTHandlerDesc& operator=(const AliHLTOUTHandlerDesc& src) {
+      if (this==&src) return *this;
       fHType=src.fHType; fDt=src.fDt; fModule=src.fModule; return *this;
     }
 
@@ -309,9 +324,9 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * - details how it will handle it, mainly the type of the handler
    *   @ref AliHLTOUTHandlerType
    * 
-   * @param dt        [in] data type of the block
-   * @param spec      [in] specification of the block
-   * @param desc      [out] handler description
+   * @param [in] dt        data type of the block
+   * @param [in] spec      specification of the block
+   * @param [out] desc      handler description
    * @return 1 if the agent can provide a handler, 0 if not
    */
   virtual int GetHandlerDescription(AliHLTComponentDataType dt,
@@ -327,8 +342,8 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
    * The framework first collects the handlers for all data blocks, and
    * calls the @ref AliHLTOUTHandler::ProcessData method afterwords for
    * each handler.
-   * @param dt        [in] data type of the block
-   * @param spec      [in] specification of the block
+   * @param [in] dt        data type of the block
+   * @param [in] spec      specification of the block
    * @return pointer to handler
    */
   virtual AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
@@ -346,9 +361,9 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
 
   /**
    * Get raw stream for a data block.
-   * @param dt        [in] data type of the block
-   * @param spec      [in] specification of the block
-   * @param pData     [in] data control object
+   * @param [in] dt        data type of the block
+   * @param [in] spec      specification of the block
+   * @param [in] pData     data control object
    * @return Rawstream object, NULL if no Rawstream available for data type/spec
    */
   // this method is likely to be moved to a specific implementation
@@ -373,6 +388,13 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
     return GetReconstructionChains(NULL,runloader);
   }
 
+  /**
+   * Get current component handler
+   */
+  AliHLTComponentHandler* GetComponentHandler() const {
+    return fpComponentHandler;
+  }
+
  protected:
 
  private: