]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/ITS/AliHLTITSClusterFinderSPDComponent.h
b75f9b461bf87d85257ea326c85fe26229081a4d
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSClusterFinderSPDComponent.h
1
2 #ifndef ALIHLTITSCLUSTERFINDERSPDCOMPONENT_H
3 #define ALIHLTITSCLUSTERFINDERSPDCOMPONENT_H
4
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   AliHLTITSClusterFinderSPDComponent.cxx
10     @author Gaute Ã˜vrebekk <st05886@alf.uib.no>
11     @date   
12     @brief  Component to run the offline clusterfinder.
13 */
14
15 #include "AliHLTProcessor.h"
16 #include "AliRawReaderMemory.h"
17 #include "AliITSClusterFinderV2SPD.h"
18 #include "TClonesArray.h"
19 #include "AliITSDetTypeRec.h"
20 #include "AliITSCalibrationSPD.h"
21 #include "AliITSgeom.h"
22 #include "AliITSInitGeometry.h"
23
24 /**
25  * @class AliHLTITSClusterFinderSPDComponent
26  * Component to run the offline clusterfinder.
27  *
28  * @ingroup alihlt_its_components
29  */
30
31 class AliHLTITSClusterFinderSPDComponent : public AliHLTProcessor
32 {
33  public:
34
35   /*
36    * ---------------------------------------------------------------------------------
37    *                            Constructor / Destructor
38    * ---------------------------------------------------------------------------------
39    */
40   
41   /** constructor */
42   AliHLTITSClusterFinderSPDComponent();
43
44   /** destructor */
45   virtual ~AliHLTITSClusterFinderSPDComponent();
46
47   /*
48    * ---------------------------------------------------------------------------------
49    * Public functions to implement AliHLTComponent's interface.
50    * These functions are required for the registration process
51    * ---------------------------------------------------------------------------------
52    */
53
54   /** interface function, see @ref AliHLTComponent for description */
55   const char* GetComponentID();
56
57   /** interface function, see @ref AliHLTComponent for description */
58    void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
59
60   /** interface function, see @ref AliHLTComponent for description */
61   AliHLTComponentDataType GetOutputDataType();
62
63   /** interface function, see @ref AliHLTComponent for description */
64   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
65
66   /** interface function, see @ref AliHLTComponent for description */
67   AliHLTComponent* Spawn();
68
69  protected:
70         
71   /*
72    * ---------------------------------------------------------------------------------
73    * Protected functions to implement AliHLTComponent's interface.
74    * These functions provide initialization as well as the actual processing
75    * capabilities of the component. 
76    * ---------------------------------------------------------------------------------
77    */
78         
79   /** Initialization */
80   Int_t DoInit( int argc, const char** argv );
81
82   /** DeInitialization */
83   Int_t DoDeinit();
84   
85   Int_t fNModules;             // total number of modules
86
87   /** EventLoop */
88   //Int_t DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
89   //     AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr
90   //     ,AliHLTUInt32_t& size, AliHLTComponentBlockList& outputBlocks);
91
92   Int_t DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/);
93                 
94   using AliHLTProcessor::DoEvent;
95  
96   ///////////////////////////////////////////////////////////////////////////////////
97     
98     private:
99   
100   /** copy constructor prohibited */
101   AliHLTITSClusterFinderSPDComponent(const AliHLTITSClusterFinderSPDComponent&);
102   /** assignment operator prohibited */
103   AliHLTITSClusterFinderSPDComponent& operator=(const AliHLTITSClusterFinderSPDComponent&);
104
105   /*
106    * ---------------------------------------------------------------------------------
107    *                             Members - private
108    * ---------------------------------------------------------------------------------
109    */
110
111   /** the cluster finder object */
112   AliITSClusterFinderV2SPD* fClusterFinder;                   //!transient
113
114   /** the reader object for data decoding */
115   AliRawReaderMemory* fRawReader;                             //!transient
116
117   AliITSDetTypeRec* fDettype;                                 //!transient
118
119   TClonesArray** fClusters;                                   //!transient
120
121   AliITSCalibrationSPD* fcal;                                 //!transient
122
123   AliITSgeom* fgeom;                                          //!transient
124
125   AliITSInitGeometry* fgeomInit;                              //!transient
126   
127   ClassDef(AliHLTITSClusterFinderSPDComponent, 0)
128     
129     };
130 #endif