]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/ITS/AliHLTITSAgent.h
list of required CDB entries added to documentation
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSAgent.h
CommitLineData
dafa46c6 1// $Id$
2
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 *
8
9/** @file AliHLTITSAgent.h
10 @author Matthias Richter
11 @date 25.08.2008
12 @brief Agent of the libAliHLTITS library
13*/
14
15#include "AliHLTModuleAgent.h"
16
6b87e199 17// raw data handler of HLTOUT data
18#include "AliHLTOUTHandlerEquId.h"
dafa46c6 19
20/**
21 * @class AliHLTITSAgent
22 * This is the agent for the AliHLTSample library.<br>
23 *
6b87e199 24 * The agent implements the HLTOUT handling of raw data blocks from the
25 * ITS SDD.
26 * This assumes that the data blocks are sent with data type
27 * {DDL_RAW :ISDD} and the bit set in the specification corresponding.
28 * to detector DDL id.
29 * An HLTOUT handler is implemented to extract the equipment id from
30 * the specification.
dafa46c6 31 *
32 * @ingroup alihlt_its
33 */
34class AliHLTITSAgent : public AliHLTModuleAgent {
35 public:
36 /**
37 * standard constructor. The agent is automatically registered in the
38 * global agent manager
39 */
40 AliHLTITSAgent();
41 /** destructor */
42 virtual ~AliHLTITSAgent();
43
44 /**
68315dc4 45 * Inherited from AliHLTModuleAgent
46 * Register all configurations belonging to this module with the
dafa46c6 47 * AliHLTConfigurationHandler. The agent can adapt the configurations
48 * to be registered to the current AliRoot setup by checking the
49 * runloader.
68315dc4 50 * @param handler the configuration handler
51 * @param rawReader AliRawReader instance
52 * @param runloader AliRoot runloader
dafa46c6 53 * @return neg. error code if failed
54 */
55 int CreateConfigurations(AliHLTConfigurationHandler* handler,
56 AliRawReader* rawReader=NULL,
57 AliRunLoader* runloader=NULL) const;
58
59 /**
68315dc4 60 * Inherited from AliHLTModuleAgent
61 * Get the top configurations belonging to this module.
dafa46c6 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.
68315dc4 66 * @param rawReader AliRawReader instance
67 * @param runloader AliRoot runloader
68 * @return number of configurations, neg. error code if failed
dafa46c6 69 */
70 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
71 AliRunLoader* runloader=NULL) const;
72
73 /**
68315dc4 74 * Inherited from AliHLTModuleAgent
dafa46c6 75 * Component libraries which the configurations of this agent depend on.
76 * @return list of component libraries as a blank-separated string.
77 */
78 const char* GetRequiredComponentLibraries() const;
79
80 /**
68315dc4 81 * Inherited from AliHLTModuleAgent
dafa46c6 82 * Register components for the AliHLTSample library.
83 * @param pHandler [in] instance of the component handler
84 */
85 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
86
68315dc4 87 /**
88 * Inherited from AliHLTModuleAgent
89 * Return HLTOUT handler description for a certain data block in the
90 * HLTOUT payload.
91 * @return 1 if module provides a handler
92 */
dafa46c6 93 int GetHandlerDescription(AliHLTComponentDataType dt,
94 AliHLTUInt32_t spec,
95 AliHLTOUTHandlerDesc& desc) const;
68315dc4 96
97 /**
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
102 * handle this.
103 * @return pointer to handler
104 */
dafa46c6 105 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
106 AliHLTUInt32_t spec);
68315dc4 107
108 /**
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
112 */
dafa46c6 113 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
114
115 AliHLTModulePreprocessor* GetPreprocessor();
6b87e199 116
117 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
118 public:
119 AliHLTOUTSDDRawDataHandler() {}
120 ~AliHLTOUTSDDRawDataHandler() {}
121 int ProcessData(AliHLTOUT* pData);
122 private:
123 };
124
68315dc4 125 /**
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
132 */
133 int CreateCFConfigurations(AliHLTConfigurationHandler* pHandler, int detectorId, TString& output) const;
134
dafa46c6 135 protected:
136
137 private:
68315dc4 138
dafa46c6 139 /** copy constructor prohibited */
140 AliHLTITSAgent(const AliHLTITSAgent&);
141 /** assignment operator prohibited */
142 AliHLTITSAgent& operator=(const AliHLTITSAgent&);
143
144 /** handler for ITS raw data in the HLTOUT stream */
145 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
146
147 /** ROOT specific member definition */
148 ClassDef(AliHLTITSAgent, 0);
149};
150
151#endif