Adding brand new 4 physics partition type - PHYSICS_X. Cross-checked and confirmed...
[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 "TString.h"
15 #include <TGFrame.h>
16
17 #include <map>
18
19 class AliDimIntNotifier;
20
21 class TGTextButton;
22 class TGListBox;
23
24 //______________________________________________________________________________
25 // Short description of AliOnlineReco
26 //
27
28
29 class AliOnlineReco : public TGMainFrame
30 {
31 public:
32   AliOnlineReco();
33   virtual ~AliOnlineReco() {}
34
35   AliDimIntNotifier* GetSOR(Int_t i) const { return fSOR[i]; }
36   AliDimIntNotifier* GetEOR(Int_t i) const { return fEOR[i]; }
37
38   void SetTestMode() { fTestMode = kTRUE; }
39
40   //------------------------------------------------------------------------------
41   // Handlers of DIM signals.
42   //------------------------------------------------------------------------------
43
44   void StartOfRun(Int_t run);
45   void EndOfRun(Int_t run);
46
47   //------------------------------------------------------------------------------
48   // Handlers of OS signals.
49   //------------------------------------------------------------------------------
50
51   void ChildProcTerm(Int_t pid, Int_t status);
52
53   //------------------------------------------------------------------------------
54   // Handlers of button signals.
55   //------------------------------------------------------------------------------
56
57   void DoStart();
58   void DoStop();
59   void DoXyzz();
60
61   virtual void CloseWindow();
62
63   Int_t RetrieveGRP(UInt_t run, TString &gdc);
64
65 private:
66   AliOnlineReco(const AliOnlineReco&);            // Not implemented
67   AliOnlineReco& operator=(const AliOnlineReco&); // Not implemented
68
69   // GUI components.
70   TGListBox     *fRunList;
71   TGTextButton  *fStartButt;
72   TGTextButton  *fStopButt;
73   TGTextButton  *fXyzzButt;
74
75   // DIM interface. Could do without ...
76   AliDimIntNotifier *fSOR[5];
77   AliDimIntNotifier *fEOR[5];
78
79   // Run-state, process mngmnt
80   typedef std::map<Int_t, Int_t> mIntInt_t; // value should be struct { pid, state, ... };
81   typedef mIntInt_t::iterator    mIntInt_i;
82
83   mIntInt_t      fRun2PidMap;
84
85   Bool_t         fTestMode;
86
87   mIntInt_i FindMapEntryByPid(Int_t pid);
88
89   ClassDef(AliOnlineReco, 0);
90 };
91
92 #endif