]>
Commit | Line | Data |
---|---|---|
c7b7f445 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | #ifndef ALIHLTTRDPREPROCESSORCOMPONENT_H | |
4 | #define ALIHLTTRDPREPROCESSORCOMPONENT_H | |
5 | ||
6 | //* This file is property of and copyright by the ALICE HLT/TRD Project * | |
7 | //* ALICE Experiment at CERN, All rights reserved. * | |
8 | //* See cxx source for full Copyright notice */ | |
9 | ||
10 | /// @file AliHLTTRDPreprocessorComponent.h | |
11 | /// @author Felix Rettig, Stefan Kirsch | |
12 | /// @date 2012-08-16 | |
13 | /// @brief A FEP-level pre-processing component for TRD tracking/trigger data | |
14 | /// @ingroup alihlt_trd_components | |
15 | ||
16 | #include "AliHLTProcessor.h" | |
17 | ||
18 | class AliRawReaderMemory; | |
19 | class TTree; | |
20 | class AliTRDdigitsManager; | |
21 | class AliTRDrawStream; | |
22 | class AliTRDonlineTrackingDataContainer; | |
23 | class TH1F; | |
24 | class TH1I; | |
25 | class TH2I; | |
26 | class TH2F; | |
27 | ||
28 | /** | |
29 | * @class AliHLTTRDPreprocessorComponent | |
30 | * Component fetches raw data input objects in DDL format and extracts tracklets and GTU tracks. | |
31 | * It also instantiates a RawReader in order to be used with some reconstruction. | |
32 | * | |
33 | * More information and examples can be found here (relative to $ALICE_ROOT): | |
34 | * | |
35 | * -- HLT/BASE/AliHLTComponent.h/.cxx, HLT/BASE/AliHLTProcessor.h/.cxx | |
36 | * Interface definition and description | |
37 | * -- HLT/SampleLib: example implementations of components | |
38 | * | |
39 | * | |
40 | * <h2>General properties:</h2> | |
41 | * | |
42 | * Component ID: \b TRDPreprocessorComponent <br> | |
43 | * Library: \b libAliHLTTRD.so <br> | |
44 | * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTRD <br> | |
45 | * Output Data Types: @ref kAliHLTTrackDataTypeID|kAliHLTDataOriginTRD <br> | |
46 | * | |
47 | * <h2>Mandatory arguments:</h2> | |
48 | * none | |
49 | * | |
50 | * <h2>Optional arguments:</h2> | |
51 | * none | |
52 | * | |
53 | * <h2>Configuration:</h2> | |
54 | * none | |
55 | * | |
56 | * <h2>Default CDB entries:</h2> | |
57 | * none | |
58 | * | |
59 | * <h2>Performance:</h2> | |
60 | * minmal | |
61 | * | |
62 | * <h2>Memory consumption:</h2> | |
63 | * don't know yet | |
64 | * | |
65 | * <h2>Output size:</h2> | |
66 | * not very much | |
67 | * | |
68 | * @ingroup The component has no output data. | |
69 | */ | |
70 | class AliHLTTRDPreprocessorComponent : public AliHLTProcessor { | |
71 | public: | |
72 | AliHLTTRDPreprocessorComponent(); | |
73 | virtual ~AliHLTTRDPreprocessorComponent(); | |
74 | ||
75 | // AliHLTComponent interface functions | |
76 | const char* GetComponentID(); | |
77 | void GetInputDataTypes( vector<AliHLTComponentDataType>& list); | |
78 | AliHLTComponentDataType GetOutputDataType(); | |
79 | int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); | |
80 | void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); | |
81 | void GetOCDBObjectDescription( TMap* const targetMap); | |
82 | ||
83 | // Spawn function, return new class instance | |
84 | AliHLTComponent* Spawn(); | |
85 | ||
86 | protected: | |
87 | // AliHLTComponent interface functions | |
88 | int DoInit( int argc, const char** argv ); | |
89 | int DoDeinit(); | |
90 | int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData); | |
91 | int ScanConfigurationArgument(int argc, const char** argv); | |
92 | int Reconfigure(const char* cdbEntry, const char* chainId); | |
93 | int ReadPreprocessorValues(const char* modules); | |
94 | ||
95 | using AliHLTProcessor::DoEvent; | |
96 | ||
97 | private: | |
98 | /** copy constructor prohibited */ | |
99 | AliHLTTRDPreprocessorComponent(const AliHLTTRDPreprocessorComponent&); | |
100 | /** assignment operator prohibited */ | |
101 | AliHLTTRDPreprocessorComponent& operator=(const AliHLTTRDPreprocessorComponent&); | |
102 | ||
103 | void DbgLog(const char* prefix, ...); | |
104 | ||
105 | // general | |
106 | static const AliHLTEventID_t fgkInvalidEventId = 18446744073709551615llu; | |
107 | ||
108 | UShort_t fDebugLevel; //! set debug checks/output level, 0: debug off | |
109 | AliHLTEventID_t fEventId; //! event ID | |
110 | ||
111 | // trd specific data | |
112 | TClonesArray* fTrackletArray; //! internal tracklet array | |
113 | TClonesArray *fGtuTrackArray; //! internal track array | |
114 | ||
115 | // rawreader instance | |
116 | AliRawReaderMemory* fRawReaderMem; //! TRD raw reader memory instance | |
117 | AliTRDdigitsManager *fDigitsManagerTrd; //! TRD digits manager instance | |
118 | AliTRDrawStream* fRawReaderTrd; //! TRD raw stream instance | |
119 | ||
120 | AliTRDonlineTrackingDataContainer* fTrackingData; //! internal tracking data container | |
121 | ||
122 | ClassDef(AliHLTTRDPreprocessorComponent, 0) | |
123 | }; | |
124 | ||
125 | #endif |