1 #ifndef ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
2 #define ALIHLTMUONHITRECONSTRUCTORCOMPONENT_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 */
10 /// @file AliHLTMUONHitReconstructorComponent.h
11 /// @author Indranil Das <indra.das@saha.ac.in> | <indra.ehep@gmail.com>
13 /// @brief Hit Reconstruction processing component for the dimuon HLT.
16 #include "AliHLTMUONProcessor.h"
17 #include "AliHLTMUONHitReconstructor.h"
19 #if __GNUC__ && __GNUC__ < 3
24 extern "C" struct AliHLTMUONHitRecoLutRow;
27 * @class AliHLTMUONHitReconstructorComponent
28 * @brief A processing component for the dHLT tracker DDL reconstruction.
30 class AliHLTMUONHitReconstructorComponent : public AliHLTMUONProcessor
33 AliHLTMUONHitReconstructorComponent();
34 virtual ~AliHLTMUONHitReconstructorComponent();
36 // Public functions to implement AliHLTComponent's interface.
37 // These functions are required for the registration process
39 virtual const char* GetComponentID();
40 virtual void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
41 virtual AliHLTComponentDataType GetOutputDataType();
42 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
43 virtual AliHLTComponent* Spawn();
46 * Generates an ASCII text file containing the lookup table (LUT) from
47 * the CDB, which can be used for the hit reconstructor component later.
48 * @param ddl Must be the DDL for which to generate the DDL,
49 * in the range [12..19].
50 * @param filename The name of the LUT file to generate.
51 * @param cdbPath The CDB path to use.
52 * @param run The run number to use for the CDB.
53 * @return True if the generation of the LUT file succeeded.
55 static bool GenerateLookupTable(
56 AliHLTInt32_t ddl, const char* filename,
57 const char* cdbPath, Int_t run
62 // Protected functions to implement AliHLTComponent's interface.
63 // These functions provide initialization as well as the actual processing
64 // capabilities of the component.
66 virtual int DoInit(int argc, const char** argv);
67 virtual int DoDeinit();
69 const AliHLTComponentEventData& evtData,
70 const AliHLTComponentBlockData* blocks,
71 AliHLTComponentTriggerData& trigData,
72 AliHLTUInt8_t* outputPtr,
74 std::vector<AliHLTComponentBlockData>& outputBlocks
77 using AliHLTProcessor::DoEvent;
81 // Do not allow copying of this class.
83 AliHLTMUONHitReconstructorComponent(const AliHLTMUONHitReconstructorComponent& /*obj*/);
85 AliHLTMUONHitReconstructorComponent& operator = (const AliHLTMUONHitReconstructorComponent& /*obj*/);
88 int ReadLookUpTable(const char* lutpath);
89 int ReadCDB(const char* cdbpath, Int_t run);
91 AliHLTMUONHitReconstructor* fHitRec; ///< Internal class instance implementing the hit reconstruction algorithm.
92 AliHLTInt32_t fDDL; ///< DDL number in the range [12..19]. Set to -1 for invalid/unspecified value.
93 AliHLTUInt32_t fLutSize; ///< The number of rows / entries in the LUT.
94 AliHLTMUONHitRecoLutRow* fLut; ///< The lookup table used by the hit reconstruction algorithm (Owned by this component however).
95 IdManuChannelToEntry fIdToEntry; ///< id to line mapping.
96 bool fWarnForUnexpecedBlock; ///< Flag indicating if we should log a warning if we got a block of an unexpected type.
98 ClassDef(AliHLTMUONHitReconstructorComponent, 0) // Hit reconstructor component for dHLT tracker DDL raw data.
101 #endif // ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H