adding first version of the digit publisher component for ITS (Sergey/Kenneth/Gaute)
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSDigitPublisherComponent.h
1 //-*- Mode: C++ -*-
2 #ifndef ALIHLTITSDIGITPUBLISHERCOMPONENT_H
3 #define ALIHLTITSDIGITPUBLISHERCOMPONENT_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   AliHLTITSDigitPublisherComponent.cxx
10     @author Kenneth Aamodt, Sergey Gorbunov
11     @date   
12     @brief  Component to run the offline clusterfinder.
13 */
14
15 #include "AliHLTOfflineDataSource.h"
16 class AliRunLoader;
17 class AliITSLoader;
18 class TClonesArray;
19 class TTree;
20 /**
21  * @class AliHLTITSDigitPublisherComponent
22  *
23  */
24 class AliHLTITSDigitPublisherComponent : public AliHLTOfflineDataSource
25 {
26  public:
27   
28   
29   /** 
30    * constructor
31    */
32   AliHLTITSDigitPublisherComponent();
33
34   /** destructor */
35   virtual ~AliHLTITSDigitPublisherComponent();
36
37   /*
38    * ---------------------------------------------------------------------------------
39    * Public functions to implement AliHLTComponent's interface.
40    * These functions are required for the registration process
41    * ---------------------------------------------------------------------------------
42    */
43
44   /** interface function, see @ref AliHLTComponent for description */
45   const char* GetComponentID();
46
47   /** interface function, see @ref AliHLTComponent for description */
48    void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
49
50   /** interface function, see @ref AliHLTComponent for description */
51   AliHLTComponentDataType GetOutputDataType();
52
53   /** interface function, see @ref AliHLTComponent for description */
54   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
55
56   /** interface function, see @ref AliHLTComponent for description */
57   AliHLTComponent* Spawn();
58
59  protected:
60         
61   /*
62    * ---------------------------------------------------------------------------------
63    * Protected functions to implement AliHLTComponent's interface.
64    * These functions provide initialization as well as the actual processing
65    * capabilities of the component. 
66    * ---------------------------------------------------------------------------------
67    */
68         
69   /** Initialization */
70   Int_t DoInit( int argc, const char** argv );
71
72   /** DeInitialization */
73   Int_t DoDeinit();
74   
75   /** EventLoop */
76   Int_t GetEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
77
78   ///////////////////////////////////////////////////////////////////////////////////
79     
80  private:
81   /** copy constructor prohibited */
82   AliHLTITSDigitPublisherComponent(const AliHLTITSDigitPublisherComponent&);
83   /** assignment operator prohibited */
84   AliHLTITSDigitPublisherComponent& operator=(const AliHLTITSDigitPublisherComponent&);
85
86   AliRunLoader * fRunLoader;
87   AliITSLoader * fITSLoader;
88   Int_t fNumberOfEvents;
89   Int_t fEventNumber;
90   TTree *tD;
91
92   ClassDef(AliHLTITSDigitPublisherComponent, 0)
93     
94 };
95 #endif