]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDMonitorComponent.h
adding new TRD trigger monitoring components (Stefan Kirsch, Felix Rettig)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDMonitorComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRDMONITORCOMPONENT_H
4 #define ALIHLTTRDMONITORCOMPONENT_H
5
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                               */
9
10 /// @file   AliHLTTRDMonitorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
12 /// @date   2011-08-02
13 /// @brief  A FEP-level 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 TH1F;
23 class TH1I;
24 class TH2I;
25 class TH2F;
26
27 /**
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.
31  *
32  * More information and examples can be found here (relative to $ALICE_ROOT):
33  * 
34  * -- HLT/BASE/AliHLTComponent.h/.cxx,  HLT/BASE/AliHLTProcessor.h/.cxx
35  *    Interface definition and description
36  * -- HLT/SampleLib: example implementations of components
37  *
38  *
39  * <h2>General properties:</h2>
40  *
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>
45  *
46  * <h2>Mandatory arguments:</h2>
47  * none     
48  *
49  * <h2>Optional arguments:</h2>
50  * none
51  *
52  * <h2>Configuration:</h2>
53  * none
54  *
55  * <h2>Default CDB entries:</h2>
56  * none
57  *
58  * <h2>Performance:</h2>
59  * minmal
60  *
61  * <h2>Memory consumption:</h2>
62  * don't know yet
63  *
64  * <h2>Output size:</h2>
65  * not very much
66  *
67  * @ingroup The component has no output data.
68  */
69 class AliHLTTRDMonitorComponent : public AliHLTProcessor {
70 public:
71   AliHLTTRDMonitorComponent();
72   virtual ~AliHLTTRDMonitorComponent();
73
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);
81
82   // Spawn function, return new class instance
83   AliHLTComponent* Spawn();
84
85  protected:
86   // AliHLTComponent interface functions
87   int DoInit( int argc, const char** argv );
88   int DoDeinit();
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);
93
94   using AliHLTProcessor::DoEvent;
95
96 private:
97   /** copy constructor prohibited */
98   AliHLTTRDMonitorComponent(const AliHLTTRDMonitorComponent&);
99   /** assignment operator prohibited */
100   AliHLTTRDMonitorComponent& operator=(const AliHLTTRDMonitorComponent&);
101
102   // trd specific data
103   TClonesArray* fTrackletArray;
104   TClonesArray *fGtuTrackArray;
105
106   // rawreader instance
107   AliRawReaderMemory* fRawReaderMem;
108   AliTRDdigitsManager *fDigitsManagerTrd;
109   AliTRDrawStream*    fRawReaderTrd; 
110
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
124   TH1F *fHistTmuTime;
125   TH1F *fHistSmuTime;
126   TH1F *fHistTrackPt;
127   TH2I *fHistTrackStack;
128   TH1I *fHistTrackletsTrack;
129   TH1I *fHistTrackletsTrackHpt;
130   TH1I *fHistTrackPID;
131   TH2I *fHistTriggerContribs;
132
133   ClassDef(AliHLTTRDMonitorComponent, 0)
134 };
135 #endif