]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MONITOR/AliMonitorProcess.h
Fill fraction amplitude array with 0 until unfolding is not done
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorProcess.h
index a685da29b7aeb88d629c54026c05e7e13c0a170a..3c2cb0186cdfe4ac6c520f38d4f60f9e293fd33e 100644 (file)
@@ -5,34 +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 AliESDEvent;
 class AliITSgeom;
+class AliRawReader;
 class AliRunLoader;
-class TFile;
-class TGrid;
-class TTimer;
-class TServerSocket;
-class TFolder;
-class TTree;
-#ifdef ALI_HLT
+class AliTPCParam;
 class AliLevel3;
-class AliL3Hough;
-#endif
+class AliHLTHough;
 
 
 class AliMonitorProcess : public TObject {
 public:
   AliMonitorProcess(const char* alienHost,
                    const char* alienDir,
+                   const char* selection = "ALL",
                    const char* fileNameGalice = "galice.root");
-  AliMonitorProcess(const AliMonitorProcess& process);
-  AliMonitorProcess& operator = (const AliMonitorProcess& process);
   virtual ~AliMonitorProcess();
 
   static const char* GetRevision();
@@ -68,28 +68,34 @@ public:
   static Int_t     GetPort() {return fgkPort;};
   
 private:
+  AliMonitorProcess(const AliMonitorProcess& process);
+  AliMonitorProcess& operator = (const AliMonitorProcess& process);
+
   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();
-#ifdef ALI_HLT
+  Bool_t           ReconstructTPC(AliRawReader* rawReader, AliESDEvent* esd);
+  Bool_t           ReconstructITS(AliRawReader* rawReader, AliESDEvent* esd);
+  Bool_t           ReconstructV0s(AliESDEvent* esd);
+#ifdef ENABLE_ALIMONITORPROCESS_HLT
   void             CreateHLT(const char* fileName);
   void             CreateHLTHough(const char* fileName);
-#endif
   Bool_t           ReconstructHLT(Int_t iEvent);
   Bool_t           ReconstructHLTHough(Int_t iEvent);
+#endif // ENABLE_ALIMONITORPROCESS_HLT
 
   Bool_t           WriteHistos();
   void             StartNewRun();
 
   void             CheckForConnections();
-  void             BroadcastHistos();
+  void             BroadcastHistos(TSocket* toSocket = NULL);
   void             SetStatus(EStatus status);
+  Bool_t           IsSelected(const char* name) const
+    {return (fSelection.Contains(name) || fSelection.Contains("ALL"));}
 
   static const Int_t fgkPort;          // port number for client connections
 
+  TString          fSelection;          // selection of monitor histograms
   TGrid*           fGrid;               // pointer to AliEn
   TString          fAlienDir;           // name of alien directory
   AliRunLoader*    fRunLoader;          // the current run loader
@@ -97,10 +103,9 @@ private:
   AliITSgeom*      fITSgeom;            // ITS parameters
   TString          fLogicalFileName;    // logical AliEn file name
   TString          fFileName;           // physical file name
-#ifdef ALI_HLT
   AliLevel3*       fHLT;                // the HLT tracker
-  AliL3Hough*      fHLTHough;           // the HLT hough transformer
-#endif
+  AliHLTHough*      fHLTHough;           // the HLT hough transformer
+
 
   UInt_t           fRunNumber;          // current run number
   UInt_t           fSubRunNumber;       // current part (=resets per run)
@@ -121,6 +126,22 @@ private:
   EStatus          fStatus;             // current status
   Bool_t           fStopping;           // stop of process requested or not
 
+  class AliMonitorInterruptHandler : public TSignalHandler {
+  public:
+    AliMonitorInterruptHandler(AliMonitorProcess* process);
+    virtual ~AliMonitorInterruptHandler() {};
+    virtual Bool_t Notify();
+  private:
+    AliMonitorProcess* fProcess;       // process to notify
+
+    AliMonitorInterruptHandler(const AliMonitorInterruptHandler& handler); // Not implemented
+    AliMonitorInterruptHandler& operator = 
+      (const AliMonitorInterruptHandler& handler); // Not implemented
+
+  };
+
+  AliMonitorInterruptHandler* fInterruptHandler;  // interrupt handler
+
   ClassDef(AliMonitorProcess, 0)   // class for performing the monitoring
 };