]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/calibration/AliHLTTPCCalibrationAgent.h
test if I have commit rights
[u/mrichter/AliRoot.git] / HLT / TPCLib / calibration / AliHLTTPCCalibrationAgent.h
1 //-*- Mode: C++ -*-
2
3 // $Id$
4
5 #ifndef ALIHLTTPCCALIBRATIONAGENT_H
6 #define ALIHLTTPCCALIBRATIONAGENT_H
7 //* This file is property of and copyright by the ALICE HLT Project        * 
8 //* ALICE Experiment at CERN, All rights reserved.                         *
9 //* See cxx source for full Copyright notice                               *
10
11 /** @file   AliHLTTPCCalibrationAgent.h
12     @author Kalliopi Kanaki
13     @date   
14     @brief  Agent of the libAliHLTTPCCalibration library
15 */
16
17 #include "AliHLTModuleAgent.h"
18
19 // raw data handler of HLTOUT data
20 #include "AliHLTOUTHandlerEquId.h"
21
22 /**
23  * @class AliHLTTPCCalibrationAgent
24  * This is the agent for the AliHLTTPCCalibration library.<br>
25  *
26  * @ingroup alihlt_tpc
27  */
28 class AliHLTTPCCalibrationAgent : public AliHLTModuleAgent {
29  public:
30   
31   /*
32    * ---------------------------------------------------------------------------------
33    *                            Constructor / Destructor
34    * ---------------------------------------------------------------------------------
35    */
36
37   /**
38    * standard constructor. The agent is automatically registered in the
39    * global agent manager
40    */
41   AliHLTTPCCalibrationAgent();
42   
43   /** destructor */
44   virtual ~AliHLTTPCCalibrationAgent();
45
46   /*
47    * ---------------------------------------------------------------------------------
48    *                            
49    * ---------------------------------------------------------------------------------
50    */
51
52   /**
53    * Register all configurations belonging to the sample library with the
54    * AliHLTConfigurationHandler. The agent can adapt the configurations
55    * to be registered to the current AliRoot setup by checking the
56    * runloader.
57    * @param [in] handler   the configuration handler
58    * @param [in] rawReader AliRoot RawReader instance 
59    * @param [in] runloader AliRoot runloader
60    * @return neg. error code if failed
61    */
62   Int_t CreateConfigurations(AliHLTConfigurationHandler* handler,
63                              AliRawReader* rawReader=NULL,
64                              AliRunLoader* runloader=NULL) const;
65
66   /**
67    * Get the top configurations for local event reconstruction.
68    * A top configuration describes a processing chain. It can simply be
69    * described by the last configuration(s) in the chain. 
70    * The agent can adapt the configurations to be registered to the current
71    * AliRoot setup by checking the runloader.
72    * @param [in] rawReader AliRoot RawReader instance 
73    * @param [in] runloader AliRoot runloader
74    * @return string containing the top configurations separated by blanks
75    */
76   const Char_t* GetReconstructionChains(AliRawReader* rawReader=NULL,
77                                         AliRunLoader* runloader=NULL) const;
78
79   /**
80    * Component libraries which the configurations of this agent depend on.
81    * @return list of component libraries as a blank-separated string.
82    */
83   const Char_t* GetRequiredComponentLibraries() const;
84
85   /**
86    * Register components for the AliHLTSample library.
87    * @param [in] pHandler  instance of the component handler          
88    */
89   Int_t RegisterComponents(AliHLTComponentHandler* pHandler) const;
90
91   /*
92    * ---------------------------------------------------------------------------------
93    *                            
94    * ---------------------------------------------------------------------------------
95    */
96
97   /**
98    *
99    */
100   AliHLTModulePreprocessor* GetPreprocessor();
101   
102   /*
103    * ---------------------------------------------------------------------------------
104    *                            
105    * ---------------------------------------------------------------------------------
106    */
107
108   /**
109    *
110    */
111   Int_t GetHandlerDescription(AliHLTComponentDataType dt,
112                               AliHLTUInt32_t spec,
113                               AliHLTOUTHandlerDesc& desc) const;
114
115   /**
116    *
117    */
118   AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
119                                      AliHLTUInt32_t spec);
120
121   /**
122    *
123    */
124   Int_t DeleteOutputHandler(AliHLTOUTHandler* pInstance);
125
126   /*
127      class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
128      public:
129      AliHLTOUTSDDRawDataHandler() {}
130      ~AliHLTOUTSDDRawDataHandler() {}
131      int ProcessData(AliHLTOUT* pData);
132      private:
133      };
134   */
135
136  protected:
137
138  private:
139
140   /*
141    * ---------------------------------------------------------------------------------
142    * Private functions to implement AliHLTComponent's interface.
143    * These functions provide initialization as well as the actual processing
144    * capabilities of the component. 
145    * ---------------------------------------------------------------------------------
146    */
147   
148   /** Copy constructor prohibited */
149   AliHLTTPCCalibrationAgent(const AliHLTTPCCalibrationAgent&);
150   
151   /** Assignment operator prohibited */
152   AliHLTTPCCalibrationAgent& operator=(const AliHLTTPCCalibrationAgent&);
153
154   /*
155    * ---------------------------------------------------------------------------------
156    *                                     Members
157    * ---------------------------------------------------------------------------------
158    */
159
160   /** Handler for TPC calibration data in the HLTOUT stream */
161   AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
162
163   /** ROOT specific member definition */
164   ClassDef(AliHLTTPCCalibrationAgent, 0);
165 };
166
167 #endif