]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCClusterConverterComponent.h
- adjusting binning of pad histograms to make single pad cluster contribution and...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterConverterComponent.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
4 #ifndef ALIHLTTPCCLUSTERCONVERTERCOMPONENT_H
5 #define ALIHLTTPCCLUSTERCONVERTERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project        * 
7 //* ALICE Experiment at CERN, All rights reserved.                         *
8 //* See cxx source for full Copyright notice                               *
9
10 /** @file   AliHLTTPCClusterConverterComponent.h
11     @author Kalliopi Kanaki
12     @date   
13     @brief  The TPC cluster format conversion component.
14 */
15
16 #include "AliHLTProcessor.h"
17
18 class AliHLTTPCSpacePointData;
19 class AliHLTTPCTrackSegmentData;
20 class TObjArray;
21
22 /**
23  * @class AliHLTTPCClusterConverterComponent
24  * The TPC cluster format conversion component
25  *
26  * The purpose of the component is publishing the 
27  * USED clusters of the tracks, translating them to
28  * the offline format. For this reason, it subscribes
29  * to the cluster finder, the slice tracker and the
30  * global merger.
31  *
32  * @ingroup alihlt_tpc_components
33  */
34  
35 class AliHLTTPCClusterConverterComponent : public AliHLTProcessor{
36
37 public:
38   /** default constructor */
39   AliHLTTPCClusterConverterComponent();
40   /** destructor */
41   virtual ~AliHLTTPCClusterConverterComponent();
42
43   // Public functions to implement AliHLTComponent's interface.
44   // These functions are required for the registration process
45
46   /** interface function, see AliHLTComponent for description */
47   const char* GetComponentID();
48   /** interface function, see AliHLTComponent for description */
49   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
50   /** interface function, see AliHLTComponent for description */
51   AliHLTComponentDataType GetOutputDataType();
52   /** interface function, see AliHLTComponent for description */
53   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
54   /** interface function, see AliHLTComponent for description */
55   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
56   /** interface function, see AliHLTComponent for description */
57   AliHLTComponent* Spawn();
58
59 protected:
60
61   /** interface function, see AliHLTComponent for description */
62   int DoInit( int argc, const char** argv );
63   /** interface function, see AliHLTComponent for description */
64   int DoDeinit();
65   /** interface function, see AliHLTComponent for description */
66   int DoEvent(const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& trigData);
67
68   int Reconfigure(const char* cdbEntry, const char* chainId);
69
70   using AliHLTProcessor::DoEvent;
71   
72 private:
73   /** copy constructor prohibited */
74   AliHLTTPCClusterConverterComponent(const AliHLTTPCClusterConverterComponent&);
75   /** assignment operator prohibited */
76   AliHLTTPCClusterConverterComponent& operator=(const AliHLTTPCClusterConverterComponent&);
77   /**
78    * Configure the component.
79    * Parse a string for the configuration arguments and set the component
80    * properties.
81    */  
82   int Configure(const char* arguments);
83   
84   vector<AliHLTTPCSpacePointData>   fClusters; //! transient
85   vector<AliHLTTPCTrackSegmentData> fTracks;   //!transient
86   TObjArray *fOffArray;                        //!transient
87   
88   ClassDef(AliHLTTPCClusterConverterComponent, 0);
89
90 };
91 #endif