Cleaning up generation and reading back of lookup tables. Also moved core generation...
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONHitReconstructorComponent.h
CommitLineData
b0201cbe 1#ifndef ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
6253e09b 2#define ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H
ee3678d3 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 */
b0201cbe 6
7/* $Id$ */
8
6253e09b 9///
10/// @file AliHLTMUONHitReconstructorComponent.h
11/// @author Indranil Das <indra.das@saha.ac.in> | <indra.ehep@gmail.com>
12/// @date
a6b16447 13/// @brief Hit Reconstruction processing component for the dimuon HLT.
6253e09b 14///
b0201cbe 15
16#include "AliHLTProcessor.h"
93a75941 17#include "AliHLTMUONHitReconstructor.h"
b0201cbe 18
e29a165d 19#if __GNUC__ && __GNUC__ < 3
960d54ad 20#define std
21#endif
22
23
ee3678d3 24extern "C" struct AliHLTMUONHitRecoLutRow;
25
26
960d54ad 27class AliHLTMUONHitReconstructorComponent : public AliHLTProcessor
28{
ee3678d3 29public:
960d54ad 30 AliHLTMUONHitReconstructorComponent();
31 virtual ~AliHLTMUONHitReconstructorComponent();
32
33 // Public functions to implement AliHLTComponent's interface.
34 // These functions are required for the registration process
35
6253e09b 36 virtual const char* GetComponentID();
37 virtual void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
38 virtual AliHLTComponentDataType GetOutputDataType();
960d54ad 39 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
6253e09b 40 virtual AliHLTComponent* Spawn();
960d54ad 41
93a75941 42 /**
43 * Generates a ASCII text file containing the lookup table (LUT) from
44 * the CDB, which can be used for the hit reconstructor component later.
45 * @param ddl Must be the DDL for which to generate the DDL,
46 * in the range [12..19].
47 * @param filename The name of the LUT file to generate.
48 * @param cdbPath The CDB path to use.
49 * @param run The run number to use for the CDB.
50 * @return True if the generation of the LUT file succeeded.
51 */
52 static bool GenerateLookupTable(
53 AliHLTInt32_t ddl, const char* filename,
54 const char* cdbPath, Int_t run
55 );
56
ee3678d3 57protected:
960d54ad 58
59 // Protected functions to implement AliHLTComponent's interface.
60 // These functions provide initialization as well as the actual processing
61 // capabilities of the component.
62
6253e09b 63 virtual int DoInit(int argc, const char** argv);
64 virtual int DoDeinit();
65 virtual int DoEvent(
960d54ad 66 const AliHLTComponentEventData& evtData,
67 const AliHLTComponentBlockData* blocks,
68 AliHLTComponentTriggerData& trigData,
ee3678d3 69 AliHLTUInt8_t* outputPtr,
960d54ad 70 AliHLTUInt32_t& size,
71 std::vector<AliHLTComponentBlockData>& outputBlocks
72 );
73
6253e09b 74 using AliHLTProcessor::DoEvent;
75
ee3678d3 76private:
6253e09b 77
78 // Do not allow copying of this class.
79 AliHLTMUONHitReconstructorComponent(const AliHLTMUONHitReconstructorComponent& /*obj*/);
80 AliHLTMUONHitReconstructorComponent& operator = (const AliHLTMUONHitReconstructorComponent& /*obj*/);
960d54ad 81
a6b16447 82 void FreeMemory();
93a75941 83 int ReadLookUpTable(const char* lutpath);
84 int ReadCDB(const char* cdbpath, Int_t run);
85
a6b16447 86 AliHLTMUONHitReconstructor* fHitRec; // Internal class instance implementing the hit reconstruction algorithm.
93a75941 87 AliHLTInt32_t fDDL; // DDL number in the range [12..19]. Set to -1 for invalid/unspecified value.
88 AliHLTUInt32_t fLutSize; // The number of rows / entries in the LUT.
89 AliHLTMUONHitRecoLutRow* fLut; // The lookup table used by the hit reconstruction algorithm (Owned by this component however).
ee3678d3 90 IdManuChannelToEntry fIdToEntry; // id to line mapping.
29486e5a 91 bool fWarnForUnexpecedBlock; // Flag indicating if we should log a warning if we got a block of an unexpected type.
ee3678d3 92
960d54ad 93 ClassDef(AliHLTMUONHitReconstructorComponent, 0)
b0201cbe 94};
95
96#endif // ALIHLTMUONHITRECONSTRUCTORCOMPONENT_H