Project
Loading...
Searching...
No Matches
FairMonitor.h
Go to the documentation of this file.
1/********************************************************************************
2 * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3 * *
4 * This software is distributed under the terms of the *
5 * GNU Lesser General Public Licence (LGPL) version 3, *
6 * copied verbatim in the file "LICENSE" *
7 ********************************************************************************/
8
9/*
10 * FairMonitor.h
11 *
12 * Created on: Aug 01, 2015
13 * Author: r.karabowicz
14 */
15
16#ifndef BASE_FAIRMONITOR_H_
17#define BASE_FAIRMONITOR_H_
18
19#include <Rtypes.h>
20#include <TNamed.h>
21#include <TStopwatch.h>
22#include <map>
23
24class TCanvas;
25class TFile;
26class TList;
27class TTask;
28
29class FairMonitor : public TNamed
30{
31 public:
32 static FairMonitor* GetMonitor();
33
34 void EnableMonitor(Bool_t tempBool = kTRUE, TString fileName = "")
35 {
36 fRunMonitor = tempBool;
37 fOutputFileName = fileName;
38 }
39 void EnableDrawing(Bool_t tempBool = kTRUE) { fDrawCanvas = tempBool; }
40 Bool_t IsRunning() { return fRunMonitor; }
41
42 void StartMonitoring(const TTask* tTask, const char* identStr)
43 {
44 StartTimer(tTask, identStr);
45 StartMemoryMonitor(tTask, identStr);
46 }
47 void StopMonitoring(const TTask* tTask, const char* identStr)
48 {
49 StopTimer(tTask, identStr);
50 StopMemoryMonitor(tTask, identStr);
51 }
52
53 void StartTimer(const TTask* tTask, const char* identStr);
54 void StopTimer(const TTask* tTask, const char* identStr);
55
56 void StartMemoryMonitor(const TTask* tTask, const char* identStr);
57 void StopMemoryMonitor(const TTask* tTask, const char* identStr);
58
59 void RecordInfo(const TTask* tTask, const char* identStr, Double_t value);
60
61 void RecordRegister(const char* name, const char* folderName, Bool_t toFile);
62 void RecordGetting(const char* name);
63
64 void SetCurrentTask(TTask* tTask) { fCurrentTask = tTask; }
65
66 virtual void Print(Option_t* option = "") const;
67 virtual void Draw(Option_t* option = "");
68
69 void PrintTask(TString specString) const;
70 void PrintTask(TTask* tempTask, Int_t taskLevel = 0) const;
71 void DrawHist(TString specString);
72
73 TList* GetHistList() { return fHistList; }
74
75 void StoreHistograms(TFile* sinkFile);
76
77 private:
78 static FairMonitor* instance;
82 FairMonitor& operator=(const FairMonitor&);
83
84 Bool_t fRunMonitor;
85 Bool_t fDrawCanvas;
86
87 Double_t fRunTime;
88 Double_t fRunMem;
89
90 std::map<TString, TStopwatch> fTimerMap;
91 std::map<TString, Int_t> fMemoryMap;
92
93 TList* fHistList;
94 TCanvas* fCanvas;
95
96 Int_t fNoTaskRequired;
97 Int_t fNoTaskCreated;
98
99 TTask* fCurrentTask;
100
101 TString fOutputFileName; // output file name, if empty then try to use FairSink to store histograms
102
103 std::multimap<TString, TString> fTaskRequired;
104 std::multimap<TString, TString> fTaskCreated;
105 std::multimap<TString, TString> fTaskCreatedTemp;
106
107 std::map<TString, Int_t> fObjectMap;
108 std::map<TString, Int_t> fTaskMap;
109
110 std::map<TString, std::pair<Double_t, Double_t>> fObjectPos;
111 std::map<TString, std::pair<Double_t, Double_t>> fTaskPos;
112
113 void GetTaskMap(TTask* tempTask);
114 void AnalyzeObjectMap(TTask* tempTask);
115
116 ClassDef(FairMonitor, 0);
117};
118
119extern FairMonitor* gMonitor;
120
121#endif // BASE_FAIRMONITOR_H_
FairMonitor * gMonitor
void StopTimer(const TTask *tTask, const char *identStr)
void EnableDrawing(Bool_t tempBool=kTRUE)
Definition FairMonitor.h:39
void StartMemoryMonitor(const TTask *tTask, const char *identStr)
void EnableMonitor(Bool_t tempBool=kTRUE, TString fileName="")
Definition FairMonitor.h:34
TList * GetHistList()
Definition FairMonitor.h:73
void RecordInfo(const TTask *tTask, const char *identStr, Double_t value)
void StopMemoryMonitor(const TTask *tTask, const char *identStr)
Bool_t IsRunning()
Definition FairMonitor.h:40
void StartMonitoring(const TTask *tTask, const char *identStr)
Definition FairMonitor.h:42
virtual void Draw(Option_t *option="")
void PrintTask(TString specString) const
void DrawHist(TString specString)
virtual void Print(Option_t *option="") const
void RecordRegister(const char *name, const char *folderName, Bool_t toFile)
void RecordGetting(const char *name)
void StoreHistograms(TFile *sinkFile)
void StopMonitoring(const TTask *tTask, const char *identStr)
Definition FairMonitor.h:47
void StartTimer(const TTask *tTask, const char *identStr)
static FairMonitor * GetMonitor()
void SetCurrentTask(TTask *tTask)
Definition FairMonitor.h:64
GLuint const GLchar * name
Definition glcorearb.h:781
GLsizei const GLfloat * value
Definition glcorearb.h:819