use ESD based tracking methods
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorProcess.h
index a685da29b7aeb88d629c54026c05e7e13c0a170a..bc55288302a74a5e7def0df66afe41290ac6b7a7 100644 (file)
@@ -5,21 +5,24 @@
 
 /* $Id$ */
 
+class TFile;
+class TFolder;
+class TGrid;
+class TServerSocket;
+class TSocket;
+class TTimer;
+class TTree;
+
+#include <TObjArray.h>
 #include <TObject.h>
-#include <TSystem.h>
 #include <TString.h>
-#include <TObjArray.h>
+#include <TSystem.h>
 
-class AliRawReader;
-class AliTPCParam;
+class AliESD;
 class AliITSgeom;
+class AliRawReader;
 class AliRunLoader;
-class TFile;
-class TGrid;
-class TTimer;
-class TServerSocket;
-class TFolder;
-class TTree;
+class AliTPCParam;
 #ifdef ALI_HLT
 class AliLevel3;
 class AliL3Hough;
@@ -71,9 +74,9 @@ private:
   Bool_t           CheckForNewFile();
   Bool_t           ProcessFile();
   Int_t            GetNumberOfEvents(const char* fileName) const;
-  Bool_t           ReconstructTPC(AliRawReader* rawReader);
-  Bool_t           ReconstructITS(AliRawReader* rawReader);
-  Bool_t           ReconstructV0s();
+  Bool_t           ReconstructTPC(AliRawReader* rawReader, AliESD* esd);
+  Bool_t           ReconstructITS(AliRawReader* rawReader, AliESD* esd);
+  Bool_t           ReconstructV0s(AliESD* esd);
 #ifdef ALI_HLT
   void             CreateHLT(const char* fileName);
   void             CreateHLTHough(const char* fileName);
@@ -85,7 +88,7 @@ private:
   void             StartNewRun();
 
   void             CheckForConnections();
-  void             BroadcastHistos();
+  void             BroadcastHistos(TSocket* toSocket = NULL);
   void             SetStatus(EStatus status);
 
   static const Int_t fgkPort;          // port number for client connections
@@ -121,6 +124,20 @@ private:
   EStatus          fStatus;             // current status
   Bool_t           fStopping;           // stop of process requested or not
 
+  class AliMonitorInterruptHandler : public TSignalHandler {
+  public:
+    AliMonitorInterruptHandler(AliMonitorProcess* process);
+    AliMonitorInterruptHandler(const AliMonitorInterruptHandler& handler);
+    AliMonitorInterruptHandler& operator = 
+      (const AliMonitorInterruptHandler& handler);
+    virtual ~AliMonitorInterruptHandler() {};
+    virtual Bool_t Notify();
+  private:
+    AliMonitorProcess* fProcess;       // process to notify
+  };
+
+  AliMonitorInterruptHandler* fInterruptHandler;  // interrupt handler
+
   ClassDef(AliMonitorProcess, 0)   // class for performing the monitoring
 };