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 */
11 #include <TObjArray.h>
28 class AliMonitorProcess : public TObject {
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();
36 static const char* GetRevision();
42 void ProcessFile(const char* fileName);
44 UInt_t GetRunNumber() const {return fRunNumber;};
45 UInt_t GetEventPeriodNumber() const;
46 UInt_t GetEventOrbitNumber() const;
47 UInt_t GetEventBunchNumber() const;
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);};
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;};
66 static Int_t GetPort() {return fgkPort;};
69 Bool_t CheckForNewFile();
71 Int_t GetNumberOfEvents(const char* fileName) const;
72 Bool_t ReconstructTPC(AliRawReader* rawReader);
73 Bool_t ReconstructITS(AliRawReader* rawReader);
74 Bool_t ReconstructV0s();
76 void CreateHLT(const char* fileName);
78 Bool_t ReconstructHLT(Int_t iEvent);
83 void CheckForConnections();
84 void BroadcastHistos();
85 void SetStatus(EStatus);
87 static const Int_t fgkPort; // port number for client connections
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
96 AliLevel3* fHLT; // the HLT tracker
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
106 TFolder* fTopFolder; // folder with histos
107 TObjArray fMonitors; // array of monitor objects
108 TFile* fFile; // file with tree
109 TTree* fTree; // monitor tree
111 TServerSocket* fServerSocket; // socket for client connections
112 TObjArray fSockets; // array of client sockets
113 TSocket* fDisplaySocket; // socket for an event display
115 EStatus fStatus; // current status
116 Bool_t fStopping; // stop of process requested or not
118 ClassDef(AliMonitorProcess, 0) // class for performing the monitoring