]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TRD/AliHLTTRDPreprocessorComponent.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDPreprocessorComponent.h
CommitLineData
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
18class AliRawReaderMemory;
19class TTree;
20class AliTRDdigitsManager;
21class AliTRDrawStream;
22class AliTRDonlineTrackingDataContainer;
23class TH1F;
24class TH1I;
25class TH2I;
26class 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 */
70class AliHLTTRDPreprocessorComponent : public AliHLTProcessor {
71public:
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
97private:
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