BmnRoot
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
16using std::map;
17using std::unordered_map;
18using std::vector;
19
20class DigiRunHeader : public TObject
21{
22 private:
24 UInt_t fPeriodId;
26 UInt_t fRunId;
28 ULong64_t fEventCnt;
29 TTimeStamp fRunStartTime;
30 TTimeStamp fRunEndTime;
31 ULong64_t fBeamTrigger;
32 ULong64_t fBTnBusy;
33 Double_t fBTAccepted;
35 ULong64_t fAccepted;
36 ULong64_t fProtection;
37 ULong64_t fL0;
38 ULong64_t fBP;
39 ULong64_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;
47 vector<string> scalers_index2name_map;
48 map<uint16_t, uint16_t> fTrcIdx2ScalerIdx;
49 unordered_map<UInt_t, vector<uint64_t>> fBoardSums;
50
51 std::array<ULong64_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:
59
66 DigiRunHeader(UInt_t period_id, UInt_t run_id, TTimeStamp run_start_time, TTimeStamp run_end_time);
67
69 virtual ~DigiRunHeader();
70
72 ULong64_t GetPeriodId() { return fPeriodId; }
74 ULong64_t GetRunId() { return fRunId; }
76 ULong64_t GetNEvents() { return fEventCnt; }
78 ULong64_t GetBT() { return fBeamTrigger; }
80 ULong64_t GetBTnBusy() { return fBTnBusy; }
82 Double_t GetBTAccepted() { return fBTAccepted; }
84 ULong64_t GetAccepted() { return fAccepted; }
86 ULong64_t GetProtection() { return fProtection; }
88 ULong64_t GetL0() { return fL0; }
90 T0ChMap& T0Map() { return fT0Map; }
92 NameChMap& GetTrcBitMap() { return fTrcBitMap; }
94 Name2SerCh& GetScalerMap() { return fScalersMap; }
95
96 NameChMap& ScalersName2IndexMap() { return scalers_name2index_map; }
97
98 vector<string>& ScalersIndex2NameMap() { return scalers_index2name_map; }
99
100 map<uint16_t, uint16_t>& TrcIndex2ScalerIndexMap() { return fTrcIdx2ScalerIdx; }
101
103 {
104 for (size_t iSc = 0; iSc < scalers_index2name_map.size(); iSc++) {
105 string& name = scalers_index2name_map[iSc];
106 uint64_t& val = fScalersVec[iSc];
107 printf("MSC %-14s %10lu\n", name.c_str(), val);
108 }
109 }
110
111 vector<uint64_t>& ScalersVec() { return fScalersVec; }
112
113 ULong64_t GetScaler(string name);
114
115 ULong64_t GetRawT0Counter(string name, UInt_t ch = 0);
116 // ULong64_t GetTrcCounter(string name);
118 std::array<ULong64_t, kT0_BIN_BLOCK_WORDS>& RawT0Counters() { return rawt0_cntrs; }
119
120 MapString2Cnt& EventTriggerCnt() { return event_trig_count; }
121
122 // vector<vector<> >
124 unordered_map<UInt_t, vector<uint64_t>>& GetRawMSC() { return fBoardSums; }
125 map<SysPoint, BmnSpillInfo>& GetSpillMap() { return fSpillMap; }
126
128 BmnTrigConfig& GetTrigConfig() { return trig_config; }
129
130 TTimeStamp GetRunStartTime() { return fRunStartTime; }
132 TTimeStamp GetRunEndTime() { return fRunEndTime; }
134
138 void SetPeriodId(UInt_t period_id) { fPeriodId = period_id; }
139
143 void SetRunId(UInt_t run_id) { fRunId = run_id; }
145 void SetNEvents(ULong64_t events) { fEventCnt = events; }
146
150 void SetRunStartTime(TTimeStamp run_start_time) { fRunStartTime = run_start_time; }
151 void SetRunStartTP(SysPoint run_start_time) { fRunStartTime = BmnFunctionSet::TimePoint2TS(run_start_time); }
152
156 void SetRunEndTime(TTimeStamp run_end_time) { fRunEndTime = run_end_time; }
157 void SetRunEndTP(SysPoint run_end_time) { fRunEndTime = BmnFunctionSet::TimePoint2TS(run_end_time); }
158
162 void SetBT(ULong64_t cntr) { fBeamTrigger = cntr; }
166 void SetBTnBusy(ULong64_t cntr) { fBTnBusy = cntr; }
170 void SetBTAccepted(Double_t cntr) { fBTAccepted = cntr; }
174 void SetAccepted(ULong64_t cntr) { fAccepted = cntr; }
178 void SetProtection(ULong64_t cntr) { fProtection = cntr; }
182 void SetL0(ULong64_t cntr) { fL0 = cntr; }
186 void SetRawMSC(unordered_map<UInt_t, vector<uint64_t>> v)
187 {
188 fBoardSums = v;
189 // printf("inner len %lu\n", fBoardSums.size());
190 }
191 void SetSpillMap(map<SysPoint, BmnSpillInfo> v)
192 {
193 fSpillMap = v;
194 // printf("inner len %lu\n", fSpillMap.size());
195 }
196
197 void SetTrigConfig(BmnTrigConfig tc) { trig_config = tc; }
198
199 ClassDef(DigiRunHeader, 11)
200};
201
202#endif /* BMNDIGIRUNHEADER_H */
__m128 v
Definition P4_F32vec4.h:1
std::chrono::time_point< SysClock > SysPoint
std::unordered_map< std::string, std::pair< uint32_t, uint16_t > > Name2SerCh
Definition BmnAliases.h:9
std::unordered_map< std::string, uint64_t > MapString2Cnt
Definition BmnAliases.h:11
std::map< T0MapKey, uint16_t > T0ChMap
Definition BmnAliases.h:6
std::unordered_map< std::string, uint16_t > NameChMap
Definition BmnAliases.h:7
static SysPoint TimeStamp2TP(TTimeStamp p)
static TTimeStamp TimePoint2TS(SysPoint p)
SysPoint GetRunEndTP()
void SetPeriodId(UInt_t period_id)
void SetRunStartTime(TTimeStamp run_start_time)
void SetTrigConfig(BmnTrigConfig tc)
ULong64_t GetRunId()
NameChMap & GetTrcBitMap()
Name2SerCh & GetScalerMap()
void SetRunStartTP(SysPoint run_start_time)
ULong64_t GetPeriodId()
ULong64_t GetL0()
void SetBTnBusy(ULong64_t cntr)
SysPoint GetRunStartTP()
ULong64_t GetNEvents()
T0ChMap & T0Map()
ULong64_t GetScaler(string name)
void SetRunEndTime(TTimeStamp run_end_time)
void SetAccepted(ULong64_t cntr)
TTimeStamp GetRunEndTime()
void SetNEvents(ULong64_t events)
void SetProtection(ULong64_t cntr)
void SetRunEndTP(SysPoint run_end_time)
vector< uint64_t > & ScalersVec()
void SetBTAccepted(Double_t cntr)
TTimeStamp GetRunStartTime()
BmnTrigConfig & GetTrigConfig()
Double_t GetBTAccepted()
std::array< ULong64_t, kT0_BIN_BLOCK_WORDS > & RawT0Counters()
void SetL0(ULong64_t cntr)
void SetRawMSC(unordered_map< UInt_t, vector< uint64_t > > v)
ULong64_t GetBT()
vector< string > & ScalersIndex2NameMap()
void SetSpillMap(map< SysPoint, BmnSpillInfo > v)
ULong64_t GetRawT0Counter(string name, UInt_t ch=0)
unordered_map< UInt_t, vector< uint64_t > > & GetRawMSC()
ULong64_t GetBTnBusy()
ULong64_t GetAccepted()
map< SysPoint, BmnSpillInfo > & GetSpillMap()
virtual ~DigiRunHeader()
ULong64_t GetProtection()
MapString2Cnt & EventTriggerCnt()
map< uint16_t, uint16_t > & TrcIndex2ScalerIndexMap()
NameChMap & ScalersName2IndexMap()
void SetBT(ULong64_t cntr)
void SetRunId(UInt_t run_id)