3 #ifndef ALIHLTITSAGENT_H
4 #define ALIHLTITSAGENT_H
5 //* This file is property of and copyright by the ALICE HLT Project *
6 //* ALICE Experiment at CERN, All rights reserved. *
7 //* See cxx source for full Copyright notice *
9 /** @file AliHLTITSAgent.h
10 @author Matthias Richter
12 @brief Agent of the libAliHLTITS library
15 #include "AliHLTModuleAgent.h"
17 // raw data handler of HLTOUT data
18 #include "AliHLTOUTHandlerEquId.h"
21 * @class AliHLTITSAgent
22 * This is the agent for the AliHLTSample library.<br>
24 * The agent implements the HLTOUT handling of raw data blocks from the
26 * This assumes that the data blocks are sent with data type
27 * {DDL_RAW :ISDD} and the bit set in the specification corresponding.
29 * An HLTOUT handler is implemented to extract the equipment id from
34 class AliHLTITSAgent : public AliHLTModuleAgent {
37 * standard constructor. The agent is automatically registered in the
38 * global agent manager
42 virtual ~AliHLTITSAgent();
45 * Register all configurations belonging to the sample library with the
46 * AliHLTConfigurationHandler. The agent can adapt the configurations
47 * to be registered to the current AliRoot setup by checking the
49 * @param handler [in] the configuration handler
50 * @param rawReader [in] AliRoot RawReader instance
51 * @param runloader [in] AliRoot runloader
52 * @return neg. error code if failed
54 int CreateConfigurations(AliHLTConfigurationHandler* handler,
55 AliRawReader* rawReader=NULL,
56 AliRunLoader* runloader=NULL) const;
59 * Get the top configurations for local event reconstruction.
60 * A top configuration describes a processing chain. It can simply be
61 * described by the last configuration(s) in the chain.
62 * The agent can adapt the configurations to be registered to the current
63 * AliRoot setup by checking the runloader.
64 * @param rawReader [in] AliRoot RawReader instance
65 * @param runloader [in] AliRoot runloader
66 * @return string containing the top configurations separated by blanks
68 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
69 AliRunLoader* runloader=NULL) const;
72 * Component libraries which the configurations of this agent depend on.
73 * @return list of component libraries as a blank-separated string.
75 const char* GetRequiredComponentLibraries() const;
78 * Register components for the AliHLTSample library.
79 * @param pHandler [in] instance of the component handler
81 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
83 int GetHandlerDescription(AliHLTComponentDataType dt,
85 AliHLTOUTHandlerDesc& desc) const;
86 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
88 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
90 AliHLTModulePreprocessor* GetPreprocessor();
92 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
94 AliHLTOUTSDDRawDataHandler() {}
95 ~AliHLTOUTSDDRawDataHandler() {}
96 int ProcessData(AliHLTOUT* pData);
103 /** copy constructor prohibited */
104 AliHLTITSAgent(const AliHLTITSAgent&);
105 /** assignment operator prohibited */
106 AliHLTITSAgent& operator=(const AliHLTITSAgent&);
108 /** handler for ITS raw data in the HLTOUT stream */
109 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
111 /** ROOT specific member definition */
112 ClassDef(AliHLTITSAgent, 0);