3 #ifndef ALIHLTTRDMONITORCOMPONENT_H
4 #define ALIHLTTRDMONITORCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice */
10 /// @file AliHLTTRDMonitorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
13 /// @brief A FEP-level 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;
28 * @class AliHLTTRDMonitorComponent
29 * Component fetches raw data input objects in DDL format and extracts tracklets and GTU tracks.
30 * It also instantiates a RawReader in order to be used with some reconstruction.
32 * More information and examples can be found here (relative to $ALICE_ROOT):
34 * -- HLT/BASE/AliHLTComponent.h/.cxx, HLT/BASE/AliHLTProcessor.h/.cxx
35 * Interface definition and description
36 * -- HLT/SampleLib: example implementations of components
39 * <h2>General properties:</h2>
41 * Component ID: \b AliHLTTRDMonitorComponent <br>
42 * Library: \b libAliHLTTRD.so <br>
43 * Input Data Types: @ref kAliHLTDataTypeDDLRaw|kAliHLTDataOriginTRD <br>
44 * Output Data Types: @ref kAliHLTTrackDataTypeID|kAliHLTDataOriginTRD <br>
46 * <h2>Mandatory arguments:</h2>
49 * <h2>Optional arguments:</h2>
52 * <h2>Configuration:</h2>
55 * <h2>Default CDB entries:</h2>
58 * <h2>Performance:</h2>
61 * <h2>Memory consumption:</h2>
64 * <h2>Output size:</h2>
67 * @ingroup The component has no output data.
69 class AliHLTTRDMonitorComponent : public AliHLTProcessor {
71 AliHLTTRDMonitorComponent();
72 virtual ~AliHLTTRDMonitorComponent();
74 // AliHLTComponent interface functions
75 const char* GetComponentID();
76 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
77 AliHLTComponentDataType GetOutputDataType();
78 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
79 void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
80 void GetOCDBObjectDescription( TMap* const targetMap);
82 // Spawn function, return new class instance
83 AliHLTComponent* Spawn();
86 // AliHLTComponent interface functions
87 int DoInit( int argc, const char** argv );
89 int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
90 int ScanConfigurationArgument(int argc, const char** argv);
91 int Reconfigure(const char* cdbEntry, const char* chainId);
92 int ReadPreprocessorValues(const char* modules);
94 using AliHLTProcessor::DoEvent;
97 /** copy constructor prohibited */
98 AliHLTTRDMonitorComponent(const AliHLTTRDMonitorComponent&);
99 /** assignment operator prohibited */
100 AliHLTTRDMonitorComponent& operator=(const AliHLTTRDMonitorComponent&);
103 TClonesArray* fTrackletArray;
104 TClonesArray *fGtuTrackArray;
106 // rawreader instance
107 AliRawReaderMemory* fRawReaderMem;
108 AliTRDdigitsManager *fDigitsManagerTrd;
109 AliTRDrawStream* fRawReaderTrd;
111 // FEE statistics data
112 TObjArray* fHistArray;
113 TH1I *fHistTrackletY;
114 TH1I *fHistTrackletDy;
115 TH1I *fHistTrackletZ;
116 TH1I *fHistTrackletPID;
117 TH2I *fHistTrackletYDy;
118 TH2I *fHistTrackletHC;
119 TH2I *fHistTrackletBadY;
120 TH2I *fHistTrackletBadPID;
121 TH1F *fHistFirstTrackletTime;
122 TH1F *fHistLastTrackletTime;
123 // GTU statistics data
127 TH2I *fHistTrackStack;
128 TH1I *fHistTrackletsTrack;
129 TH1I *fHistTrackletsTrackHpt;
131 TH2I *fHistTriggerContribs;
133 ClassDef(AliHLTTRDMonitorComponent, 0)