BmnRoot
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
17using SysClock = std::chrono::system_clock;
18using SysPoint = std::chrono::time_point<SysClock>;
19using std::map;
20using std::unordered_map;
21using std::vector;
22
23class BmnEventHeader : public FairEventHeader
24{
25 private:
27 TString fHeaderName;
28
30 UInt_t fEventId;
32 UInt_t fPeriodId;
34 TTimeStamp fEventTimeTS;
36 TTimeStamp fEventVspTS;
38 BmnEventType fEventType;
40 Bool_t fTripWord;
42 Bool_t fSpillStart;
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 TTimeStamp fSpillStartTS;
52 Int_t fSpillId;
53
54 unordered_map<UInt_t, Long64_t> fTimeShift;
55
56 public:
59
61 BmnEventHeader(UInt_t run_id,
62 UInt_t event_id,
63 TTimeStamp event_time,
64 BmnEventType event_type,
65 Bool_t trip,
66 BmnTrigInfo& trig_info);
67
69 BmnEventHeader(UInt_t run_id,
70 UInt_t event_id,
71 TTimeStamp event_time,
72 BmnEventType event_type,
73 Bool_t trip,
74 BmnTrigInfo& trig_info,
75 unordered_map<UInt_t, Long64_t> time_shift);
76
78 virtual ~BmnEventHeader();
79
80 virtual void Register(Bool_t Persistence = kTRUE)
81 {
82 // FairRootManager::Instance()->Register(fHeaderName.Data(), "EvtHeader", this, Persistence);
83 }
84
85 void Clear();
86
88 TString GetHeaderName() { return fHeaderName; }
89
91 UInt_t GetEventId() { return fEventId; }
92
94 UInt_t GetPeriodId() { return fPeriodId; }
95
97 TTimeStamp GetEventTimeTS() { return fEventTimeTS; }
99
101 TTimeStamp GetVspTS() { return fEventVspTS; }
102
104 BmnEventType GetEventType() { return fEventType; }
105
107 Bool_t GetTripWord() { return fTripWord; }
108
110 Bool_t GetSpillStart() { return fSpillStart; }
111
112 Double_t GetStartSignalTime() { return fStartSignalTime; }
113 Double_t GetStartSignalWidth() { return fStartSignalWidth; }
114
116 BmnTrigInfo& GetTrigInfo() { return fTrigInfo; }
117
118 // /** Get the trigger state */
119 // BmnTrigUnion GetTrigState()
120 // {
121 // BmnTrigUnion u;
122 // u.storage = fTrigUnion;
123 // return u;
124 // }
125
126 // UInt_t GetTrigStateWord() { return fTrigUnion; }
127
129 UInt_t GetInputSignalsAR() { return fInputsAR; }
130
132 UInt_t GetInputSignalsBR() { return fInputsBR; }
133
135 vector<uint32_t>& GetInputSignalsVector() { return fInputsVec; }
136
137 unordered_map<UInt_t, Long64_t>& GetTimeShift() { return fTimeShift; }
138
140 void SetHeaderName(TString header_name) { fHeaderName = header_name; }
141
145 void SetEventId(UInt_t event_id) { fEventId = event_id; }
146
150 void SetPeriodId(UInt_t period_id) { fPeriodId = period_id; }
151
153 void SetEventTimeTS(TTimeStamp event_time) { fEventTimeTS = event_time; }
154 void SetEventTimeTP(SysPoint event_time) { fEventTimeTS = BmnFunctionSet::TimePoint2TS(event_time); }
155
157 void SetVspTS(TTimeStamp event_time) { fEventVspTS = event_time; }
158
162 void SetEventType(BmnEventType event_type) { fEventType = event_type; }
163
164 void SetTripWord(Bool_t flag) { fTripWord = flag; }
165
166 void SetSpillStart(Bool_t flag) { fSpillStart = flag; }
167
168 void SetStartSignalInfo(Double_t time, Double_t width)
169 {
170 fStartSignalTime = time;
171 fStartSignalWidth = width;
172 }
173
174 void SetTrigInfo(BmnTrigInfo& trig_info) { fTrigInfo.SetFrom(trig_info); }
175
176 // /** Set the trigger state */
177 // void SetTrigState(BmnTrigUnion& v) { fTrigUnion = v.storage; }
178
180 void SetInputSignalsAR(UInt_t v) { fInputsAR = v; }
181
183 void SetInputSignalsBR(UInt_t v) { fInputsBR = v; }
184
186 void SetInputSignalsVector(vector<uint32_t> v) { fInputsVec = v; }
187
188 void SetSpillStartTS(TTimeStamp ts) { fSpillStartTS = ts; }
189 TTimeStamp GetSpillStartTS() { return fSpillStartTS; }
190 Int_t& GetSpillId() { return fSpillId; }
191 void SetSpillId(UInt_t sid) { fSpillId = sid; }
192
193 void SetTimeShift(unordered_map<UInt_t, Long64_t> time_shift) { fTimeShift = time_shift; }
194
195 ClassDef(BmnEventHeader, 5)
196};
197
198#endif /* BMNEVENTHEADER_H */
__m128 v
Definition P4_F32vec4.h:1
BmnEventType
Definition BmnEnums.h:69
std::chrono::system_clock SysClock
std::chrono::time_point< SysClock > SysPoint
vector< uint32_t > & GetInputSignalsVector()
unordered_map< UInt_t, Long64_t > & GetTimeShift()
void SetStartSignalInfo(Double_t time, Double_t width)
TTimeStamp GetSpillStartTS()
UInt_t GetPeriodId()
SysPoint GetEventTimeTP()
void SetEventType(BmnEventType event_type)
UInt_t GetInputSignalsBR()
UInt_t GetEventId()
Double_t GetStartSignalWidth()
void SetInputSignalsAR(UInt_t v)
Int_t & GetSpillId()
void SetTimeShift(unordered_map< UInt_t, Long64_t > time_shift)
void SetHeaderName(TString header_name)
void SetSpillStart(Bool_t flag)
Double_t GetStartSignalTime()
virtual ~BmnEventHeader()
void SetSpillStartTS(TTimeStamp ts)
void SetInputSignalsVector(vector< uint32_t > v)
virtual void Register(Bool_t Persistence=kTRUE)
void SetSpillId(UInt_t sid)
TTimeStamp GetEventTimeTS()
void SetVspTS(TTimeStamp event_time)
void SetEventTimeTS(TTimeStamp event_time)
Bool_t GetSpillStart()
TTimeStamp GetVspTS()
TString GetHeaderName()
void SetTripWord(Bool_t flag)
BmnTrigInfo & GetTrigInfo()
void SetTrigInfo(BmnTrigInfo &trig_info)
UInt_t GetInputSignalsAR()
void SetInputSignalsBR(UInt_t v)
void SetPeriodId(UInt_t period_id)
BmnEventType GetEventType()
void SetEventTimeTP(SysPoint event_time)
void SetEventId(UInt_t event_id)
static SysPoint TimeStamp2TP(TTimeStamp p)
static TTimeStamp TimePoint2TS(SysPoint p)
void SetFrom(BmnTrigInfo &info)
std::chrono::time_point< SysClock > SysPoint