78ca0e63faa944c9a2e4b978e4f967e1deb0ac6e
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONHitReconstructorComponent.h
1 #ifndef ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
2 #define ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///*  @file   AliHLTMUONHitReconstructorComponent.h
9 // *  @author Indranil Das <indra.das@saha.ac.in> | <indra.ehep@gmail.com>
10 // *  @date   
11 // *  @brief  Hit Reconstruction processing component for the dimuon HLT. 
12 // */
13
14 #include "AliHLTProcessor.h"
15 #include "AliHLTMUONConstants.h"
16
17 #include "AliHLTMUONHitReconstructor.h"
18 //class AliHLTMUONHitReconstructor;
19
20
21 class AliHLTMUONHitReconstructorComponent : public AliHLTProcessor {
22
23 public:
24   AliHLTMUONHitReconstructorComponent();
25   virtual ~AliHLTMUONHitReconstructorComponent();
26
27   const char* GetComponentID() /*const*/ { return "MUONHitRec";}
28
29   void GetInputDataTypes( vector<AliHLTComponentDataType>& list) {
30     list.clear();
31     list.push_back( AliHLTMUONConstants::TrackingDDLRawDataType() );
32   }
33   
34   AliHLTComponentDataType GetOutputDataType() /*const*/ {return AliHLTMUONConstants::RecHitsBlockDataType();}
35   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) {constBase = 0;inputMultiplier = 0;};
36
37   // Spawn function, return new class instance
38   AliHLTComponent* Spawn() /*const*/ {return new AliHLTMUONHitReconstructorComponent;};
39
40  protected:
41   
42   int DoInit( int argc, const char** argv );
43   int DoDeinit();
44   int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
45                        AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
46                        AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
47
48 private:
49   
50   // Do not allow to copy these objects.
51   AliHLTMUONHitReconstructorComponent(const AliHLTMUONHitReconstructorComponent& /*object*/);
52   AliHLTMUONHitReconstructorComponent& operator = (const AliHLTMUONHitReconstructorComponent& /*object*/);
53   
54   /** array of input data types */
55
56   AliHLTMUONHitReconstructor* fHitRec;   // Class instance implementing the hit reconstruction algorithm.
57   bool ReadLookUpTable(AliHLTMUONHitReconstructor::DHLTLut* lookupTable, const char* lutpath, int iDDL);
58   bool ReadBusPatchToDetElemFile(BusToDetElem& busToDetElem, const char* buspatchmappath);
59
60
61   ClassDef(AliHLTMUONHitReconstructorComponent, 0)
62 };
63
64 #endif // ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H