]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/OnlineAnalysis/AliHLTMUONTriggerReconstructorComponent.h
Reimplemented the lookup table. It is now much simpler, smaller and faster to use.
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONTriggerReconstructorComponent.h
1 #ifndef AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H
2 #define AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H
3 /* This file is property of and copyright by the ALICE HLT Project        *
4  * ALICE Experiment at CERN, All rights reserved.                         *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 /**
10  * @file   AliHLTMUONTriggerReconstructorComponent.h
11  * @author Indranil Das <indra.das@saha.ac.in>, Artur Szostak <artursz@iafrica.com>
12  * @date
13  * @brief  A processing component for the dHLT trigger DDL reconstruction.
14  */
15
16 #include "AliHLTProcessor.h"
17 #include "AliHLTMUONDataTypes.h"
18
19 #if __GNUC__ < 3
20 #define std
21 #endif
22
23 class AliHLTMUONTriggerReconstructor;
24
25 /**
26  * @class AliHLTMUONTriggerReconstructorComponent
27  * @brief A processing component for the dHLT trigger DDL reconstruction.
28  */
29 class AliHLTMUONTriggerReconstructorComponent : public AliHLTProcessor
30 {
31 public:
32         AliHLTMUONTriggerReconstructorComponent();
33         virtual ~AliHLTMUONTriggerReconstructorComponent();
34
35         // Public functions to implement AliHLTComponent's interface.
36         // These functions are required for the registration process
37
38         const char* GetComponentID();
39         void GetInputDataTypes( std::vector<AliHLTComponentDataType>& list);
40         AliHLTComponentDataType GetOutputDataType();
41         virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
42         AliHLTComponent* Spawn();
43
44 protected:
45
46         // Protected functions to implement AliHLTComponent's interface.
47         // These functions provide initialization as well as the actual processing
48         // capabilities of the component.
49         
50         virtual int DoInit(int argc, const char** argv);
51         virtual int DoDeinit();
52
53         virtual int DoEvent(
54                         const AliHLTComponentEventData& evtData,
55                         const AliHLTComponentBlockData* blocks,
56                         AliHLTComponentTriggerData& trigData,
57                         AliHLTUInt8_t* outputPtr,
58                         AliHLTUInt32_t& size,
59                         std::vector<AliHLTComponentBlockData>& outputBlocks
60                 );
61
62 private:
63
64         bool ReadLookUpTable(const char* lutpath);
65         
66         AliHLTMUONTriggerReconstructor* fTrigRec; // The trigger reconstructor class implementing the algorithm.
67         AliHLTInt32_t fDDL;   // The DDL number in the range 20..21 from which to expect input.
68         bool fWarnForUnexpecedBlock;  // Flag indicating if we should log a warning if we got a block of an unexpected type.
69         bool fSuppressPartialTrigs;   // Flag indicating if we should suppress triggers that did not trigger the L0
70
71         ClassDef(AliHLTMUONTriggerReconstructorComponent, 0)
72
73 };
74
75 #endif // AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H