]>
Commit | Line | Data |
---|---|---|
6efe69e7 | 1 | #ifndef AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H |
2 | #define AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H | |
b39b98c8 | 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 */ | |
6efe69e7 | 6 | |
7 | /* $Id$ */ | |
8 | ||
6253e09b | 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 | /// | |
6efe69e7 | 15 | |
16 | #include "AliHLTProcessor.h" | |
b39b98c8 | 17 | #include "AliHLTMUONDataTypes.h" |
6efe69e7 | 18 | |
e29a165d | 19 | #if __GNUC__ && __GNUC__ < 3 |
960d54ad | 20 | #define std |
21 | #endif | |
6efe69e7 | 22 | |
b39b98c8 | 23 | class AliHLTMUONTriggerReconstructor; |
24 | ||
6efe69e7 | 25 | /** |
26 | * @class AliHLTMUONTriggerReconstructorComponent | |
b39b98c8 | 27 | * @brief A processing component for the dHLT trigger DDL reconstruction. |
6efe69e7 | 28 | */ |
29 | class AliHLTMUONTriggerReconstructorComponent : public AliHLTProcessor | |
227e7192 | 30 | { |
31 | public: | |
6efe69e7 | 32 | AliHLTMUONTriggerReconstructorComponent(); |
33 | virtual ~AliHLTMUONTriggerReconstructorComponent(); | |
34 | ||
35 | // Public functions to implement AliHLTComponent's interface. | |
36 | // These functions are required for the registration process | |
37 | ||
6253e09b | 38 | virtual const char* GetComponentID(); |
39 | virtual void GetInputDataTypes( std::vector<AliHLTComponentDataType>& list); | |
40 | virtual AliHLTComponentDataType GetOutputDataType(); | |
960d54ad | 41 | virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); |
6253e09b | 42 | virtual AliHLTComponent* Spawn(); |
c95cf30c | 43 | |
44 | /** | |
45 | * Generates a binary file containing the lookup table (LUT) from the | |
46 | * CDB, which can be used for the trigger reconstructor component later. | |
47 | * @param ddl Must be the DDL for which to generate the DDL, | |
48 | * in the range [20..21]. | |
49 | * @param filename The name of the LUT file to generate. | |
50 | * @param cdbPath The CDB path to use. | |
51 | * @param run The run number to use for the CDB. | |
52 | * @return True if the generation of the LUT file succeeded. | |
53 | */ | |
54 | static bool GenerateLookupTable( | |
55 | AliHLTInt32_t ddl, const char* filename, | |
56 | const char* cdbPath, Int_t run | |
57 | ); | |
227e7192 | 58 | |
59 | protected: | |
60 | ||
6efe69e7 | 61 | // Protected functions to implement AliHLTComponent's interface. |
62 | // These functions provide initialization as well as the actual processing | |
b39b98c8 | 63 | // capabilities of the component. |
64 | ||
65 | virtual int DoInit(int argc, const char** argv); | |
66 | virtual int DoDeinit(); | |
6efe69e7 | 67 | |
b39b98c8 | 68 | virtual int DoEvent( |
960d54ad | 69 | const AliHLTComponentEventData& evtData, |
b39b98c8 | 70 | const AliHLTComponentBlockData* blocks, |
960d54ad | 71 | AliHLTComponentTriggerData& trigData, |
b39b98c8 | 72 | AliHLTUInt8_t* outputPtr, |
960d54ad | 73 | AliHLTUInt32_t& size, |
74 | std::vector<AliHLTComponentBlockData>& outputBlocks | |
75 | ); | |
6253e09b | 76 | |
77 | using AliHLTProcessor::DoEvent; | |
227e7192 | 78 | |
79 | private: | |
80 | ||
6253e09b | 81 | // Do not allow copying of this class. |
82 | AliHLTMUONTriggerReconstructorComponent(const AliHLTMUONTriggerReconstructorComponent& /*obj*/); | |
83 | AliHLTMUONTriggerReconstructorComponent& operator = (const AliHLTMUONTriggerReconstructorComponent& /*obj*/); | |
84 | ||
c95cf30c | 85 | int ReadLookUpTable(const char* lutpath); |
86 | int ReadCDB(const char* cdbPath, Int_t run); | |
b39b98c8 | 87 | |
88 | AliHLTMUONTriggerReconstructor* fTrigRec; // The trigger reconstructor class implementing the algorithm. | |
a6b16447 | 89 | AliHLTInt32_t fDDL; // The DDL number in the range 20..21 from which to expect input. Set to -1 for invalid/unspecified value. |
5d1682b9 | 90 | bool fWarnForUnexpecedBlock; // Flag indicating if we should log a warning if we got a block of an unexpected type. |
80590aa1 | 91 | bool fSuppressPartialTrigs; // Flag indicating if we should suppress triggers that did not trigger the L0 |
6efe69e7 | 92 | |
93 | ClassDef(AliHLTMUONTriggerReconstructorComponent, 0) | |
94 | ||
227e7192 | 95 | }; |
b39b98c8 | 96 | |
6efe69e7 | 97 | #endif // AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H |