The trigger reconstructor component now generates the correct data format.
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONTriggerReconstructorComponent.h
1 #ifndef AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H
2 #define AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H
3 /**************************************************************************
4  * This file is property of and copyright by the ALICE HLT Project        * 
5  * All rights reserved.                                                   *
6  *                                                                        *
7  * Primary Authors:                                                       *
8  *   Indranil Das <indra.das@saha.ac.in>                                  *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          * 
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18
19 /* $Id$ */
20
21 /** @file   AliHLTMUONTriggerReconstructorComponent.h
22     @author Timm Steinbeck, Matthias Richter
23     @date   
24     @brief  A processing component for the dHLT trigger DDL reconstruction. */
25
26
27 #include "AliHLTProcessor.h"
28 #include "AliHLTMUONTriggerReconstructor.h"
29 #include "AliHLTMUONHitReconstructor.h"
30
31 #if __GNUC__ < 3
32 #define std
33 #endif
34
35 /**
36  * @class AliHLTMUONTriggerReconstructorComponent
37  * @brief A dummy HLT processing component. 
38  *
39  * An implementiation of a dummy component that just copies its input data
40  * as a test, demonstration, and example of the HLT component scheme.
41  * @ingroup alihlt_tutorial
42  */
43 class AliHLTMUONTriggerReconstructorComponent : public AliHLTProcessor
44 {
45 public:
46         AliHLTMUONTriggerReconstructorComponent();
47         virtual ~AliHLTMUONTriggerReconstructorComponent();
48
49         // Public functions to implement AliHLTComponent's interface.
50         // These functions are required for the registration process
51
52         const char* GetComponentID();
53         void GetInputDataTypes( std::vector<AliHLTComponentDataType>& list);
54         AliHLTComponentDataType GetOutputDataType();
55         virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
56         AliHLTComponent* Spawn();
57
58 protected:
59
60         // Protected functions to implement AliHLTComponent's interface.
61         // These functions provide initialization as well as the actual processing
62         // capabilities of the component. 
63
64         int DoInit(int argc, const char** argv);
65         int DoDeinit();
66
67         int DoEvent(
68                         const AliHLTComponentEventData& evtData,
69                         const AliHLTComponentBlockData* blocks, 
70                         AliHLTComponentTriggerData& trigData,
71                         AliHLTUInt8_t* outputPtr, 
72                         AliHLTUInt32_t& size,
73                         std::vector<AliHLTComponentBlockData>& outputBlocks
74                 );
75
76 private:
77
78         AliHLTMUONTriggerReconstructor* fTrigRec;
79
80         bool ReadLookUpTable(AliHLTMUONHitReconstructor::DHLTLut* lookupTable, const char* lutpath);
81         bool ReadRegToLocMap(AliHLTMUONTriggerReconstructor::RegToLoc* regToLoc,const char* reglocFileName);
82
83         TString fDDLDir;
84         Int_t fDDL;
85
86         ClassDef(AliHLTMUONTriggerReconstructorComponent, 0)
87
88 };
89     
90 #endif // AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H