bugfix: memory leak corrected (Stefan Kirsch)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDGlobalMonitorComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTTRDGLOBALMONITORCOMPONENT_H
4 #define ALIHLTTRDGLOBALMONITORCOMPONENT_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   AliHLTTRDGlobalMonitorComponent.h
11 /// @author Felix Rettig, Stefan Kirsch
12 /// @date   2011-08-02
13 /// @brief  A processing component for TRD tracking/trigger data on CN-level
14 /// @ingroup alihlt_trd_components
15
16 #include "AliHLTProcessor.h"
17
18 class TObjArray;
19 class TH1I;
20 class TH2I;
21 class TH1F;
22
23 class AliHLTTRDGlobalMonitorComponent : public AliHLTProcessor {
24 public:
25   AliHLTTRDGlobalMonitorComponent();
26   virtual ~AliHLTTRDGlobalMonitorComponent();
27
28   // AliHLTComponent interface functions
29   const char* GetComponentID();
30   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
31   AliHLTComponentDataType GetOutputDataType();
32   void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
33   AliHLTComponent* Spawn();
34
35  protected:
36   // AliHLTComponent interface functions
37   int DoInit( int argc, const char** argv );
38   int DoDeinit();
39   int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
40   int Reconfigure(const char* cdbEntry, const char* chainId);
41
42   using AliHLTProcessor::DoEvent;
43
44 private:
45   /** copy constructor prohibited */
46   AliHLTTRDGlobalMonitorComponent(const AliHLTTRDGlobalMonitorComponent&);
47   /** assignment operator prohibited */
48   AliHLTTRDGlobalMonitorComponent& operator=(const AliHLTTRDGlobalMonitorComponent&);
49
50   int Configure(const char* arguments);
51
52   /** data **/
53   TObjArray* fHistArray;
54   TH1I *fHistTrackletY;   // tracklet y-positions from all stacks
55   TH1I *fHistTrackletDy;  // tracklet deflections from all stacks
56   TH1I *fHistTrackletZ;   // tracklet z-positions from all stacks
57   TH1I *fHistTrackletPID; // tracklet PID values from all stacks
58   TH2I *fHistTrackletYDy; // tracklet deflection vs. position from all stacks
59   TH2I *fHistTrackletHC;  // tracklet numbers by half-chamber from all stacks
60   TH2I *fHistTrackletBadY; // tracklet numbers with invalid y-position by stack from all stacks
61   TH2I *fHistTrackletBadPID; // tracklet numbers with invalid PID value by stack from all stacks
62   TH1F *fHistFirstTrackletTime; // arrival time of the first tracklet of each link
63   TH1F *fHistLastTrackletTime; // arrival time of the last tracklet of each link
64   TH1F *fHistTmuTime;     // tracking done time for each TMU
65   TH1F *fHistSmuTime;     // tracking done time for each SMU
66   TH1F *fHistTrackPt;     // transverse momentum of GTU tracks from all stacks
67   TH1I *fHistTrackPID;    // PID of GTU tracks from all stacks
68   TH2I *fHistTrackStack;  // GTU track numbers by stack from all stacks
69   TH1I *fHistTrackletsTrack; // tracklets per GTU track from all stacks
70   TH1I *fHistTrackletsTrackHpt; // tracklets per high-pt GTU track from all stacks
71   TH2I *fHistTriggerContribs; // sector-level trigger contributions from all stacks
72   ClassDef(AliHLTTRDGlobalMonitorComponent, 0)
73 };
74 #endif