]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/OnlineAnalysis/AliHLTMUONTriggerReconstructorComponent.h
Moving the generation of the LUTs to the component class and adding default loading...
[u/mrichter/AliRoot.git] / HLT / MUON / OnlineAnalysis / AliHLTMUONTriggerReconstructorComponent.h
CommitLineData
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 23class AliHLTMUONTriggerReconstructor;
24
6efe69e7 25/**
26 * @class AliHLTMUONTriggerReconstructorComponent
b39b98c8 27 * @brief A processing component for the dHLT trigger DDL reconstruction.
6efe69e7 28 */
29class AliHLTMUONTriggerReconstructorComponent : public AliHLTProcessor
227e7192 30{
31public:
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
59protected:
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
79private:
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