BmnRoot
Loading...
Searching...
No Matches
BmnT0Raw.h
Go to the documentation of this file.
1#ifndef BMNT0RAW_H
2#define BMNT0RAW_H
3
4#include <array>
5#include <chrono>
6#include <string>
7#include <vector>
8// ROOT
9#include <TObject.h>
10// BmnRoot
11#include "BmnFunctionSet.h"
12
13using SysClock = std::chrono::system_clock;
14using SysPoint = std::chrono::time_point<SysClock>;
15using Dur_ns = std::chrono::duration<Double_t, std::nano>;
16using std::map;
17using std::string;
18using std::vector;
19
21{
23 : active{}
24 , name{}
25 , V_P1{}
26 , V_P2{}
27 , state{}
28 {}
29 virtual ~LV_Channel_Config() = default;
30 bool active;
31 string name;
32 int32_t V_P1;
33 int32_t V_P2;
34 bool state;
35 void print()
36 {
37 printf("active: %d\n", active);
38 printf(" name: %s\n", name.data());
39 printf(" V_P1: %d\n", V_P1);
40 printf(" V_P2: %d\n", V_P2);
41 printf(" state: %d\n", state);
42 }
44};
45
47{
53 virtual ~Discriminator_Config() = default;
54 int8_t polarity;
55 int32_t threshold;
56 string threshold_unit;
57 void print()
58 {
59 printf(" polarity: %2d\n", polarity);
60 printf("threshold: %5d %s\n", threshold, threshold_unit.data());
61 }
63};
64
68template<UInt_t counters_cnt = 256>
69class BmnT0Raw : public TObject
70{
71 public:
73 BmnT0Raw(UInt_t* src = nullptr)
74 : counters{}
76 , bd_mult_h{0}
77 , bd_mult_l{0}
79 , trigger_mask{0}
80 // { memcpy(counters, src, sizeof(UInt_t) * counters_cnt); }
81 {
82 if (src)
83 memcpy(counters.data(), src, sizeof(UInt_t) * counters_cnt);
84 }
86 virtual ~BmnT0Raw() = default;
87
88 constexpr static const UInt_t CountersCount() { return counters_cnt; }
89
91
93
94 void SetTS(TTimeStamp ts) { timestamp = ts; }
95
96 TTimeStamp GetTS() { return timestamp; }
97
98 // void SetTimeSinceLastEv(Dur_ns dur) { since_last_event = dur;}
105 void SetTimeSinceLastEvNs(Double_t dur) { since_last_event_ns = dur; }
106
108 {
109 // return since_last_event;
111 }
112
114
115 // UInt_t (&Counters())[counters_cnt] { return counters; }
116 std::array<UInt_t, counters_cnt>& Counters() { return counters; }
117
118 // vector<UInt_t>& Counters() {
119 // return counters;
120 // }
121
122 map<uint32_t, Discriminator_Config>& Discriminators() { return discriminator_cfg; }
123
124 map<uint32_t, LV_Channel_Config>& LVChannelConfig() { return lv_channel_cfg; }
125 map<uint32_t, int32_t>& DelayLines() { return delay_lines; }
126 map<uint32_t, bool>& Switches() { return switches; }
127
128 void SetComment(string str) { comment = str; }
129
130 string GetComment() { return comment; }
131
132 void SetBDMultH(uint32_t val) { bd_mult_h = val; }
133
134 uint32_t GetBDMultH() { return bd_mult_h; }
135
136 void SetBDMultL(uint32_t val) { bd_mult_l = val; }
137
138 uint32_t GetBDMultL() { return bd_mult_l; }
139
140 void SetExtraDelaysMask(uint32_t val) { extra_delays_mask = val; }
141
143
144 void SetTriggerMask(uint32_t val) { trigger_mask = val; }
145
146 uint32_t GetTriggerMask() { return trigger_mask; }
147
148 protected:
149 // static const UInt_t counters_cnt = 256;
150 // UInt_t counters[counters_cnt];
151 std::array<UInt_t, counters_cnt> counters;
152 // vector<UInt_t> counters;
153 // SysPoint time;
154 TTimeStamp timestamp;
155 // Dur_ns since_last_event;
156 Double_t since_last_event_ns;
157 string comment;
158 uint32_t bd_mult_h;
159 uint32_t bd_mult_l;
160 uint32_t extra_delays_mask;
161 uint32_t trigger_mask;
162
163 map<uint32_t, Discriminator_Config> discriminator_cfg;
164 map<uint32_t, LV_Channel_Config> lv_channel_cfg;
165 map<uint32_t, int32_t> delay_lines;
166 map<uint32_t, bool> switches;
167
169};
170
171#endif /* BMNT0RAW_H */
std::chrono::system_clock SysClock
std::chrono::time_point< SysClock > SysPoint
std::chrono::duration< Double_t, std::nano > Dur_ns
Definition BmnT0Raw.h:15
static SysPoint TimeStamp2TP(TTimeStamp p)
static TTimeStamp TimePoint2TS(SysPoint p)
uint32_t bd_mult_h
Definition BmnT0Raw.h:158
map< uint32_t, int32_t > & DelayLines()
Definition BmnT0Raw.h:125
map< uint32_t, bool > & Switches()
Definition BmnT0Raw.h:126
void SetTimeSinceLastEvNs(Double_t dur)
Definition BmnT0Raw.h:105
uint32_t GetBDMultH()
Definition BmnT0Raw.h:134
std::array< UInt_t, counters_cnt > counters
Definition BmnT0Raw.h:151
virtual ~BmnT0Raw()=default
string GetComment()
Definition BmnT0Raw.h:130
map< uint32_t, LV_Channel_Config > lv_channel_cfg
Definition BmnT0Raw.h:164
void SetTriggerMask(uint32_t val)
Definition BmnT0Raw.h:144
static constexpr const UInt_t CountersCount()
Definition BmnT0Raw.h:88
Dur_ns GetTimeSinceLastEv()
Definition BmnT0Raw.h:107
TTimeStamp timestamp
Definition BmnT0Raw.h:154
std::array< UInt_t, counters_cnt > & Counters()
Definition BmnT0Raw.h:116
uint32_t GetBDMultL()
Definition BmnT0Raw.h:138
uint32_t extra_delays_mask
Definition BmnT0Raw.h:160
map< uint32_t, Discriminator_Config > & Discriminators()
Definition BmnT0Raw.h:122
uint32_t bd_mult_l
Definition BmnT0Raw.h:159
BmnT0Raw(UInt_t *src=nullptr)
Definition BmnT0Raw.h:73
map< uint32_t, Discriminator_Config > discriminator_cfg
Definition BmnT0Raw.h:163
ClassDef(BmnT0Raw, 8)
uint32_t trigger_mask
Definition BmnT0Raw.h:161
uint32_t GetExtraDelaysMask()
Definition BmnT0Raw.h:142
uint32_t GetTriggerMask()
Definition BmnT0Raw.h:146
SysPoint GetTime()
Definition BmnT0Raw.h:92
Double_t since_last_event_ns
Definition BmnT0Raw.h:156
map< uint32_t, bool > switches
Definition BmnT0Raw.h:166
void SetTS(TTimeStamp ts)
Definition BmnT0Raw.h:94
void SetComment(string str)
Definition BmnT0Raw.h:128
void SetBDMultL(uint32_t val)
Definition BmnT0Raw.h:136
Double_t GetTimeSinceLastEvNs()
Definition BmnT0Raw.h:113
void SetBDMultH(uint32_t val)
Definition BmnT0Raw.h:132
TTimeStamp GetTS()
Definition BmnT0Raw.h:96
map< uint32_t, LV_Channel_Config > & LVChannelConfig()
Definition BmnT0Raw.h:124
string comment
Definition BmnT0Raw.h:157
void SetExtraDelaysMask(uint32_t val)
Definition BmnT0Raw.h:140
map< uint32_t, int32_t > delay_lines
Definition BmnT0Raw.h:165
void SetTime(SysPoint point)
Definition BmnT0Raw.h:90
std::chrono::time_point< SysClock > SysPoint
Definition BmnT0Raw.h:14
std::chrono::duration< Double_t, std::nano > Dur_ns
Definition BmnT0Raw.h:15
ClassDef(Discriminator_Config, 1)
virtual ~Discriminator_Config()=default
ClassDef(LV_Channel_Config, 1)
virtual ~LV_Channel_Config()=default