BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
DigiRunHeader.h
Go to the documentation of this file.
1
#ifndef BMNDIGIRUNHEADER_H
2
#define BMNDIGIRUNHEADER_H
3
4
#include <map>
5
#include <unordered_map>
6
// ROOT
7
#include "
TObject.h
"
8
#include "
TTimeStamp.h
"
9
// BmnRoot
10
#include "
BmnAliases.h
"
11
#include "
BmnFunctionSet.h
"
12
#include "
BmnSpillInfo.h
"
13
#include "
BmnTrigConfig.h
"
14
#include "
RawTypes.h
"
15
16
using
std::map;
17
using
std::unordered_map;
18
using
std::vector;
19
20
class
DigiRunHeader
:
public
TObject
21
{
22
private
:
23
/** Period Id **/
24
uint32_t
fPeriodId
;
25
/** Run Id **/
26
uint32_t
fRunId
;
27
/** Event count **/
28
uint64_t
fEventCnt
;
29
TTimeStamp
fRunStartTime
;
30
TTimeStamp
fRunEndTime
;
31
uint64_t
fBeamTrigger
;
32
uint64_t
fBTnBusy
;
33
Double_t
fBTAccepted
;
///< BT¬Busy normalized according to Acc/(Acc + BP + AP) | for SRC => sum [BT * (DAQ_Busy
34
///< -peds)/ (DAQ_TRigger - peds)]
35
uint64_t
fAccepted
;
36
uint64_t
fProtection
;
37
uint64_t
fL0
;
38
uint64_t
fBP
;
39
uint64_t
fAP
;
40
41
map<SysPoint, BmnSpillInfo>
fSpillMap
;
42
T0ChMap
fT0Map
;
43
NameChMap
fTrcBitMap
;
44
Name2SerCh
fScalersMap
;
45
vector<uint64_t>
fScalersVec
;
46
NameChMap
scalers_name2index_map
;
///< name -> index in fScalersVec (scaler index)
47
vector<string>
scalers_index2name_map
;
///< index -> name
48
map<uint16_t, uint16_t>
fTrcIdx2ScalerIdx
;
///< TRC index -> scaler index
49
unordered_map<uint32_t, vector<uint64_t>>
fBoardSums
;
///< (MSC serial, raw sums of the counters)
50
51
std::array<uint64_t, kT0_BIN_BLOCK_WORDS>
rawt0_cntrs
= {};
52
MapString2Cnt
event_trig_count
;
// name -> total spill trigger (TRC bit inside events)
53
54
BmnTrigConfig
trig_config
;
55
56
public
:
57
// /** Default constructor */
58
// DigiRunHeader();
59
60
/** Constructor
61
* \param[in] period_id : unique period id
62
* \param[in] run_id : unique run id
63
* \param[in] run_start_time : run start time
64
* \param[in] run_end_time : run end time
65
*/
66
DigiRunHeader
(uint32_t period_id = 9,
67
uint32_t run_id = 0,
68
TTimeStamp
run_start_time =
TTimeStamp
(0, 0),
69
TTimeStamp
run_end_time =
TTimeStamp
(0, 0));
70
71
/** Destructor */
72
virtual
~DigiRunHeader
();
73
74
/** Get the period ID for this run */
75
uint64_t
GetPeriodId
() {
return
fPeriodId
; }
76
/** Get the run ID */
77
uint64_t
GetRunId
() {
return
fRunId
; }
78
/** Get the event count */
79
uint64_t
GetNEvents
() {
return
fEventCnt
; }
80
/** Get the BeamTrigger counter */
81
uint64_t
GetBT
() {
return
fBeamTrigger
; }
82
/** Get the BT and not Busy */
83
uint64_t
GetBTnBusy
() {
return
fBTnBusy
; }
84
/** Get the (BT and not Busy) by live time */
85
Double_t
GetBTAccepted
() {
return
fBTAccepted
; }
86
/** Get the Accepted by live time */
87
uint64_t
GetAccepted
() {
return
fAccepted
; }
88
/** Get the Trigger Protection */
89
uint64_t
GetProtection
() {
return
fProtection
; }
90
/** Get the L0 */
91
uint64_t
GetL0
() {
return
fL0
; }
92
/** Ref to the T0 map */
93
T0ChMap
&
T0Map
() {
return
fT0Map
; }
94
/** TRC bit map */
95
NameChMap
&
GetTrcBitMap
() {
return
fTrcBitMap
; }
96
/** MSC bit map */
97
Name2SerCh
&
GetScalerMap
() {
return
fScalersMap
; }
98
99
NameChMap
&
ScalersName2IndexMap
() {
return
scalers_name2index_map
; }
100
101
vector<string>&
ScalersIndex2NameMap
() {
return
scalers_index2name_map
; }
102
103
map<uint16_t, uint16_t>&
TrcIndex2ScalerIndexMap
() {
return
fTrcIdx2ScalerIdx
; }
104
105
void
PrintScalers
()
106
{
107
for
(
size_t
iSc = 0; iSc <
scalers_index2name_map
.size(); iSc++) {
108
string
& name =
scalers_index2name_map
[iSc];
109
uint64_t& val =
fScalersVec
[iSc];
110
printf(
"MSC %-14s %10lu\n"
, name.c_str(), val);
111
}
112
}
113
114
vector<uint64_t>&
ScalersVec
() {
return
fScalersVec
; }
115
116
uint64_t
GetScaler
(
string
name);
117
118
uint64_t
GetRawT0Counter
(
string
name, uint32_t ch = 0);
119
// uint64_t GetTrcCounter(string name);
120
/** Raw T0 counters (sum over all spills)*/
121
std::array<uint64_t, kT0_BIN_BLOCK_WORDS>&
RawT0Counters
() {
return
rawt0_cntrs
; }
122
123
MapString2Cnt
&
EventTriggerCnt
() {
return
event_trig_count
; }
124
125
// vector<vector<> >
126
/** Get the raw MSC counters */
127
unordered_map<uint32_t, vector<uint64_t>>&
GetRawMSC
() {
return
fBoardSums
; }
128
map<SysPoint, BmnSpillInfo>&
GetSpillMap
() {
return
fSpillMap
; }
129
130
/** Get DAQ trigger config */
131
BmnTrigConfig
&
GetTrigConfig
() {
return
trig_config
; }
132
133
TTimeStamp
GetRunStartTime
() {
return
fRunStartTime
; }
134
SysPoint
GetRunStartTP
() {
return
BmnFunctionSet::TimeStamp2TP
(
fRunStartTime
); }
135
TTimeStamp
GetRunEndTime
() {
return
fRunEndTime
; }
136
SysPoint
GetRunEndTP
() {
return
BmnFunctionSet::TimeStamp2TP
(
fRunEndTime
); }
137
138
/** Set the period ID for this run
139
* \param[in] period_id : unique period id
140
*/
141
void
SetPeriodId
(uint32_t period_id) {
fPeriodId
= period_id; }
142
143
/** Set the period ID for this run
144
* \param[in] run_id : unique run id
145
*/
146
void
SetRunId
(uint32_t run_id) {
fRunId
= run_id; }
147
/** Set the event count */
148
void
SetNEvents
(uint64_t events) {
fEventCnt
= events; }
149
150
/** Set the period ID for this run
151
* \param[in] run_start_time : run start time
152
*/
153
void
SetRunStartTime
(
TTimeStamp
run_start_time) {
fRunStartTime
= run_start_time; }
154
void
SetRunStartTP
(
SysPoint
run_start_time) {
fRunStartTime
=
BmnFunctionSet::TimePoint2TS
(run_start_time); }
155
156
/** Set the period ID for this run
157
* \param[in] run_end_time : run end time
158
*/
159
void
SetRunEndTime
(
TTimeStamp
run_end_time) {
fRunEndTime
= run_end_time; }
160
void
SetRunEndTP
(
SysPoint
run_end_time) {
fRunEndTime
=
BmnFunctionSet::TimePoint2TS
(run_end_time); }
161
162
/** Set the Beam Trigger counter
163
* \param[in] cntr : Beam Trigger counter
164
*/
165
void
SetBT
(uint64_t cntr) {
fBeamTrigger
= cntr; }
166
/** Set the BT and Busy counter
167
* \param[in] cntr : BT and Busy
168
*/
169
void
SetBTnBusy
(uint64_t cntr) {
fBTnBusy
= cntr; }
170
/** Set the (BT and not Busy) by live time
171
* \param[in] cntr : BT Accepted
172
*/
173
void
SetBTAccepted
(
Double_t
cntr) {
fBTAccepted
= cntr; }
174
/** Set the Accepted counter
175
* \param[in] cntr : Accepted counter
176
*/
177
void
SetAccepted
(uint64_t cntr) {
fAccepted
= cntr; }
178
/** Set the Trigger Protection counter
179
* \param[in] cntr : Trigger Protection counter
180
*/
181
void
SetProtection
(uint64_t cntr) {
fProtection
= cntr; }
182
/** Set the L0 counter
183
* \param[in] cntr : L0 counter
184
*/
185
void
SetL0
(uint64_t cntr) {
fL0
= cntr; }
186
/** Set the raw MSC counters
187
* \param[in] v : map < MSC serial, counters vector>
188
*/
189
void
SetRawMSC
(unordered_map<uint32_t, vector<uint64_t>>
v
)
190
{
191
fBoardSums
=
v
;
192
// printf("inner len %lu\n", fBoardSums.size());
193
}
194
void
SetSpillMap
(map<SysPoint, BmnSpillInfo>
v
)
195
{
196
fSpillMap
=
v
;
197
// printf("inner len %lu\n", fSpillMap.size());
198
}
199
200
void
SetTrigConfig
(
BmnTrigConfig
tc) {
trig_config
= tc; }
201
202
ClassDef
(
DigiRunHeader
, 12)
203
};
204
205
#endif
/* BMNDIGIRUNHEADER_H */
v
__m128 v
Definition
P4_F32vec4.h:1
Double_t
double Double_t
ClassDef
#define ClassDef(name, id)
TObject.h
TTimeStamp.h
SysPoint
std::chrono::time_point< SysClock > SysPoint
Definition
BmnFunctionSet.h:18
Name2SerCh
std::unordered_map< std::string, std::pair< uint32_t, uint16_t > > Name2SerCh
Definition
BmnAliases.h:9
MapString2Cnt
std::unordered_map< std::string, uint64_t > MapString2Cnt
Definition
BmnAliases.h:11
T0ChMap
std::map< T0MapKey, uint16_t > T0ChMap
Definition
BmnAliases.h:6
NameChMap
std::unordered_map< std::string, uint16_t > NameChMap
Definition
BmnAliases.h:7
BmnFunctionSet::TimeStamp2TP
static SysPoint TimeStamp2TP(TTimeStamp p)
Definition
BmnFunctionSet.cxx:606
BmnFunctionSet::TimePoint2TS
static TTimeStamp TimePoint2TS(SysPoint p)
Definition
BmnFunctionSet.cxx:599
BmnTrigConfig
Class BmnTrigConfig Trigger DAQ config.
Definition
BmnTrigConfig.h:18
DigiRunHeader
Definition
DigiRunHeader.h:21
DigiRunHeader::event_trig_count
MapString2Cnt event_trig_count
Definition
DigiRunHeader.h:52
DigiRunHeader::GetRunEndTP
SysPoint GetRunEndTP()
Definition
DigiRunHeader.h:136
DigiRunHeader::fScalersVec
vector< uint64_t > fScalersVec
Definition
DigiRunHeader.h:45
DigiRunHeader::SetL0
void SetL0(uint64_t cntr)
Set the L0 counter.
Definition
DigiRunHeader.h:185
DigiRunHeader::SetRunStartTime
void SetRunStartTime(TTimeStamp run_start_time)
Set the period ID for this run.
Definition
DigiRunHeader.h:153
DigiRunHeader::SetTrigConfig
void SetTrigConfig(BmnTrigConfig tc)
Definition
DigiRunHeader.h:200
DigiRunHeader::PrintScalers
void PrintScalers()
Definition
DigiRunHeader.h:105
DigiRunHeader::GetTrcBitMap
NameChMap & GetTrcBitMap()
TRC bit map.
Definition
DigiRunHeader.h:95
DigiRunHeader::SetBT
void SetBT(uint64_t cntr)
Set the Beam Trigger counter.
Definition
DigiRunHeader.h:165
DigiRunHeader::GetScalerMap
Name2SerCh & GetScalerMap()
MSC bit map.
Definition
DigiRunHeader.h:97
DigiRunHeader::GetPeriodId
uint64_t GetPeriodId()
Get the period ID for this run.
Definition
DigiRunHeader.h:75
DigiRunHeader::GetScaler
uint64_t GetScaler(string name)
DigiRunHeader::GetRunId
uint64_t GetRunId()
Get the run ID.
Definition
DigiRunHeader.h:77
DigiRunHeader::SetRunStartTP
void SetRunStartTP(SysPoint run_start_time)
Definition
DigiRunHeader.h:154
DigiRunHeader::fBoardSums
unordered_map< uint32_t, vector< uint64_t > > fBoardSums
(MSC serial, raw sums of the counters)
Definition
DigiRunHeader.h:49
DigiRunHeader::GetProtection
uint64_t GetProtection()
Get the Trigger Protection.
Definition
DigiRunHeader.h:89
DigiRunHeader::GetL0
uint64_t GetL0()
Get the L0.
Definition
DigiRunHeader.h:91
DigiRunHeader::GetRunStartTP
SysPoint GetRunStartTP()
Definition
DigiRunHeader.h:134
DigiRunHeader::T0Map
T0ChMap & T0Map()
Ref to the T0 map.
Definition
DigiRunHeader.h:93
DigiRunHeader::~DigiRunHeader
virtual ~DigiRunHeader()
Destructor.
DigiRunHeader::SetBTnBusy
void SetBTnBusy(uint64_t cntr)
Set the BT and Busy counter.
Definition
DigiRunHeader.h:169
DigiRunHeader::scalers_name2index_map
NameChMap scalers_name2index_map
name -> index in fScalersVec (scaler index)
Definition
DigiRunHeader.h:46
DigiRunHeader::SetRunId
void SetRunId(uint32_t run_id)
Set the period ID for this run.
Definition
DigiRunHeader.h:146
DigiRunHeader::SetAccepted
void SetAccepted(uint64_t cntr)
Set the Accepted counter.
Definition
DigiRunHeader.h:177
DigiRunHeader::SetRunEndTime
void SetRunEndTime(TTimeStamp run_end_time)
Set the period ID for this run.
Definition
DigiRunHeader.h:159
DigiRunHeader::GetRunEndTime
TTimeStamp GetRunEndTime()
Definition
DigiRunHeader.h:135
DigiRunHeader::fSpillMap
map< SysPoint, BmnSpillInfo > fSpillMap
Definition
DigiRunHeader.h:41
DigiRunHeader::SetRunEndTP
void SetRunEndTP(SysPoint run_end_time)
Definition
DigiRunHeader.h:160
DigiRunHeader::ScalersVec
vector< uint64_t > & ScalersVec()
Definition
DigiRunHeader.h:114
DigiRunHeader::rawt0_cntrs
std::array< uint64_t, kT0_BIN_BLOCK_WORDS > rawt0_cntrs
Definition
DigiRunHeader.h:51
DigiRunHeader::RawT0Counters
std::array< uint64_t, kT0_BIN_BLOCK_WORDS > & RawT0Counters()
Raw T0 counters (sum over all spills).
Definition
DigiRunHeader.h:121
DigiRunHeader::fAccepted
uint64_t fAccepted
Definition
DigiRunHeader.h:35
DigiRunHeader::SetBTAccepted
void SetBTAccepted(Double_t cntr)
Set the (BT and not Busy) by live time.
Definition
DigiRunHeader.h:173
DigiRunHeader::GetRunStartTime
TTimeStamp GetRunStartTime()
Definition
DigiRunHeader.h:133
DigiRunHeader::fBTAccepted
Double_t fBTAccepted
BT¬Busy normalized according to Acc/(Acc + BP + AP) | for SRC => sum [BT * (DAQ_Busy -peds)/ (DAQ_...
Definition
DigiRunHeader.h:33
DigiRunHeader::fRunStartTime
TTimeStamp fRunStartTime
Definition
DigiRunHeader.h:29
DigiRunHeader::fRunId
uint32_t fRunId
Run Id.
Definition
DigiRunHeader.h:26
DigiRunHeader::GetTrigConfig
BmnTrigConfig & GetTrigConfig()
Get DAQ trigger config.
Definition
DigiRunHeader.h:131
DigiRunHeader::fPeriodId
uint32_t fPeriodId
Period Id.
Definition
DigiRunHeader.h:24
DigiRunHeader::GetBTAccepted
Double_t GetBTAccepted()
Get the (BT and not Busy) by live time.
Definition
DigiRunHeader.h:85
DigiRunHeader::fBP
uint64_t fBP
Definition
DigiRunHeader.h:38
DigiRunHeader::SetRawMSC
void SetRawMSC(unordered_map< uint32_t, vector< uint64_t > > v)
Set the raw MSC counters.
Definition
DigiRunHeader.h:189
DigiRunHeader::fEventCnt
uint64_t fEventCnt
Event count.
Definition
DigiRunHeader.h:28
DigiRunHeader::fTrcBitMap
NameChMap fTrcBitMap
Definition
DigiRunHeader.h:43
DigiRunHeader::fRunEndTime
TTimeStamp fRunEndTime
Definition
DigiRunHeader.h:30
DigiRunHeader::fScalersMap
Name2SerCh fScalersMap
Definition
DigiRunHeader.h:44
DigiRunHeader::fTrcIdx2ScalerIdx
map< uint16_t, uint16_t > fTrcIdx2ScalerIdx
TRC index -> scaler index.
Definition
DigiRunHeader.h:48
DigiRunHeader::ScalersIndex2NameMap
vector< string > & ScalersIndex2NameMap()
Definition
DigiRunHeader.h:101
DigiRunHeader::SetSpillMap
void SetSpillMap(map< SysPoint, BmnSpillInfo > v)
Definition
DigiRunHeader.h:194
DigiRunHeader::fBTnBusy
uint64_t fBTnBusy
Definition
DigiRunHeader.h:32
DigiRunHeader::SetPeriodId
void SetPeriodId(uint32_t period_id)
Set the period ID for this run.
Definition
DigiRunHeader.h:141
DigiRunHeader::GetRawMSC
unordered_map< uint32_t, vector< uint64_t > > & GetRawMSC()
Get the raw MSC counters.
Definition
DigiRunHeader.h:127
DigiRunHeader::trig_config
BmnTrigConfig trig_config
Definition
DigiRunHeader.h:54
DigiRunHeader::GetSpillMap
map< SysPoint, BmnSpillInfo > & GetSpillMap()
Definition
DigiRunHeader.h:128
DigiRunHeader::SetProtection
void SetProtection(uint64_t cntr)
Set the Trigger Protection counter.
Definition
DigiRunHeader.h:181
DigiRunHeader::GetBT
uint64_t GetBT()
Get the BeamTrigger counter.
Definition
DigiRunHeader.h:81
DigiRunHeader::fBeamTrigger
uint64_t fBeamTrigger
Definition
DigiRunHeader.h:31
DigiRunHeader::fAP
uint64_t fAP
Definition
DigiRunHeader.h:39
DigiRunHeader::fProtection
uint64_t fProtection
Definition
DigiRunHeader.h:36
DigiRunHeader::GetAccepted
uint64_t GetAccepted()
Get the Accepted by live time.
Definition
DigiRunHeader.h:87
DigiRunHeader::GetNEvents
uint64_t GetNEvents()
Get the event count.
Definition
DigiRunHeader.h:79
DigiRunHeader::fL0
uint64_t fL0
Definition
DigiRunHeader.h:37
DigiRunHeader::DigiRunHeader
DigiRunHeader(uint32_t period_id=9, uint32_t run_id=0, TTimeStamp run_start_time=TTimeStamp(0, 0), TTimeStamp run_end_time=TTimeStamp(0, 0))
Constructor.
DigiRunHeader::EventTriggerCnt
MapString2Cnt & EventTriggerCnt()
Definition
DigiRunHeader.h:123
DigiRunHeader::fT0Map
T0ChMap fT0Map
Definition
DigiRunHeader.h:42
DigiRunHeader::TrcIndex2ScalerIndexMap
map< uint16_t, uint16_t > & TrcIndex2ScalerIndexMap()
Definition
DigiRunHeader.h:103
DigiRunHeader::ScalersName2IndexMap
NameChMap & ScalersName2IndexMap()
Definition
DigiRunHeader.h:99
DigiRunHeader::scalers_index2name_map
vector< string > scalers_index2name_map
index -> name
Definition
DigiRunHeader.h:47
DigiRunHeader::GetRawT0Counter
uint64_t GetRawT0Counter(string name, uint32_t ch=0)
DigiRunHeader::GetBTnBusy
uint64_t GetBTnBusy()
Get the BT and not Busy.
Definition
DigiRunHeader.h:83
DigiRunHeader::SetNEvents
void SetNEvents(uint64_t events)
Set the event count.
Definition
DigiRunHeader.h:148
TObject
TTimeStamp
BmnAliases.h
BmnFunctionSet.h
BmnSpillInfo.h
BmnTrigConfig.h
RawTypes.h
install
include
DigiRunHeader.h
Generated on
for BmnRoot by
1.17.0