]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/trigger/AliHLTTriggerAgent.h
including the CTPData to the input objects of the HLTGlobalTriggerDecision
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerAgent.h
CommitLineData
89858ccc 1// $Id$
2
3#ifndef ALIHLTTRIGGERAGENT_H
4#define ALIHLTTRIGGERAGENT_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 AliHLTTriggerAgent.h
10 @author Matthias Richter
11 @date
12 @brief Agent of the libAliHLTTrigger library
13*/
14
15#include "AliHLTModuleAgent.h"
18a9a5ad 16#include "AliHLTOUTHandler.h"
89858ccc 17
18a9a5ad 18class AliESDEvent;
19class TArrayC;
89858ccc 20
21/**
22 * @class AliHLTTriggerAgent
23 * This is the agent for the AliHLTTrigger library.
24 *
25 * @ingroup alihlt_system
26 */
27class AliHLTTriggerAgent : public AliHLTModuleAgent {
28 public:
29 /**
30 * standard constructor. The agent is automatically registered in the
31 * global agent manager
32 */
33 AliHLTTriggerAgent();
34 /** destructor */
35 virtual ~AliHLTTriggerAgent();
36
37 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
38
c86017ac 39 /**
40 * Inherited from AliHLTModuleAgent
41 * Register all configurations belonging to this module with the
42 * AliHLTConfigurationHandler. The agent can adapt the configurations
43 * to be registered to the current AliRoot setup by checking the
44 * runloader.
45 * @param handler the configuration handler
46 * @param rawReader AliRawReader instance
47 * @param runloader AliRoot runloader
48 * @return neg. error code if failed
49 */
50 int CreateConfigurations(AliHLTConfigurationHandler* handler,
51 AliRawReader* rawReader=NULL,
52 AliRunLoader* runloader=NULL) const;
53
54 /**
55 * Inherited from AliHLTModuleAgent
56 * Get the top configurations belonging to this module.
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 AliRawReader instance
62 * @param runloader AliRoot runloader
63 * @return number of configurations, neg. error code if failed
64 */
65 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
66 AliRunLoader* runloader=NULL) const;
67
68 /**
69 * Inherited from AliHLTModuleAgent
70 * Component libraries which the configurations of this agent depend on.
71 * @return list of component libraries as a blank-separated string.
72 */
73 const char* GetRequiredComponentLibraries() const;
74
89858ccc 75 int GetHandlerDescription(AliHLTComponentDataType dt,
76 AliHLTUInt32_t spec,
77 AliHLTOUTHandlerDesc& desc) const;
78
79 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt, AliHLTUInt32_t spec);
80
81 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
82
18a9a5ad 83 /**
84 * The handler for trigger decision blocks in the HLTOUT stream.
85 */
86 class AliHLTTriggerDecisionHandler : public AliHLTOUTHandler {
87 public:
88 /** constructor */
89 AliHLTTriggerDecisionHandler();
90 /** destructor */
91 ~AliHLTTriggerDecisionHandler();
92
93 /**
94 * Process a data block.
95 * Decode specification and return equipment id of the data block.
96 * The data itsself i untouched.
97 * @return equipment id the block should be used for.
98 */
99 int ProcessData(AliHLTOUT* pData);
100
101 /** inherited from AliHLTOUTHandler */
102 int GetProcessedData(const AliHLTUInt8_t* &pData);
103
104 /** inherited from AliHLTOUTHandler */
105 int ReleaseProcessedData(const AliHLTUInt8_t* pData, int size);
106
107 private:
f1574126 108 /** copy constructor forbidden */
109 AliHLTTriggerDecisionHandler(const AliHLTTriggerDecisionHandler&);
110 /** assignment operator forbidden */
111 AliHLTTriggerDecisionHandler& operator=(const AliHLTTriggerDecisionHandler&);
112
18a9a5ad 113 AliESDEvent* fESD; //!
114 TArrayC* fpData; //!
115 int fSize; //!
116 };
89858ccc 117 protected:
118
119 private:
120 /** copy constructor prohibited */
121 AliHLTTriggerAgent(const AliHLTTriggerAgent&);
122 /** assignment operator prohibited */
123 AliHLTTriggerAgent& operator=(const AliHLTTriggerAgent&);
124
18a9a5ad 125 /** handler for trigger decision blocks */
126 AliHLTTriggerDecisionHandler* fTriggerDecisionHandler; //!
127
128 ClassDef(AliHLTTriggerAgent, 1);
89858ccc 129};
130
131#endif