corrections to obey coding conventions
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorProcess.h
1 #ifndef ALIMONITORPROCESS_H
2 #define ALIMONITORPROCESS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TObject.h>
9 #include <TSystem.h>
10 #include <TString.h>
11 #include <TObjArray.h>
12
13 class AliRawReader;
14 class AliTPCParam;
15 class AliITSgeom;
16 class AliRunLoader;
17 class TFile;
18 class TGrid;
19 class TTimer;
20 class TServerSocket;
21 class TFolder;
22 class TTree;
23 #ifdef ALI_HLT
24 class AliLevel3;
25 #endif
26
27
28 class AliMonitorProcess : public TObject {
29 public:
30   AliMonitorProcess(const char* alienDir,
31                     const char* fileNameGalice = "galice.root");
32   AliMonitorProcess(const AliMonitorProcess& process);
33   AliMonitorProcess& operator = (const AliMonitorProcess& process);
34   virtual ~AliMonitorProcess();
35
36   static const char* GetRevision();
37
38   void             Run();
39   void             Stop();
40   void             Reset();
41
42   void             ProcessFile(const char* fileName);
43
44   UInt_t           GetRunNumber() const {return fRunNumber;};
45   UInt_t           GetEventPeriodNumber() const;
46   UInt_t           GetEventOrbitNumber() const;
47   UInt_t           GetEventBunchNumber() const;
48
49   enum EStatus     {kStopped, kWaiting, kReading, kRecTPC, kRecITS, kRecV0s,
50                     kRecHLT, kFilling, kUpdating, kWriting, kResetting, 
51                     kConnecting, kBroadcasting};
52   EStatus          GetStatus() const 
53     {gSystem->ProcessEvents(); return fStatus;};
54   Bool_t           WillStop() const {return fStopping;};
55   Bool_t           IsStopped() const {return (fStatus == kStopped);};
56
57   Int_t            GetNumberOfEvents() const {return fNEvents;};
58   Int_t            GetNumberOfClients() const 
59     {return fSockets.GetEntriesFast();};
60   TObjArray*       GetListOfClients() {return &fSockets;};
61   Int_t            GetNEventsMin() const {return fNEventsMin;};
62   void             SetNEventsMin(Int_t nEventsMin) {fNEventsMin = nEventsMin;};
63   void             SetWriteHistoList(Bool_t writeHistoList = kTRUE) 
64                                          {fWriteHistoList = writeHistoList;};
65
66   static Int_t     GetPort() {return fgkPort;};
67   
68 private:
69   Bool_t           CheckForNewFile();
70   Bool_t           ProcessFile();
71   Int_t            GetNumberOfEvents(const char* fileName) const;
72   Bool_t           ReconstructTPC(AliRawReader* rawReader);
73   Bool_t           ReconstructITS(AliRawReader* rawReader);
74   Bool_t           ReconstructV0s();
75 #ifdef ALI_HLT
76   void             CreateHLT(const char* fileName);
77 #endif
78   Bool_t           ReconstructHLT(Int_t iEvent);
79
80   Bool_t           WriteHistos();
81   void             StartNewRun();
82
83   void             CheckForConnections();
84   void             BroadcastHistos();
85   void             SetStatus(EStatus);
86
87   static const Int_t fgkPort;          // port number for client connections
88
89   TGrid*           fGrid;               // pointer to AliEn
90   AliRunLoader*    fRunLoader;          // the current run loader
91   AliTPCParam*     fTPCParam;           // TPC parameters
92   AliITSgeom*      fITSgeom;            // ITS parameters
93   TString          fLogicalFileName;    // logical AliEn file name
94   TString          fFileName;           // physical file name
95 #ifdef ALI_HLT
96   AliLevel3*       fHLT;                // the HLT tracker
97 #endif
98
99   UInt_t           fRunNumber;          // current run number
100   UInt_t           fSubRunNumber;       // current part (=resets per run)
101   UInt_t           fEventNumber[2];     // current event number
102   Int_t            fNEvents;            // total number of monitored events
103   Int_t            fNEventsMin;         // threshold for writing
104   Bool_t           fWriteHistoList;     // write event histos or not
105
106   TFolder*         fTopFolder;          // folder with histos
107   TObjArray        fMonitors;           // array of monitor objects
108   TFile*           fFile;               // file with tree
109   TTree*           fTree;               // monitor tree
110
111   TServerSocket*   fServerSocket;       // socket for client connections
112   TObjArray        fSockets;            // array of client sockets
113   TSocket*         fDisplaySocket;      // socket for an event display
114
115   EStatus          fStatus;             // current status
116   Bool_t           fStopping;           // stop of process requested or not
117
118   ClassDef(AliMonitorProcess, 0)   // class for performing the monitoring
119 };
120  
121
122 #endif
123
124
125
126
127
128
129
130
131