3 // $Id: AliHLTJETAgent.h 28643 2008-09-09 20:43:24Z richterm $
5 #ifndef ALIHLTJETAGENT_H
6 #define ALIHLTJETAGENT_H
7 //* This file is property of and copyright by the ALICE HLT Project *
8 //* ALICE Experiment at CERN, All rights reserved. *
9 //* See cxx source for full Copyright notice *
11 /** @file AliHLTJETAgent.h
12 @author Jochen Thaeder
14 @brief Agent of the libAliHLTJET library
17 #include "AliHLTModuleAgent.h"
19 // raw data handler of HLTOUT data
20 #include "AliHLTOUTHandlerEquId.h"
23 * @class AliHLTJETAgent
24 * This is the agent for the AliHLTJet library.<br>
28 class AliHLTJETAgent : public AliHLTModuleAgent {
32 * ---------------------------------------------------------------------------------
33 * Constructor / Destructor
34 * ---------------------------------------------------------------------------------
38 * standard constructor. The agent is automatically registered in the
39 * global agent manager
44 virtual ~AliHLTJETAgent();
47 * ---------------------------------------------------------------------------------
49 * ---------------------------------------------------------------------------------
53 * Register all configurations belonging to the sample library with the
54 * AliHLTConfigurationHandler. The agent can adapt the configurations
55 * to be registered to the current AliRoot setup by checking the
57 * @param handler [in] the configuration handler
58 * @param rawReader [in] AliRoot RawReader instance
59 * @param runloader [in] AliRoot runloader
60 * @return neg. error code if failed
62 Int_t CreateConfigurations(AliHLTConfigurationHandler* handler,
63 AliRawReader* rawReader=NULL,
64 AliRunLoader* runloader=NULL) const;
67 * Get the top configurations for local event reconstruction.
68 * A top configuration describes a processing chain. It can simply be
69 * described by the last configuration(s) in the chain.
70 * The agent can adapt the configurations to be registered to the current
71 * AliRoot setup by checking the runloader.
72 * @param rawReader [in] AliRoot RawReader instance
73 * @param runloader [in] AliRoot runloader
74 * @return string containing the top configurations separated by blanks
76 const Char_t* GetReconstructionChains(AliRawReader* rawReader=NULL,
77 AliRunLoader* runloader=NULL) const;
80 * Component libraries which the configurations of this agent depend on.
81 * @return list of component libraries as a blank-separated string.
83 const Char_t* GetRequiredComponentLibraries() const;
86 * Register components for the AliHLTSample library.
87 * @param pHandler [in] instance of the component handler
89 Int_t RegisterComponents(AliHLTComponentHandler* pHandler) const;
92 * ---------------------------------------------------------------------------------
94 * ---------------------------------------------------------------------------------
100 AliHLTModulePreprocessor* GetPreprocessor();
103 * ---------------------------------------------------------------------------------
105 * ---------------------------------------------------------------------------------
111 Int_t GetHandlerDescription(AliHLTComponentDataType dt,
113 AliHLTOUTHandlerDesc& desc) const;
118 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
119 AliHLTUInt32_t spec);
124 Int_t DeleteOutputHandler(AliHLTOUTHandler* pInstance);
127 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
129 AliHLTOUTSDDRawDataHandler() {}
130 ~AliHLTOUTSDDRawDataHandler() {}
131 int ProcessData(AliHLTOUT* pData);
141 * ---------------------------------------------------------------------------------
142 * Private functions to implement AliHLTComponent's interface.
143 * These functions provide initialization as well as the actual processing
144 * capabilities of the component.
145 * ---------------------------------------------------------------------------------
148 /** Copy constructor prohibited */
149 AliHLTJETAgent(const AliHLTJETAgent&);
151 /** Assignment operator prohibited */
152 AliHLTJETAgent& operator=(const AliHLTJETAgent&);
155 * ---------------------------------------------------------------------------------
157 * ---------------------------------------------------------------------------------
160 /** Handler for JET data in the HLTOUT stream */
161 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
163 /** ROOT specific member definition */
164 ClassDef(AliHLTJETAgent, 0);