Line data Source code
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 : class TClonesArray;
28 :
29 : /**
30 : * @class AliHLTTRDPreprocessorComponent
31 : * Component fetches raw data input objects in DDL format and extracts tracklets and GTU tracks.
32 : * It also instantiates a RawReader in order to be used with some reconstruction.
33 : *
34 : * More information and examples can be found here (relative to $ALICE_ROOT):
35 : *
36 : * -- HLT/BASE/AliHLTComponent.h/.cxx, HLT/BASE/AliHLTProcessor.h/.cxx
37 : * Interface definition and description
38 : * -- HLT/SampleLib: example implementations of components
39 : *
40 : *
41 : * <h2>General properties:</h2>
42 : *
43 : * Component ID: \b TRDPreprocessorComponent <br>
44 : * Library: \b libAliHLTTRD.so <br>
45 : * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTRD <br>
46 : * Output Data Types: @ref kAliHLTTrackDataTypeID|kAliHLTDataOriginTRD <br>
47 : *
48 : * <h2>Mandatory arguments:</h2>
49 : * none
50 : *
51 : * <h2>Optional arguments:</h2>
52 : * none
53 : *
54 : * <h2>Configuration:</h2>
55 : * none
56 : *
57 : * <h2>Default CDB entries:</h2>
58 : * none
59 : *
60 : * <h2>Performance:</h2>
61 : * minmal
62 : *
63 : * <h2>Memory consumption:</h2>
64 : * don't know yet
65 : *
66 : * <h2>Output size:</h2>
67 : * not very much
68 : *
69 : * @ingroup The component has no output data.
70 : */
71 : class AliHLTTRDPreprocessorComponent : public AliHLTProcessor {
72 : public:
73 : AliHLTTRDPreprocessorComponent();
74 : virtual ~AliHLTTRDPreprocessorComponent();
75 :
76 : // AliHLTComponent interface functions
77 : const char* GetComponentID();
78 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
79 : AliHLTComponentDataType GetOutputDataType();
80 : int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
81 : void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
82 : void GetOCDBObjectDescription( TMap* const targetMap);
83 :
84 : // Spawn function, return new class instance
85 : AliHLTComponent* Spawn();
86 :
87 : protected:
88 : // AliHLTComponent interface functions
89 : int DoInit( int argc, const char** argv );
90 : int DoDeinit();
91 : int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
92 : int ScanConfigurationArgument(int argc, const char** argv);
93 : int Reconfigure(const char* cdbEntry, const char* chainId);
94 : int ReadPreprocessorValues(const char* modules);
95 :
96 : using AliHLTProcessor::DoEvent;
97 :
98 : private:
99 : /** copy constructor prohibited */
100 : AliHLTTRDPreprocessorComponent(const AliHLTTRDPreprocessorComponent&);
101 : /** assignment operator prohibited */
102 : AliHLTTRDPreprocessorComponent& operator=(const AliHLTTRDPreprocessorComponent&);
103 :
104 : void DbgLog(const char* prefix, ...);
105 :
106 : // general
107 : static const AliHLTEventID_t fgkInvalidEventId = 18446744073709551615llu;
108 :
109 : UShort_t fDebugLevel; //! set debug checks/output level, 0: debug off
110 : AliHLTEventID_t fEventId; //! event ID
111 :
112 : // trd specific data
113 : TClonesArray* fTrackletArray; //! internal tracklet array
114 : TClonesArray *fGtuTrackArray; //! internal track array
115 :
116 : // rawreader instance
117 : AliRawReaderMemory* fRawReaderMem; //! TRD raw reader memory instance
118 : AliTRDdigitsManager *fDigitsManagerTrd; //! TRD digits manager instance
119 : AliTRDrawStream* fRawReaderTrd; //! TRD raw stream instance
120 :
121 : AliTRDonlineTrackingDataContainer* fTrackingData; //! internal tracking data container
122 :
123 6 : ClassDef(AliHLTTRDPreprocessorComponent, 0)
124 : };
125 :
126 : #endif
|