Adding functionality to generate AliESDEvent objects from dHLT raw data during offlin...
[u/mrichter/AliRoot.git] / HLT / MUON / OfflineInterface / AliHLTMUONAgent.h
CommitLineData
d1ff7c16 1#ifndef ALIHLTMUONAGENT_H
2#define ALIHLTMUONAGENT_H
3/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
6253e09b 8///
9/// @file AliHLTMUONAgent.h
10/// @author Artur Szostak <artursz@iafrica.com>
887a669c 11/// @date 28 May 2007
6253e09b 12/// @brief The HLT module agent for libAliHLTMUON.so which interfaces HLT
13/// components with offline.
14///
d1ff7c16 15
16#include "AliHLTModuleAgent.h"
17class AliRunLoader;
94135365 18class AliHLTOUTHandlerChain;
d1ff7c16 19
20/**
21 * This module agent handles dimuon HLT module registration and configurations
22 * within the AliRoot framework.
23 */
24class AliHLTMUONAgent : public AliHLTModuleAgent
25{
26public:
27 AliHLTMUONAgent();
28
29 virtual ~AliHLTMUONAgent();
30
6253e09b 31 // The following methods are all inherited from AliHLTModuleAgent:
32
d1ff7c16 33 /**
34 * Register all processing configurations belonging to the dimuon HLT
35 * library with the AliHLTConfigurationHandler.
36 * @param handler the configuration handler
37 * @param runloader AliRoot runloader
38 * @return Zero on success and error code if failed.
39 */
6253e09b 40 virtual int CreateConfigurations(
d1ff7c16 41 AliHLTConfigurationHandler* handler,
dee38f1b 42 AliRawReader* rawReader=NULL,
d1ff7c16 43 AliRunLoader* runloader = NULL
44 ) const;
45
46 /**
47 * Returns the top processing chain configurations for local event
48 * reconstruction.
49 * @param runloader [in] AliRoot runloader
50 * @return string containing the top configurations separated by blanks.
51 */
6253e09b 52 virtual const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
dee38f1b 53 AliRunLoader* runloader = NULL) const;
d1ff7c16 54
55 /**
56 * Component libraries which the configurations of this agent depend on.
57 * @return list of component libraries as a blank-separated string.
58 */
6253e09b 59 virtual const char* GetRequiredComponentLibraries() const;
60
61 /**
62 * Registers all available components of this module.
63 * @param pHandler [in] instance of the component handler.
64 */
65 virtual int RegisterComponents(AliHLTComponentHandler* pHandler) const;
66
94135365 67 /**
68 * Get handler decription for dHLT data in the HLTOUT data stream.
69 * @param dt [in] data type of the block
70 * @param spec [in] specification of the block
71 * @param desc [out] handler description
72 * @return 1 if the agent can provide a handler, 0 if not.
73 */
74 virtual int GetHandlerDescription(
75 AliHLTComponentDataType dt,
76 AliHLTUInt32_t spec,
77 AliHLTOUTHandlerDesc& desc
78 ) const;
79
80 /**
81 * Get specific handler for dHLT data in the HLTOUT data stream.
82 * @param dt [in] data type of the block
83 * @param spec [in] specification of the block
84 * @return pointer to handler
85 */
86 virtual AliHLTOUTHandler* GetOutputHandler(
87 AliHLTComponentDataType dt, AliHLTUInt32_t spec
88 );
89
90 /**
91 * Delete an HLTOUT handler.
92 * @param pInstance pointer to handler
93 */
94 virtual int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
95
6253e09b 96private:
97 // The following instance is used for automatic agent and component registration.
94135365 98 static AliHLTMUONAgent fgkInstance; ///< The single global instance of the dimuon HLT agent.
99
100 static AliHLTOUTHandlerChain fgkESDMakerChain; ///< Chain handler for converting dHLT raw data to ESD format.
101 static AliHLTOUTHandlerChain fgkRootifyDumpChain; ///< Chain handler for converting dHLT raw data to ROOT objects and dumping to file.
d1ff7c16 102
887a669c 103 ClassDef(AliHLTMUONAgent, 0); // Dimuon HLT module agent which handles processing configurations.
d1ff7c16 104};
105
106#endif // ALIHLTMUONAGENT_H