4 #ifndef ALIHLTTRDAGENT_H
5 #define ALIHLTTRDAGENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTTRDAgent.h
11 @author Matthias Richter
13 @brief Agent of the libAliHLTTRD library
16 #include "AliHLTModuleAgent.h"
17 #include "AliHLTOUTHandlerEquId.h"
19 class AliHLTOUTHandlerChain;
22 * @class AliHLTTRDAgent
23 * This is the agent for the AliHLTTRD library.
25 * @ingroup alihlt_system
27 class AliHLTTRDAgent : public AliHLTModuleAgent {
30 * standard constructor. The agent is automatically registered in the
31 * global agent manager
35 virtual ~AliHLTTRDAgent();
37 UInt_t GetDetectorMask() const;
40 * Register all configurations belonging to this module with the
41 * AliHLTConfigurationHandler. The agent can adapt the configurations
42 * to be registered to the current AliRoot setup by checking the
44 * @param handler the configuration handler
45 * @param rawReader AliRawReader instance
46 * @param runloader AliRoot runloader
47 * @return neg. error code if failed
49 int CreateConfigurations(AliHLTConfigurationHandler* handler,
50 AliRawReader* rawReader=NULL,
51 AliRunLoader* runloader=NULL) const;
54 * Get the top configurations belonging to this module.
55 * A top configuration describes a processing chain. It can simply be
56 * described by the last configuration(s) in the chain.
57 * The agent can adapt the configurations to be registered to the current
58 * AliRoot setup by checking the runloader.
59 * @param rawReader AliRawReader instance
60 * @param runloader AliRoot runloader
61 * @return number of configurations, neg. error code if failed
63 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
64 AliRunLoader* runloader=NULL) const;
67 * Component libraries which the configurations of this agent depend on.
68 * @return list of component libraries as a blank-separated string.
70 const char* GetRequiredComponentLibraries() const;
73 * Register components for the AliHLTTRD library.
74 * @param [in] pHandler instance of the component handler
76 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
79 * Get handler decription for TRD data in the HLTOUT data stream.
80 * @param [in] dt data type of the block
81 * @param [in] spec specification of the block
82 * @param [out] desc handler description
83 * @return 1 if the agent can provide a handler, 0 if not
85 int GetHandlerDescription(AliHLTComponentDataType dt,
87 AliHLTOUTHandlerDesc& desc) const;
90 * Get specific handler for TRD data in the HLTOUT data stream.
91 * @param [in] dt data type of the block
92 * @param [in] spec specification of the block
93 * @return pointer to handler
95 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
99 * Delete an HLTOUT handler.
100 * @param pInstance pointer to handler
102 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
107 /** copy constructor prohibited */
108 AliHLTTRDAgent(const AliHLTTRDAgent&);
109 /** assignment operator prohibited */
110 AliHLTTRDAgent& operator=(const AliHLTTRDAgent&);
112 /** handler for TRD raw data in the HLTOUT stream */
113 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
115 ClassDef(AliHLTTRDAgent, 0);