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 * Inherited from AliHLTModuleAgent
46 * Register all configurations belonging to this module with the
47 * AliHLTConfigurationHandler. The agent can adapt the configurations
48 * to be registered to the current AliRoot setup by checking the
50 * @param handler the configuration handler
51 * @param rawReader AliRawReader instance
52 * @param runloader AliRoot runloader
53 * @return neg. error code if failed
55 int CreateConfigurations(AliHLTConfigurationHandler* handler,
56 AliRawReader* rawReader=NULL,
57 AliRunLoader* runloader=NULL) const;
60 * Inherited from AliHLTModuleAgent
61 * Get the top configurations belonging to this module.
62 * A top configuration describes a processing chain. It can simply be
63 * described by the last configuration(s) in the chain.
64 * The agent can adapt the configurations to be registered to the current
65 * AliRoot setup by checking the runloader.
66 * @param rawReader AliRawReader instance
67 * @param runloader AliRoot runloader
68 * @return number of configurations, neg. error code if failed
70 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
71 AliRunLoader* runloader=NULL) const;
74 * Inherited from AliHLTModuleAgent
75 * Component libraries which the configurations of this agent depend on.
76 * @return list of component libraries as a blank-separated string.
78 const char* GetRequiredComponentLibraries() const;
81 * Inherited from AliHLTModuleAgent
82 * Register components for the AliHLTSample library.
83 * @param pHandler [in] instance of the component handler
85 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
88 * Inherited from AliHLTModuleAgent
89 * Return HLTOUT handler description for a certain data block in the
91 * @return 1 if module provides a handler
93 int GetHandlerDescription(AliHLTComponentDataType dt,
95 AliHLTOUTHandlerDesc& desc) const;
98 * Inherited from AliHLTModuleAgent
99 * Create HLTOUT handler for a certain data block in the
100 * HLTOUT payload. The same handler can be returned multiple
101 * times, even for different data types. The framework will
103 * @return pointer to handler
105 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
106 AliHLTUInt32_t spec);
109 * Inherited from AliHLTModuleAgent
110 * Delete the instance of the handler. This is only called once
111 * even if the same handler has been issued multiple times
113 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
115 AliHLTModulePreprocessor* GetPreprocessor();
117 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
119 AliHLTOUTSDDRawDataHandler() {}
120 ~AliHLTOUTSDDRawDataHandler() {}
121 int ProcessData(AliHLTOUT* pData);
126 * Create configurations for all CFs for the ITS subdetectors
127 * Get the necessary information from AliDAQ using the detector id.
128 * @param pHandler Instance of the configuration handler
129 * @param detectorId Id of the detector as specified in AliDAQ
130 * @param output Target string to receive the configurations
131 * @return neg. error code f failed
133 int CreateCFConfigurations(AliHLTConfigurationHandler* pHandler, int detectorId, TString& output) const;
139 /** copy constructor prohibited */
140 AliHLTITSAgent(const AliHLTITSAgent&);
141 /** assignment operator prohibited */
142 AliHLTITSAgent& operator=(const AliHLTITSAgent&);
144 /** handler for ITS raw data in the HLTOUT stream */
145 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
147 /** ROOT specific member definition */
148 ClassDef(AliHLTITSAgent, 0);