AliHLTFMD module
[u/mrichter/AliRoot.git] / HLT / FMD / AliHLTFMDReconstructionComponent.h
1
2 #ifndef ALIHLTFMDRECONSTRUCTIONCOMPONENT_H
3 #define ALIHLTFMDRECONSTRUCTIONCOMPONENT_H
4
5 #include "AliHLTProcessor.h"
6 #include "AliFMDReconstructor.h"
7 #include "AliFMDDigit.h"
8 #include "AliESDEvent.h"
9
10 class AliHLTFMDReconstructionComponent : public AliHLTProcessor
11 {
12     public:
13       AliHLTFMDReconstructionComponent();
14         virtual ~AliHLTFMDReconstructionComponent();
15         
16         const char* GetComponentID()  { return "FMDReconstruction"; }
17         void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
18         AliHLTComponentDataType GetOutputDataType();
19         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
20         AliHLTComponent* Spawn();
21         Int_t GetRunNumber() {return fRunNumber;}
22     protected:
23         
24         int DoInit( int argc, const char** argv );
25         int DoDeinit();
26         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
27                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
28                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
29         
30         using AliHLTProcessor::DoEvent;
31                 
32         class AliHLTFMDReconstructor : public AliFMDReconstructor {
33         public:
34           AliHLTFMDReconstructor();
35           ~AliHLTFMDReconstructor() {};
36           AliESDFMD* GetFMDData() { return fESDObj; }
37           void ReconstructDigits(TClonesArray* digitArray) {ProcessDigits(digitArray);}
38         private:
39           
40         };
41                 
42         
43     private:
44         
45         unsigned long int fRunNumber;
46         ClassDef(AliHLTFMDReconstructionComponent, 0)
47
48     };
49 #endif