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