use ESD based tracking methods
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorProcess.h
index 0184a86ef4f13df537dc3089ba2910769c012b84..bc55288302a74a5e7def0df66afe41290ac6b7a7 100644 (file)
@@ -5,29 +5,34 @@
 
 /* $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;
 #endif
 
 
 class AliMonitorProcess : public TObject {
 public:
-  AliMonitorProcess(const char* alienDir,
+  AliMonitorProcess(const char* alienHost,
+                   const char* alienDir,
                    const char* fileNameGalice = "galice.root");
   AliMonitorProcess(const AliMonitorProcess& process);
   AliMonitorProcess& operator = (const AliMonitorProcess& process);
@@ -69,24 +74,27 @@ 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);
 #endif
   Bool_t           ReconstructHLT(Int_t iEvent);
+  Bool_t           ReconstructHLTHough(Int_t iEvent);
 
   Bool_t           WriteHistos();
   void             StartNewRun();
 
   void             CheckForConnections();
-  void             BroadcastHistos();
-  void             SetStatus(EStatus);
+  void             BroadcastHistos(TSocket* toSocket = NULL);
+  void             SetStatus(EStatus status);
 
   static const Int_t fgkPort;          // port number for client connections
 
   TGrid*           fGrid;               // pointer to AliEn
+  TString          fAlienDir;           // name of alien directory
   AliRunLoader*    fRunLoader;          // the current run loader
   AliTPCParam*     fTPCParam;           // TPC parameters
   AliITSgeom*      fITSgeom;            // ITS parameters
@@ -94,6 +102,7 @@ private:
   TString          fFileName;           // physical file name
 #ifdef ALI_HLT
   AliLevel3*       fHLT;                // the HLT tracker
+  AliL3Hough*      fHLTHough;           // the HLT hough transformer
 #endif
 
   UInt_t           fRunNumber;          // current run number
@@ -115,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
 };