BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnEventHeader.h
Go to the documentation of this file.
1
#ifndef BMNEVENTHEADER_H
2
#define BMNEVENTHEADER_H
3
4
#include <map>
5
#include <unordered_map>
6
#include <vector>
7
// ROOT
8
#include "
TTimeStamp.h
"
9
// FairRoot
10
#include "FairEventHeader.h"
11
// BmnRoot
12
#include "BmnEnums.h"
13
#include "BmnFunctionSet.h"
14
#include "BmnTrigInfo.h"
15
#include "BmnTrigUnion.h"
16
17
using
SysClock
= std::chrono::system_clock;
18
using
SysPoint
= std::chrono::time_point<SysClock>;
19
using
std::map;
20
using
std::unordered_map;
21
using
std::vector;
22
23
class
BmnEventHeader
:
public
FairEventHeader
24
{
25
private
:
26
/** Event Header branch name **/
27
TString
fHeaderName
;
//!
28
29
/** Event Id **/
30
UInt_t
fEventId
;
31
/** Period Id **/
32
UInt_t
fPeriodId
;
33
/** Event Time in TTimeStamp **/
34
TTimeStamp
fEventTimeTS
;
35
/** VSP Trigger Time in TTimeStamp **/
36
TTimeStamp
fEventVspTS
;
37
/** Event Type (payload = 0 or pedestal = 1) **/
38
BmnEventType
fEventType
;
39
/** Tripped Gems (1 bit for 1 GEM module) **/
40
Bool_t
fTripWord
;
41
/** start of new spill **/
42
Bool_t
fSpillStart
;
43
/** T0 information for current event**/
44
Double_t
fStartSignalTime
;
// ns
45
Double_t
fStartSignalWidth
;
// ns
46
BmnTrigInfo
fTrigInfo
;
47
// UInt_t fTrigUnion;
48
UInt_t
fInputsAR
;
49
UInt_t
fInputsBR
;
50
vector<uint32_t>
fInputsVec
;
51
52
unordered_map<UInt_t, Long64_t>
fTimeShift
;
53
54
public
:
55
/** Default constructor */
56
BmnEventHeader
();
57
58
/** Constructor */
59
BmnEventHeader
(
UInt_t
run_id,
60
UInt_t
event_id,
61
TTimeStamp
event_time,
62
BmnEventType
event_type,
63
Bool_t
trip,
64
BmnTrigInfo
& trig_info);
65
66
/** Constructor */
67
BmnEventHeader
(
UInt_t
run_id,
68
UInt_t
event_id,
69
TTimeStamp
event_time,
70
BmnEventType
event_type,
71
Bool_t
trip,
72
BmnTrigInfo
& trig_info,
73
unordered_map<UInt_t, Long64_t> time_shift);
74
75
/** Destructor */
76
virtual
~BmnEventHeader
();
77
78
virtual
void
Register
(
Bool_t
Persistence =
kTRUE
)
79
{
80
// FairRootManager::Instance()->Register(fHeaderName.Data(), "EvtHeader", this, Persistence);
81
}
82
83
void
Clear
();
84
85
/** Get Event Header branch name */
86
TString
GetHeaderName
() {
return
fHeaderName
; }
87
88
/** Get the event ID for this event */
89
UInt_t
GetEventId
() {
return
fEventId
; }
90
91
/** Get the period ID for this event */
92
UInt_t
GetPeriodId
() {
return
fPeriodId
; }
93
94
/** Get the time for this event */
95
TTimeStamp
GetEventTimeTS
() {
return
fEventTimeTS
; }
96
SysPoint
GetEventTimeTP
() {
return
BmnFunctionSet::TimeStamp2TP
(
fEventTimeTS
); }
97
98
/** Get the time for this event */
99
TTimeStamp
GetVspTS
() {
return
fEventVspTS
; }
100
101
/** Get the type of this event */
102
BmnEventType
GetEventType
() {
return
fEventType
; }
103
104
/** Get the trip word for this event */
105
Bool_t
GetTripWord
() {
return
fTripWord
; }
106
107
/** Get wether new spill is started */
108
Bool_t
GetSpillStart
() {
return
fSpillStart
; }
109
110
Double_t
GetStartSignalTime
() {
return
fStartSignalTime
; }
111
Double_t
GetStartSignalWidth
() {
return
fStartSignalWidth
; }
112
113
/** Get the spill statistics */
114
BmnTrigInfo
&
GetTrigInfo
() {
return
fTrigInfo
; }
115
116
// /** Get the trigger state */
117
// BmnTrigUnion GetTrigState()
118
// {
119
// BmnTrigUnion u;
120
// u.storage = fTrigUnion;
121
// return u;
122
// }
123
124
// UInt_t GetTrigStateWord() { return fTrigUnion; }
125
126
/** Get Input signal states, after reduction */
127
UInt_t
GetInputSignalsAR
() {
return
fInputsAR
; }
128
129
/** Get Input signal states, before reduction */
130
UInt_t
GetInputSignalsBR
() {
return
fInputsBR
; }
131
132
/** Get Input signal vector, each word is a state of input trigger states in a TRC clock time slice */
133
vector<uint32_t>&
GetInputSignalsVector
() {
return
fInputsVec
; }
134
135
unordered_map<UInt_t, Long64_t>&
GetTimeShift
() {
return
fTimeShift
; }
136
137
/** Set Event Header branch name */
138
void
SetHeaderName
(
TString
header_name) {
fHeaderName
= header_name; }
139
140
/** Set the event ID for this event
141
* @param event_id : unique event id
142
*/
143
void
SetEventId
(
UInt_t
event_id) {
fEventId
= event_id; }
144
145
/** Set the period ID for this event
146
* @param period_id : period id
147
*/
148
void
SetPeriodId
(
UInt_t
period_id) {
fPeriodId
= period_id; }
149
150
/** Set the time for this event in */
151
void
SetEventTimeTS
(
TTimeStamp
event_time) {
fEventTimeTS
= event_time; }
152
void
SetEventTimeTP
(
SysPoint
event_time) {
fEventTimeTS
=
BmnFunctionSet::TimePoint2TS
(event_time); }
153
154
/** Set the time for this event in */
155
void
SetVspTS
(
TTimeStamp
event_time) {
fEventVspTS
= event_time; }
156
157
/** Set the type for this event
158
* @param event_type : type (0 or 1)
159
*/
160
void
SetEventType
(
BmnEventType
event_type) {
fEventType
= event_type; }
161
162
void
SetTripWord
(
Bool_t
flag) {
fTripWord
= flag; }
163
164
void
SetSpillStart
(
Bool_t
flag) {
fSpillStart
= flag; }
165
166
void
SetStartSignalInfo
(
Double_t
time,
Double_t
width)
167
{
168
fStartSignalTime
= time;
169
fStartSignalWidth
= width;
170
}
171
172
void
SetTrigInfo
(
BmnTrigInfo
& trig_info) {
fTrigInfo
.SetFrom(trig_info); }
173
174
// /** Set the trigger state */
175
// void SetTrigState(BmnTrigUnion& v) { fTrigUnion = v.storage; }
176
177
/** Set the Input signal states, after reduction */
178
void
SetInputSignalsAR
(
UInt_t
v
) {
fInputsAR
=
v
; }
179
180
/** Set the Input signal states, before reduction */
181
void
SetInputSignalsBR
(
UInt_t
v
) {
fInputsBR
=
v
; }
182
183
/** Set the Input signals vector, each word is a state of input trigger states in a TRC clock time slice */
184
void
SetInputSignalsVector
(vector<uint32_t>
v
) {
fInputsVec
=
v
; }
185
186
void
SetTimeShift
(unordered_map<UInt_t, Long64_t> time_shift) {
fTimeShift
= time_shift; }
187
188
ClassDef
(
BmnEventHeader
, 6)
189
};
190
191
#endif
/* BMNEVENTHEADER_H */
v
__m128 v
Definition
P4_F32vec4.h:1
Bool_t
bool Bool_t
UInt_t
unsigned int UInt_t
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
ClassDef
#define ClassDef(name, id)
TTimeStamp.h
BmnEventType
BmnEventType
Define type of event.
Definition
BmnEnums.h:143
SysClock
std::chrono::system_clock SysClock
Definition
BmnFunctionSet.h:17
SysPoint
std::chrono::time_point< SysClock > SysPoint
Definition
BmnFunctionSet.h:18
BmnEventHeader
Definition
BmnEventHeader.h:24
BmnEventHeader::fStartSignalWidth
Double_t fStartSignalWidth
Definition
BmnEventHeader.h:45
BmnEventHeader::fTripWord
Bool_t fTripWord
Tripped Gems (1 bit for 1 GEM module).
Definition
BmnEventHeader.h:40
BmnEventHeader::GetInputSignalsVector
vector< uint32_t > & GetInputSignalsVector()
Get Input signal vector, each word is a state of input trigger states in a TRC clock time slice.
Definition
BmnEventHeader.h:133
BmnEventHeader::GetTimeShift
unordered_map< UInt_t, Long64_t > & GetTimeShift()
Definition
BmnEventHeader.h:135
BmnEventHeader::SetStartSignalInfo
void SetStartSignalInfo(Double_t time, Double_t width)
Definition
BmnEventHeader.h:166
BmnEventHeader::fInputsBR
UInt_t fInputsBR
Definition
BmnEventHeader.h:49
BmnEventHeader::GetPeriodId
UInt_t GetPeriodId()
Get the period ID for this event.
Definition
BmnEventHeader.h:92
BmnEventHeader::BmnEventHeader
BmnEventHeader()
Default constructor.
Definition
BmnEventHeader.cxx:4
BmnEventHeader::GetEventTimeTP
SysPoint GetEventTimeTP()
Definition
BmnEventHeader.h:96
BmnEventHeader::fEventTimeTS
TTimeStamp fEventTimeTS
Event Time in TTimeStamp.
Definition
BmnEventHeader.h:34
BmnEventHeader::SetEventType
void SetEventType(BmnEventType event_type)
Set the type for this event.
Definition
BmnEventHeader.h:160
BmnEventHeader::GetInputSignalsBR
UInt_t GetInputSignalsBR()
Get Input signal states, before reduction.
Definition
BmnEventHeader.h:130
BmnEventHeader::GetTripWord
Bool_t GetTripWord()
Get the trip word for this event.
Definition
BmnEventHeader.h:105
BmnEventHeader::fTimeShift
unordered_map< UInt_t, Long64_t > fTimeShift
Definition
BmnEventHeader.h:52
BmnEventHeader::GetEventId
UInt_t GetEventId()
Get the event ID for this event.
Definition
BmnEventHeader.h:89
BmnEventHeader::GetStartSignalWidth
Double_t GetStartSignalWidth()
Definition
BmnEventHeader.h:111
BmnEventHeader::fPeriodId
UInt_t fPeriodId
Period Id.
Definition
BmnEventHeader.h:32
BmnEventHeader::SetInputSignalsAR
void SetInputSignalsAR(UInt_t v)
Set the Input signal states, after reduction.
Definition
BmnEventHeader.h:178
BmnEventHeader::SetTimeShift
void SetTimeShift(unordered_map< UInt_t, Long64_t > time_shift)
Definition
BmnEventHeader.h:186
BmnEventHeader::SetHeaderName
void SetHeaderName(TString header_name)
Set Event Header branch name.
Definition
BmnEventHeader.h:138
BmnEventHeader::Clear
void Clear()
Definition
BmnEventHeader.cxx:76
BmnEventHeader::SetSpillStart
void SetSpillStart(Bool_t flag)
Definition
BmnEventHeader.h:164
BmnEventHeader::fStartSignalTime
Double_t fStartSignalTime
T0 information for current event.
Definition
BmnEventHeader.h:44
BmnEventHeader::GetStartSignalTime
Double_t GetStartSignalTime()
Definition
BmnEventHeader.h:110
BmnEventHeader::~BmnEventHeader
virtual ~BmnEventHeader()
Destructor.
Definition
BmnEventHeader.cxx:71
BmnEventHeader::fTrigInfo
BmnTrigInfo fTrigInfo
Definition
BmnEventHeader.h:46
BmnEventHeader::fEventId
UInt_t fEventId
Event Id.
Definition
BmnEventHeader.h:30
BmnEventHeader::SetInputSignalsVector
void SetInputSignalsVector(vector< uint32_t > v)
Set the Input signals vector, each word is a state of input trigger states in a TRC clock time slice.
Definition
BmnEventHeader.h:184
BmnEventHeader::Register
virtual void Register(Bool_t Persistence=kTRUE)
Definition
BmnEventHeader.h:78
BmnEventHeader::GetEventTimeTS
TTimeStamp GetEventTimeTS()
Get the time for this event.
Definition
BmnEventHeader.h:95
BmnEventHeader::SetVspTS
void SetVspTS(TTimeStamp event_time)
Set the time for this event in.
Definition
BmnEventHeader.h:155
BmnEventHeader::fInputsVec
vector< uint32_t > fInputsVec
Definition
BmnEventHeader.h:50
BmnEventHeader::fHeaderName
TString fHeaderName
Event Header branch name.
Definition
BmnEventHeader.h:27
BmnEventHeader::SetEventTimeTS
void SetEventTimeTS(TTimeStamp event_time)
Set the time for this event in.
Definition
BmnEventHeader.h:151
BmnEventHeader::fSpillStart
Bool_t fSpillStart
start of new spill
Definition
BmnEventHeader.h:42
BmnEventHeader::GetSpillStart
Bool_t GetSpillStart()
Get wether new spill is started.
Definition
BmnEventHeader.h:108
BmnEventHeader::fEventVspTS
TTimeStamp fEventVspTS
VSP Trigger Time in TTimeStamp.
Definition
BmnEventHeader.h:36
BmnEventHeader::GetVspTS
TTimeStamp GetVspTS()
Get the time for this event.
Definition
BmnEventHeader.h:99
BmnEventHeader::GetHeaderName
TString GetHeaderName()
Get Event Header branch name.
Definition
BmnEventHeader.h:86
BmnEventHeader::fInputsAR
UInt_t fInputsAR
Definition
BmnEventHeader.h:48
BmnEventHeader::SetTripWord
void SetTripWord(Bool_t flag)
Definition
BmnEventHeader.h:162
BmnEventHeader::GetTrigInfo
BmnTrigInfo & GetTrigInfo()
Get the spill statistics.
Definition
BmnEventHeader.h:114
BmnEventHeader::SetTrigInfo
void SetTrigInfo(BmnTrigInfo &trig_info)
Definition
BmnEventHeader.h:172
BmnEventHeader::GetInputSignalsAR
UInt_t GetInputSignalsAR()
Get Input signal states, after reduction.
Definition
BmnEventHeader.h:127
BmnEventHeader::fEventType
BmnEventType fEventType
Event Type (payload = 0 or pedestal = 1).
Definition
BmnEventHeader.h:38
BmnEventHeader::SetInputSignalsBR
void SetInputSignalsBR(UInt_t v)
Set the Input signal states, before reduction.
Definition
BmnEventHeader.h:181
BmnEventHeader::SetPeriodId
void SetPeriodId(UInt_t period_id)
Set the period ID for this event.
Definition
BmnEventHeader.h:148
BmnEventHeader::GetEventType
BmnEventType GetEventType()
Get the type of this event.
Definition
BmnEventHeader.h:102
BmnEventHeader::SetEventTimeTP
void SetEventTimeTP(SysPoint event_time)
Definition
BmnEventHeader.h:152
BmnEventHeader::SetEventId
void SetEventId(UInt_t event_id)
Set the event ID for this event.
Definition
BmnEventHeader.h:143
BmnFunctionSet::TimeStamp2TP
static SysPoint TimeStamp2TP(TTimeStamp p)
Definition
BmnFunctionSet.cxx:606
BmnFunctionSet::TimePoint2TS
static TTimeStamp TimePoint2TS(SysPoint p)
Definition
BmnFunctionSet.cxx:599
BmnTrigInfo
Class BmnTrigInfo Trigger counters of the current spill from U40VE card.
Definition
BmnTrigInfo.h:15
FairEventHeader
TString
TTimeStamp
SysPoint
std::chrono::time_point< SysClock > SysPoint
Definition
BmnEventHeader.h:18
base
header
BmnEventHeader.h
Generated on
for BmnRoot by
1.17.0