]>
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> | |
7e05ec60 | 12 | /// @date 18 Sep 2007 |
6253e09b | 13 | /// @brief A processing component for the dHLT trigger DDL reconstruction. |
14 | /// | |
6efe69e7 | 15 | |
154cba94 | 16 | #include "AliHLTMUONProcessor.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 | */ |
154cba94 | 29 | class AliHLTMUONTriggerReconstructorComponent : public AliHLTMUONProcessor |
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. |
dba14d7d | 82 | /// Not implemented. |
6253e09b | 83 | AliHLTMUONTriggerReconstructorComponent(const AliHLTMUONTriggerReconstructorComponent& /*obj*/); |
dba14d7d | 84 | /// Not implemented. |
6253e09b | 85 | AliHLTMUONTriggerReconstructorComponent& operator = (const AliHLTMUONTriggerReconstructorComponent& /*obj*/); |
86 | ||
c95cf30c | 87 | int ReadLookUpTable(const char* lutpath); |
88 | int ReadCDB(const char* cdbPath, Int_t run); | |
b39b98c8 | 89 | |
7e05ec60 | 90 | AliHLTMUONTriggerReconstructor* fTrigRec; ///< The trigger reconstructor class implementing the algorithm. |
91 | AliHLTInt32_t fDDL; ///< The DDL number in the range 20..21 from which to expect input. Set to -1 for invalid/unspecified value. | |
92 | bool fWarnForUnexpecedBlock; ///< Flag indicating if we should log a warning if we got a block of an unexpected type. | |
93 | bool fSuppressPartialTrigs; ///< Flag indicating if we should suppress triggers that did not trigger the L0 | |
6efe69e7 | 94 | |
7e05ec60 | 95 | ClassDef(AliHLTMUONTriggerReconstructorComponent, 0) // Trigger reconstructor component for dHLT trigger DDL raw data. |
6efe69e7 | 96 | |
227e7192 | 97 | }; |
b39b98c8 | 98 | |
6efe69e7 | 99 | #endif // AliHLTMUONTRIGGERRECONSTRUCTORCOMPONENT_H |