Brand new GUI application for online display/reco by Matevz.
[u/mrichter/AliRoot.git] / MONITOR / AliOnlineReco.h
1 // @(#)root/eve:$Id$
2 // Author: Matevz Tadel 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliOnlineReco_H
11 #define AliOnlineReco_H
12
13 #include "TObject.h"
14 #include <TGFrame.h>
15
16 #include <map>
17
18 class AliDimIntNotifier;
19
20 class TGTextButton;
21 class TGListBox;
22
23 //______________________________________________________________________________
24 // Short description of AliOnlineReco
25 //
26
27
28 class AliOnlineReco : public TGMainFrame
29 {
30 public:
31   AliOnlineReco();
32   virtual ~AliOnlineReco() {}
33
34   AliDimIntNotifier* GetSOR() const { return fSOR; }
35   AliDimIntNotifier* GetEOR() const { return fEOR; }
36
37   void SetTestMode() { fTestMode = kTRUE; }
38
39   //------------------------------------------------------------------------------
40   // Handlers of DIM signals.
41   //------------------------------------------------------------------------------
42
43   void StartOfRun(Int_t run);
44   void EndOfRun(Int_t run);
45
46   //------------------------------------------------------------------------------
47   // Handlers of OS signals.
48   //------------------------------------------------------------------------------
49
50   void ChildDeath(Int_t pid, Int_t status);
51
52   //------------------------------------------------------------------------------
53   // Handlers of button signals.
54   //------------------------------------------------------------------------------
55
56   void DoStart();
57   void DoStop();
58   void DoXyzz();
59
60   virtual void CloseWindow();
61
62 private:
63   AliOnlineReco(const AliOnlineReco&);            // Not implemented
64   AliOnlineReco& operator=(const AliOnlineReco&); // Not implemented
65
66   // GUI components.
67   TGListBox     *fRunList;
68   TGTextButton  *fStartButt;
69   TGTextButton  *fStopButt;
70   TGTextButton  *fXyzzButt;
71
72   // DIM interface. Could do without ...
73   AliDimIntNotifier *fSOR;
74   AliDimIntNotifier *fEOR;
75
76   // Run-state, process mngmnt
77   typedef std::map<Int_t, Int_t> mIntInt_t; // value should be struct { pid, state, ... };
78   typedef mIntInt_t::iterator    mIntInt_i;
79
80   mIntInt_t      fRun2PidMap;
81
82   Bool_t         fTestMode;
83
84   mIntInt_i FindMapEntryByPid(Int_t pid);
85
86   ClassDef(AliOnlineReco, 0);
87 };
88
89 #endif