adding the ITS library agent with handler of {DDLRAW :ITS } data blocks in HLTOUT...
[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
17class AliHLTOUTHandlerEquId;
18
19/**
20 * @class AliHLTITSAgent
21 * This is the agent for the AliHLTSample library.<br>
22 *
23 * The egent implements the HLTOUT handling of raw data blocks from the
24 * ITS (all of the 3 detectors). This assumes that the data blocks are sent
25 * with data type {DDL_RAW :ITS } and the equipment id as specification.
26 * The agent indicates that such a block is handled by the
27 * AliHLTOUTHandlerEquId and its default behavior.
28 *
29 * @ingroup alihlt_its
30 */
31class AliHLTITSAgent : public AliHLTModuleAgent {
32 public:
33 /**
34 * standard constructor. The agent is automatically registered in the
35 * global agent manager
36 */
37 AliHLTITSAgent();
38 /** destructor */
39 virtual ~AliHLTITSAgent();
40
41 /**
42 * Register all configurations belonging to the sample library with the
43 * AliHLTConfigurationHandler. The agent can adapt the configurations
44 * to be registered to the current AliRoot setup by checking the
45 * runloader.
46 * @param handler [in] the configuration handler
47 * @param rawReader [in] AliRoot RawReader instance
48 * @param runloader [in] AliRoot runloader
49 * @return neg. error code if failed
50 */
51 int CreateConfigurations(AliHLTConfigurationHandler* handler,
52 AliRawReader* rawReader=NULL,
53 AliRunLoader* runloader=NULL) const;
54
55 /**
56 * Get the top configurations for local event reconstruction.
57 * A top configuration describes a processing chain. It can simply be
58 * described by the last configuration(s) in the chain.
59 * The agent can adapt the configurations to be registered to the current
60 * AliRoot setup by checking the runloader.
61 * @param rawReader [in] AliRoot RawReader instance
62 * @param runloader [in] AliRoot runloader
63 * @return string containing the top configurations separated by blanks
64 */
65 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
66 AliRunLoader* runloader=NULL) const;
67
68 /**
69 * Component libraries which the configurations of this agent depend on.
70 * @return list of component libraries as a blank-separated string.
71 */
72 const char* GetRequiredComponentLibraries() const;
73
74 /**
75 * Register components for the AliHLTSample library.
76 * @param pHandler [in] instance of the component handler
77 */
78 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
79
80 int GetHandlerDescription(AliHLTComponentDataType dt,
81 AliHLTUInt32_t spec,
82 AliHLTOUTHandlerDesc& desc) const;
83 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
84 AliHLTUInt32_t spec);
85 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
86
87 AliHLTModulePreprocessor* GetPreprocessor();
88 protected:
89
90 private:
91 /** copy constructor prohibited */
92 AliHLTITSAgent(const AliHLTITSAgent&);
93 /** assignment operator prohibited */
94 AliHLTITSAgent& operator=(const AliHLTITSAgent&);
95
96 /** handler for ITS raw data in the HLTOUT stream */
97 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
98
99 /** ROOT specific member definition */
100 ClassDef(AliHLTITSAgent, 0);
101};
102
103#endif