06f50a829b1b817752cd6914a025ff6f7a10d1de
[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  Declaration of a dummy component. */
25
26
27 #include "AliHLTProcessor.h"
28 #include "AliHLTMUONConstants.h"
29
30 #include "AliHLTMUONTriggerReconstructor.h"
31
32
33 /**
34  * @class AliHLTMUONTriggerReconstructorComponent
35  * @brief A dummy HLT processing component. 
36  *
37  * An implementiation of a dummy component that just copies its input data
38  * as a test, demonstration, and example of the HLT component scheme.
39  * @ingroup alihlt_tutorial
40  */
41 class AliHLTMUONTriggerReconstructorComponent : public AliHLTProcessor
42     {
43     public:
44         AliHLTMUONTriggerReconstructorComponent();
45         virtual ~AliHLTMUONTriggerReconstructorComponent();
46
47         // Public functions to implement AliHLTComponent's interface.
48         // These functions are required for the registration process
49
50         const char* GetComponentID();
51         void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
52         AliHLTComponentDataType GetOutputDataType();
53         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
54         AliHLTComponent* Spawn();
55         
56     protected:
57         
58         // Protected functions to implement AliHLTComponent's interface.
59         // These functions provide initialization as well as the actual processing
60         // capabilities of the component. 
61
62         int DoInit( int argc, const char** argv );
63         int DoDeinit();
64         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
65                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
66                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
67         
68     private:
69
70         // The size of the output data produced, as a percentage of the input data's size.
71         // Can be greater than 100 (%)
72         unsigned fOutputPercentage;
73         
74         AliHLTMUONTriggerReconstructor* fTrigRec;
75         bool ReadLookUpTable(AliHLTMUONHitReconstructor::DHLTLut* lookupTable, const char* lutpath);
76
77         TString fDDLDir;
78         Int_t fDDL;
79
80         ClassDef(AliHLTMUONTriggerReconstructorComponent, 0)
81
82     };
83
84 #endif // AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H