BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnHistStat.h
Go to the documentation of this file.
1/*
2 * Author: Andrei Driuk
3 *
4 * Created on August 14, 2022
5 */
6#ifndef BMNHISTStat_H
7#define BMNHISTStat_H 1
8// STL
9#include <vector>
10// prometheus-cpp
11#ifdef HAVE_PROMCPP
12#include <prometheus/counter.h>
13#include <prometheus/exposer.h>
14#include <prometheus/registry.h>
15#endif
16// ROOT
17#include <TH1.h>
18// BmnRoot
19#include "BmnHist.h"
20#include "BmnMath.h"
21
22using std::string;
23using std::vector;
24// using namespace prometheus;
25
26class BmnHistStat : public BmnHist
27{
28 public:
29 BmnHistStat(TString title, TString path = "");
30 virtual ~BmnHistStat();
31 void Reset();
32 void Register(THttpServer* serv);
33 void SetDir(TFile* outFile = NULL, TTree* recoTree = NULL);
34 void DrawBoth();
35 void FillFromDigi(DigiArrays* fDigiArrays);
36 void ClearRefRun();
38
39 private:
40 void initHistDet();
41 void initHistFD();
42 void initHistBD();
43 void initHistCorr();
44 Int_t getPositionInArray(vector<TClonesArray*>* trigDigits, TString name);
45
46 // BmnStatus SendMetrics();
48
49 void ResetRegistry();
50 void CreateMetrics();
51 void DestroyMetrics();
53
54 vector<TString> NamesStatDet;
55 vector<TString> NamesStatFD;
56 vector<TString> NamesStatBD;
57 vector<TString> NamesStatCorr;
58
59 const int32_t Max_ToF_Cnt = 301;
60 const int32_t Max_GEM_Cnt = 5001;
61 const int32_t Max_FSD_Cnt = 5001;
62 const int32_t Max_CSC_Cnt = 2001;
63 const int32_t Max_FHC_Cnt = 1001;
64
65 const int32_t Max_BD_Cnt = 51;
66
67 const int32_t Max_FD_Sig = 8000;
68
75 //===FD vs Det======
82 //===BD vs Det======
89
90 //===Correlations=====
97
102 vector<PadInfo*> canStatDetPads;
103 vector<PadInfo*> canStatFDPads;
104 vector<PadInfo*> canStatBDPads;
105 vector<PadInfo*> canStatCorrPads;
106
108 int32_t fdPosition;
109 int32_t bdPosition;
110 int32_t bc1Position;
111
112 /** Spill stat for DB */
113 const double Min_NBC1 = 100000;
114 uint16_t bit_filter;
115
116 double sum_fsd;
119 double sum_csc;
120 double sum_fhcal;
121 double sum_gem;
122 double sum_nbc1;
123
124 double nbc1;
125 double fsd2gem;
128 double csc2gem;
129 double fhcal2gem;
130 double gem2nbc1;
131 uint64_t nevents;
134
135 BmnEventType ev_type;
136 BmnEventType ev_type_prev;
137
138#ifdef HAVE_PROMCPP
139 unique_ptr<prometheus::Exposer> exposer;
140 shared_ptr<prometheus::Registry> registry;
141
142 prometheus::Family<prometheus::Gauge>* gauge_family;
143 prometheus::Counter* counter_family;
144 unordered_map<string, prometheus::Gauge*> gauges_by_name;
147#endif
148
149 // string pushgateway;
150
152};
153
154#endif /* BMNMONHISTS_H */
int Int_t
#define ClassDef(name, id)
BmnStatus
Define status code.
Definition BmnEnums.h:93
std::chrono::time_point< SysClock > SysPoint
const int32_t Max_FHC_Cnt
Definition BmnHistStat.h:63
void initHistDet()
TH2F * histBDTof700Stat
Definition BmnHistStat.h:86
vector< TString > NamesStatFD
Definition BmnHistStat.h:55
bool varsInitDone
BmnStatus SetRefRun(Int_t id)
TH2F * histFDSiliconStat
Definition BmnHistStat.h:77
prometheus::Counter * counter_family
TCanvas * canStatDet
Definition BmnHistStat.h:98
void FillFromDigi(DigiArrays *fDigiArrays)
SysPoint last_ev_time
double tof4002gem
double gem2nbc1
SysPoint last_ev_time_show
TH1I * histSiliconStat
Definition BmnHistStat.h:70
int32_t fdPosition
uint16_t bit_filter
double tof7002gem
TH1I * histTof700Stat
Definition BmnHistStat.h:72
vector< PadInfo * > canStatCorrPads
TH1I * histFHCalStat
Definition BmnHistStat.h:74
vector< PadInfo * > canStatFDPads
const double Min_NBC1
Spill stat for DB.
void initHistCorr()
const int32_t Max_BD_Cnt
Definition BmnHistStat.h:65
void SetDir(TFile *outFile=NULL, TTree *recoTree=NULL)
const int32_t Max_CSC_Cnt
Definition BmnHistStat.h:62
unordered_map< string, prometheus::Gauge * > gauges_by_name
const int32_t Max_FD_Sig
Definition BmnHistStat.h:67
double fhcal2gem
void DestroyMetrics()
TH2F * histBDTof400Stat
Definition BmnHistStat.h:85
void ClearRefRun()
TH2F * histFDTof700Stat
Definition BmnHistStat.h:79
double sum_tof400
TH2F * histGemTof700
Definition BmnHistStat.h:93
TH2F * histBDGemStat
Definition BmnHistStat.h:83
vector< PadInfo * > canStatDetPads
TH1I * histGemStat
Definition BmnHistStat.h:69
TH2F * histBDCscStat
Definition BmnHistStat.h:87
void initHistFD()
Int_t getPositionInArray(vector< TClonesArray * > *trigDigits, TString name)
virtual ~BmnHistStat()
TCanvas * canStatCorr
unique_ptr< prometheus::Exposer > exposer
double sum_nbc1
const int32_t Max_ToF_Cnt
Definition BmnHistStat.h:59
TH2F * histGemTof400
Definition BmnHistStat.h:92
TH2F * histFDGemStat
Definition BmnHistStat.h:76
TH1I * histCscStat
Definition BmnHistStat.h:73
BmnStatus UpdateMetrics()
void ResetTimelineCounters()
vector< TString > NamesStatBD
Definition BmnHistStat.h:56
vector< PadInfo * > canStatBDPads
double fsd2gem
prometheus::Family< prometheus::Gauge > * gauge_family
BmnEventType ev_type
TH2F * histGemFHCal
Definition BmnHistStat.h:95
TH1I * histTof400Stat
Definition BmnHistStat.h:71
double sum_fhcal
vector< TString > NamesStatCorr
Definition BmnHistStat.h:57
BmnHistStat(TString title, TString path="")
TH2F * histGemCsc
Definition BmnHistStat.h:94
TCanvas * canStatFD
Definition BmnHistStat.h:99
int32_t bc1Position
const int32_t Max_GEM_Cnt
Definition BmnHistStat.h:60
int32_t bdPosition
double sum_tof700
void Register(THttpServer *serv)
shared_ptr< prometheus::Registry > registry
TH2F * histCscFHCal
Definition BmnHistStat.h:96
TH2F * histBDSiliconStat
Definition BmnHistStat.h:84
const int32_t Max_FSD_Cnt
Definition BmnHistStat.h:61
TH2F * histFDFHCalStat
Definition BmnHistStat.h:81
double sum_fsd
double sum_csc
BmnEventType ev_type_prev
bool metrics_available
double sum_gem
bool registry_init_done
vector< TString > NamesStatDet
Definition BmnHistStat.h:54
void initHistBD()
void CreateMetrics()
TH2F * histFDCscStat
Definition BmnHistStat.h:80
double csc2gem
TCanvas * canStatBD
uint64_t nevents
TH2F * histFDTof400Stat
Definition BmnHistStat.h:78
TH2F * histBDFHCalStat
Definition BmnHistStat.h:88
void ResetRegistry()
TH2F * histGemSilicon
Definition BmnHistStat.h:91
BmnHist(Int_t periodID=7, BmnSetup setup=kBMNSETUP)
Definition BmnHist.cxx:3