Separate library for pi0 calibration.
[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 /**
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
48 * runloader.
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
53 */
54 int CreateConfigurations(AliHLTConfigurationHandler* handler,
55 AliRawReader* rawReader=NULL,
56 AliRunLoader* runloader=NULL) const;
57
58 /**
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
67 */
68 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
69 AliRunLoader* runloader=NULL) const;
70
71 /**
72 * Component libraries which the configurations of this agent depend on.
73 * @return list of component libraries as a blank-separated string.
74 */
75 const char* GetRequiredComponentLibraries() const;
76
77 /**
78 * Register components for the AliHLTSample library.
79 * @param pHandler [in] instance of the component handler
80 */
81 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
82
83 int GetHandlerDescription(AliHLTComponentDataType dt,
84 AliHLTUInt32_t spec,
85 AliHLTOUTHandlerDesc& desc) const;
86 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
87 AliHLTUInt32_t spec);
88 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
89
90 AliHLTModulePreprocessor* GetPreprocessor();
6b87e199 91
92 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
93 public:
94 AliHLTOUTSDDRawDataHandler() {}
95 ~AliHLTOUTSDDRawDataHandler() {}
96 int ProcessData(AliHLTOUT* pData);
97 private:
98 };
99
dafa46c6 100 protected:
101
102 private:
103 /** copy constructor prohibited */
104 AliHLTITSAgent(const AliHLTITSAgent&);
105 /** assignment operator prohibited */
106 AliHLTITSAgent& operator=(const AliHLTITSAgent&);
107
108 /** handler for ITS raw data in the HLTOUT stream */
109 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
110
111 /** ROOT specific member definition */
112 ClassDef(AliHLTITSAgent, 0);
113};
114
115#endif