3 #ifndef ALIHLTTRDPREPROCESSORCOMPONENT_H
4 #define ALIHLTTRDPREPROCESSORCOMPONENT_H
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 */
10 /// @file AliHLTTRDPreprocessorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
13 /// @brief A FEP-level pre-processing component for TRD tracking/trigger data
14 /// @ingroup alihlt_trd_components
16 #include "AliHLTProcessor.h"
18 class AliRawReaderMemory;
20 class AliTRDdigitsManager;
21 class AliTRDrawStream;
22 class AliTRDonlineTrackingDataContainer;
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.
33 * More information and examples can be found here (relative to $ALICE_ROOT):
35 * -- HLT/BASE/AliHLTComponent.h/.cxx, HLT/BASE/AliHLTProcessor.h/.cxx
36 * Interface definition and description
37 * -- HLT/SampleLib: example implementations of components
40 * <h2>General properties:</h2>
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>
47 * <h2>Mandatory arguments:</h2>
50 * <h2>Optional arguments:</h2>
53 * <h2>Configuration:</h2>
56 * <h2>Default CDB entries:</h2>
59 * <h2>Performance:</h2>
62 * <h2>Memory consumption:</h2>
65 * <h2>Output size:</h2>
68 * @ingroup The component has no output data.
70 class AliHLTTRDPreprocessorComponent : public AliHLTProcessor {
72 AliHLTTRDPreprocessorComponent();
73 virtual ~AliHLTTRDPreprocessorComponent();
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);
83 // Spawn function, return new class instance
84 AliHLTComponent* Spawn();
87 // AliHLTComponent interface functions
88 int DoInit( int argc, const char** argv );
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);
95 using AliHLTProcessor::DoEvent;
98 /** copy constructor prohibited */
99 AliHLTTRDPreprocessorComponent(const AliHLTTRDPreprocessorComponent&);
100 /** assignment operator prohibited */
101 AliHLTTRDPreprocessorComponent& operator=(const AliHLTTRDPreprocessorComponent&);
103 void DbgLog(const char* prefix, ...);
106 static const AliHLTEventID_t fgkInvalidEventId = 18446744073709551615llu;
108 UShort_t fDebugLevel; //! set debug checks/output level, 0: debug off
109 AliHLTEventID_t fEventId; //! event ID
112 TClonesArray* fTrackletArray; //! internal tracklet array
113 TClonesArray *fGtuTrackArray; //! internal track array
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
120 AliTRDonlineTrackingDataContainer* fTrackingData; //! internal tracking data container
122 ClassDef(AliHLTTRDPreprocessorComponent, 0)