BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMonitor.h
Go to the documentation of this file.
1#ifndef BMNMONITOR_H
2#define BMNMONITOR_H 1
3// STL
4#include <chrono>
5#include <exception>
6#include <iterator>
7#include <regex>
8// Auxillary
9#include <zmq.h>
10// FairSoft
11#include <TBufferFile.h>
12#include <TChain.h>
13#include <TClonesArray.h>
14#include <TColor.h>
15#include <TFile.h>
16#include <TFolder.h>
17#include <THttpServer.h>
18#include <TList.h>
19#include <TNamed.h>
20#include <TString.h>
21#include <TSystemDirectory.h>
22#include <TSystemFile.h>
23// BmnRoot
24#include <BmnEventHeader.h>
25#include <BmnRawDataDecoder.h>
26// BmnRoot Monitor
27// #include "BmnDataReceiver.h"
28#include "BmnOnlineDecoder.h"
29
30#include <BmnRunInfo.h>
31
32#define TTREE_MAX_SIZE 3e11
33
34class BmnMonitor : public TNamed
35{
36 public:
38 virtual ~BmnMonitor();
39 void MonitorStreamZ(TString dir, TString refDir = "", TString decoAddr = "localhost", Int_t webPort = 9000);
40 TObjArray* GetAlikeRunsByElog(uint32_t periodID, uint32_t rinID);
41 TObjArray* GetAlikeRunsByUniDB(uint32_t periodID, uint32_t rinID);
42
43 void SetPeriodID(Int_t v) { this->fPeriodID = v; }
44 Int_t GetPeriodID() const { return fPeriodID; }
45
46 void SetBmnSetup(BmnSetup v) { fSetup = v; }
47 BmnSetup GetBmnSetup() const { return fSetup; }
48
50
51 void SetDetectorSetup(uint64_t setup) { fDetectorSetup = setup; }
52
53 void SetNItersToUpdate(uint64_t val) { fNItersToUpdate = val; }
54
55 void SetSlowMode(bool val) { fIsSlowMode = val; }
56
57 private:
58 void InitServer();
59 void ProcessDigi(Int_t iEv);
61 void UpdateRuns();
62 BmnStatus CreateFile(uint32_t runID = 0);
64 void FinishRun();
65 void InitHistVectors(vector<BmnHist*>& vec, TString refName = "");
66 inline void ProcessRequests();
67
68 void* _ctx;
69 void* _decoSocket;
80
81 uint64_t fDetectorSetup;
82
83 vector<BmnHist*> bhVec;
84 vector<BmnHist*> bhVec4show;
85 vector<bool> bhVecIsStat; // temp crutch to distinguish stat events histogram sets
86
88 // TList *refList;
92
96 uint32_t fPeriodID;
97 BmnSetup fSetup;
98 uint32_t fRunID;
100 uint64_t fEvents;
101 uint64_t fNItersSinceUpdate;
102 uint64_t fNItersToUpdate;
103 const chrono::milliseconds fTimeToProcessRequests; //! answer each timeout seconds
104 chrono::time_point<chrono::system_clock> fTicksLastProcess; //!
105 const chrono::seconds fTimeToUpdate; //! redraw each timeout seconds
106 chrono::time_point<chrono::system_clock> fTicksLastUpdate; //!
107 bool fIsSlowMode; // process requests for each iteration (not good for MSC)
108 BmnWorkerState fState;
110
112
114};
115
116#endif
__m128 v
Definition P4_F32vec4.h:1
bool Bool_t
int Int_t
#define ClassDef(name, id)
BmnStatus
Define status code.
Definition BmnEnums.h:93
TCanvas * infoCanvas
Definition BmnMonitor.h:87
BmnStatus CreateFile(uint32_t runID=0)
TString fHistFileNameAdd
Definition BmnMonitor.h:111
TString _refDir
Definition BmnMonitor.h:72
void MonitorStreamZ(TString dir, TString refDir="", TString decoAddr="localhost", Int_t webPort=9000)
chrono::time_point< chrono::system_clock > fTicksLastUpdate
redraw each timeout seconds
Definition BmnMonitor.h:106
BmnWorkerState fState
Definition BmnMonitor.h:108
TList * runPub
Definition BmnMonitor.h:90
const chrono::seconds fTimeToUpdate
Definition BmnMonitor.h:105
virtual ~BmnMonitor()
Int_t GetPeriodID() const
Definition BmnMonitor.h:44
TString _curFile
Definition BmnMonitor.h:70
DigiArrays * fDigiArrays
Definition BmnMonitor.h:79
void SetNItersToUpdate(uint64_t val)
Definition BmnMonitor.h:53
BmnSetup GetBmnSetup() const
Definition BmnMonitor.h:47
void SetSlowMode(bool val)
Definition BmnMonitor.h:55
void SetBmnSetup(BmnSetup v)
Definition BmnMonitor.h:46
void InitHistVectors(vector< BmnHist * > &vec, TString refName="")
void SetDetectorSetup(uint64_t setup)
Definition BmnMonitor.h:51
Bool_t keepWorking
Definition BmnMonitor.h:93
void ProcessDigi(Int_t iEv)
TString fRawDecoAddr
Definition BmnMonitor.h:73
const chrono::milliseconds fTimeToProcessRequests
Definition BmnMonitor.h:103
void SetPeriodID(Int_t v)
Definition BmnMonitor.h:43
TFile * fHistOutTemp
Definition BmnMonitor.h:77
vector< BmnHist * > bhVec
Definition BmnMonitor.h:83
Int_t _webPort
Definition BmnMonitor.h:94
BmnStatus OpenStream()
uint64_t fEvents
Definition BmnMonitor.h:100
void UpdateRuns()
void * _decoSocket
Definition BmnMonitor.h:69
BmnRunInfo * CurRun
Definition BmnMonitor.h:91
void FinishRun()
TString _curDir
Definition BmnMonitor.h:71
TObjArray * GetAlikeRunsByElog(uint32_t periodID, uint32_t rinID)
void InitServer()
uint64_t fDetectorSetup
Definition BmnMonitor.h:81
bool fIsSlowMode
Definition BmnMonitor.h:107
void ProcessRequests()
TObjArray * GetAlikeRunsByUniDB(uint32_t periodID, uint32_t rinID)
Int_t decoTimeout
Definition BmnMonitor.h:109
uint32_t fRunID
Definition BmnMonitor.h:98
uint64_t fNItersSinceUpdate
Definition BmnMonitor.h:101
vector< BmnHist * > bhVec4show
Definition BmnMonitor.h:84
TFile * fHistOut
Definition BmnMonitor.h:76
vector< bool > bhVecIsStat
Definition BmnMonitor.h:85
TTree * fRecoTree
Definition BmnMonitor.h:74
BmnSetup fSetup
Definition BmnMonitor.h:97
void RegisterAll()
THttpServer * fServer
Definition BmnMonitor.h:78
uint32_t fPeriodID
Definition BmnMonitor.h:96
BmnTrigRaw2Digit * fTrigMapper
Definition BmnMonitor.h:99
void SetHistFileNameAdd(TString add)
Definition BmnMonitor.h:49
chrono::time_point< chrono::system_clock > fTicksLastProcess
answer each timeout seconds
Definition BmnMonitor.h:104
uint64_t fNItersToUpdate
Definition BmnMonitor.h:102
TList * refTable
Definition BmnMonitor.h:89
Int_t fTest
Definition BmnMonitor.h:95
TTree * fRecoTree4Show
Definition BmnMonitor.h:75
void * _ctx
Definition BmnMonitor.h:68