MiniballSort
Loading...
Searching...
No Matches
DataPackets.cc
Go to the documentation of this file.
1#include "DataPackets.hh"
2
12
13FebexData::FebexData( long long int t, unsigned long long int id,
14 unsigned int qi, unsigned short qs,
15 std::vector<unsigned short> tr,
16 unsigned char s, unsigned char b, unsigned char c,
17 bool th, bool p, bool cl, bool f ) :
18 time(t), eventid(id), Qint(qi), Qshort(qs), trace(tr), sfp(s),
19 board(b), ch(c), thres(th), pileup(p), clipped(cl), flagbit(f) {}
20
21InfoData::InfoData( long long int t, unsigned long long int id, unsigned char c,
22 unsigned char s, unsigned char b ) :
23 time(t), eventid(id), code(c), sfp(s), board(b) {}
24
25void MiniballDataPackets::SetData( std::shared_ptr<DgfData> data ){
26
27 // Reset the vector to size = 0
28 // We only want to have one element per Tree entry
29 ClearData();
30
31 // Make a copy of the input data and push it back
32 DgfData fill_data;
33
34 fill_data.SetRunTime( data->GetRunTime() );
35 fill_data.SetFastTriggerTime( data->GetFastTriggerTime() );
36 fill_data.SetLongFastTriggerTime( data->GetLongFastTriggerTime() );
37 fill_data.SetRunTime( data->GetRunTime() );
38 fill_data.SetEventTime( data->GetEventTime() );
39 fill_data.SetEventID( data->GetEventID() );
40 fill_data.SetQshort( data->GetQshort() );
41 fill_data.SetModule( data->GetModule() );
42 fill_data.SetChannel( data->GetChannel() );
43 fill_data.SetEnergy( data->GetEnergy() );
44 fill_data.SetTrace( data->GetTrace() );
45 fill_data.SetThreshold( data->IsOverThreshold() );
46 fill_data.SetHitPattern( data->GetHitPattern() );
47 fill_data.SetUserValues( data->GetUserValues() );
48
49 dgf_packets.push_back( fill_data );
50
51}
52
53void MiniballDataPackets::SetData( std::shared_ptr<AdcData> data ){
54
55 // Reset the vector to size = 0
56 // We only want to have one element per Tree entry
57 ClearData();
58
59 // Make a copy of the input data and push it back
60 AdcData fill_data;
61
62 fill_data.SetTime( data->GetTime() );
63 fill_data.SetEventID( data->GetEventID() );
64 fill_data.SetQshort( data->GetQshort() );
65 fill_data.SetModule( data->GetModule() );
66 fill_data.SetChannel( data->GetChannel() );
67 fill_data.SetEnergy( data->GetEnergy() );
68 fill_data.SetThreshold( data->IsOverThreshold() );
69 fill_data.SetClipped( data->IsClipped() );
70
71 adc_packets.push_back( fill_data );
72
73}
74
75void MiniballDataPackets::SetData( std::shared_ptr<FebexData> data ){
76
77 // Reset the vector to size = 0
78 // We only want to have one element per Tree entry
79 ClearData();
80
81 // Make a copy of the input data and push it back
82 FebexData fill_data;
83
84 fill_data.SetTime( data->GetTime() );
85 fill_data.SetEventID( data->GetEventID() );
86 fill_data.SetTrace( data->GetTrace() );
87 fill_data.SetQint( data->GetQint() );
88 fill_data.SetQshort( data->GetQshort() );
89 fill_data.SetSfp( data->GetSfp() );
90 fill_data.SetBoard( data->GetBoard() );
91 fill_data.SetChannel( data->GetChannel() );
92 fill_data.SetEnergy( data->GetEnergy() );
93 fill_data.SetThreshold( data->IsOverThreshold() );
94 fill_data.SetPileup( data->IsPileup() );
95 fill_data.SetClipped( data->IsClipped() );
96 fill_data.SetFlag( data->HasFlag() );
97
98 febex_packets.push_back( fill_data );
99
100}
101
102void MiniballDataPackets::SetData( std::shared_ptr<InfoData> data ){
103
104 // Reset the vector to size = 0
105 // We only want to have one element per Tree entry
106 ClearData();
107
108 // Make a copy of the input data and push it back
109 InfoData fill_data;
110 fill_data.SetTime( data->GetTime() );
111 fill_data.SetEventID( data->GetEventID() );
112 fill_data.SetCode( data->GetCode() );
113 fill_data.SetSfp( data->GetSfp() );
114 fill_data.SetBoard( data->GetBoard() );
115
116 info_packets.push_back( fill_data );
117
118}
119
120
122
123 std::vector<DgfData>().swap(dgf_packets);
124 std::vector<AdcData>().swap(adc_packets);
125 std::vector<FebexData>().swap(febex_packets);
126 std::vector<InfoData>().swap(info_packets);
127
128}
129
130unsigned long long int MiniballDataPackets::GetEventID() const {
131
132 if( this->IsDgf() ) return GetDgfData()->GetEventID();
133 if( this->IsAdc() ) return GetAdcData()->GetEventID();
134 if( this->IsFebex() ) return GetFebexData()->GetEventID();
135 if( this->IsInfo() ) return GetInfoData()->GetEventID();
136
137 return 0;
138
139}
140
141long long int MiniballDataPackets::GetTime() const {
142
143 if( this->IsDgf() ) return GetDgfData()->GetTime();
144 if( this->IsAdc() ) return GetAdcData()->GetTime();
145 if( this->IsFebex() ) return GetFebexData()->GetTime();
146 if( this->IsInfo() ) return GetInfoData()->GetTime();
147
148 return 0;
149
150}
151
153
154 return ( (this->GetTime() >> 32) & 0xFFFFFFFF );
155
156}
157
159
160 return (UInt_t)this->GetTime();
161
162}
163
164unsigned char MiniballDataPackets::GetSfp() const {
165
166 if( IsFebex() ) return GetFebexData()->GetSfp();
167 if( IsInfo() ) return GetInfoData()->GetSfp();
168
169 return 0;
170
171}
172
173unsigned char MiniballDataPackets::GetBoard() const {
174
175 if( IsDgf() ) return GetDgfData()->GetModule();
176 if( IsAdc() ) return GetAdcData()->GetModule();
177 if( IsFebex() ) return GetFebexData()->GetBoard();
178 if( IsInfo() ) return GetInfoData()->GetBoard();
179
180 return 0;
181
182}
183
184unsigned char MiniballDataPackets::GetModule() const {
185
186 if( IsDgf() ) return GetDgfData()->GetModule();
187 if( IsAdc() ) return GetAdcData()->GetModule();
188 if( IsFebex() ) return GetFebexData()->GetBoard();
189 if( IsInfo() ) return GetInfoData()->GetBoard();
190
191 return 0;
192
193}
194
195unsigned char MiniballDataPackets::GetChannel() const {
196
197 if( IsDgf() ) return GetDgfData()->GetChannel();
198 if( IsAdc() ) return GetAdcData()->GetChannel();
199 if( IsFebex() ) return GetFebexData()->GetChannel();
200 if( IsInfo() ) return 0;
201
202 return 0;
203
204}
205
207
208 id = 255;
209 val = 0;
210
211}
212
214
215 energy = -99;
216 eventid = 0;
217 Qshort = 0;
218 time = 0;
219 mod = 255;
220 ch = 255;
221
222}
223
225
226 energy = -99;
227 eventid = 0;
228 Qshort = 0;
229 EventTime = 0;
230 FastTriggerTime = 0;
232 mod = 255;
233 ch = 255;
234 UserValues.clear();
235 std::vector<unsigned short>().swap(UserValues);
236 trace.clear();
237 std::vector<unsigned short>().swap(trace);
238
239}
240
242
243 mod = 0xffff;
244 clu = 0xffff;
245
246 fRealTime = 0;
247 fRunTime = 0;
248 fGSLTTime = 0;
249 fNumberOfEvents = 0;
250 fLiveTime.clear();
251 fFastPeak.clear();
252
253};
254
255
257
258 time = 0;
259 eventid = 0;
260 trace.clear();
261 std::vector<unsigned short>().swap(trace);
262 Qint = 0;
263 Qshort = 0;
264 sfp = 255;
265 board = 255;
266 ch = 255;
267 energy = -999.;
268 thres = true;
269 pileup = false;
270 clipped = false;
271 flagbit = false;
272
273 return;
274
275}
276
278
279 time = 0;
280 code = 0;
281 sfp = 255;
282 board = 255;
283
284 return;
285
286}
287
289
290 time = 0;
291 eventid = 0;
292 patterns.clear();
293 scalers.clear();
294 dgfscalers.clear();
295 std::vector<PatternUnitData>().swap(patterns);
296 std::vector<ScalerUnitData>().swap(scalers);
297 std::vector<DgfScalerData>().swap(dgfscalers);
298
299}
300
ClassImp(FebexData) ClassImp(InfoData) ClassImp(PatternUnitData) ClassImp(ScalerUnitData) ClassImp(DgfScalerData) ClassImp(AdcData) ClassImp(DgfData) ClassImp(MiniballDataPackets) ClassImp(MBSInfoPackets) FebexData
Definition DataPackets.cc:3
void SetClipped(bool c)
void SetThreshold(bool t)
void SetEnergy(float e)
long long time
unsigned short Qshort
void SetTime(long long t)
float energy
unsigned char mod
module number of ADC
void ClearData()
void SetQshort(unsigned short q)
void SetEventID(unsigned long long int id)
void SetModule(unsigned char m)
unsigned long long int eventid
void SetChannel(unsigned char c)
unsigned char ch
channel number of ADC
void SetRunTime(unsigned short time)
void SetTrace(std::vector< unsigned short > t)
void SetEventID(unsigned long long int id)
void SetThreshold(bool t)
unsigned short Qshort
std::vector< unsigned short > UserValues
long long LongFastTriggerTime
long long EventTime
void SetUserValues(std::vector< unsigned short > q)
void SetHitPattern(unsigned short hp)
void SetLongFastTriggerTime(long long time)
unsigned long long int eventid
std::vector< unsigned short > trace
void SetChannel(unsigned char c)
unsigned char mod
module number of DGF
unsigned char ch
channel number of DGF
float energy
unsigned short FastTriggerTime
void SetFastTriggerTime(unsigned short time)
void SetEnergy(float e)
void ClearData()
void SetQshort(unsigned short q)
void SetEventTime(long long time)
void SetModule(unsigned char m)
long long fRunTime
std::vector< int > fFastPeak
unsigned short clu
cluster ID
unsigned short fNumberOfEvents
std::vector< long long > fLiveTime
long long fRealTime
unsigned short mod
DGF module being read.
long long fGSLTTime
bool flagbit
additional flag bit from data stream
void SetEventID(unsigned long long int id)
void SetTrace(std::vector< unsigned short > t)
void SetQshort(unsigned short q)
bool pileup
pileup flag from data stream
void SetTime(long long int t)
void SetEnergy(float e)
void SetClipped(bool cl)
void SetBoard(unsigned char b)
unsigned short Qshort
Charge from firmware as 16-bit integer.
unsigned char sfp
SFP ID of the event.
unsigned long long int eventid
void SetSfp(unsigned char s)
void SetChannel(unsigned char c)
long long int time
void SetThreshold(bool t)
unsigned char ch
channel ID of the event
std::vector< unsigned short > trace
void SetFlag(bool f)
bool clipped
clipped pulse flag from data stream
void SetQint(unsigned int q)
void SetPileup(bool p)
unsigned char board
board ID of the event
void ClearData()
bool thres
is the energy over threshold?
unsigned int Qint
Charge from firmware as 32-bit integer.
void SetSfp(unsigned char s)
void SetBoard(unsigned char b)
long long int time
timestamp of info event
void ClearData()
unsigned char code
code here represents which information timestamp we have
void SetTime(long long int t)
void SetCode(unsigned char c)
unsigned char sfp
SFP ID of the event.
void SetEventID(unsigned long long int id)
unsigned char board
std::vector< DgfScalerData > dgfscalers
DGF scaler data.
long long int time
timestamp of info event
unsigned long long int eventid
timestamp of info event
std::vector< ScalerUnitData > scalers
scaler unit data
std::vector< PatternUnitData > patterns
pattern unit data
unsigned char GetSfp() const
unsigned char GetBoard() const
std::vector< InfoData > info_packets
void SetData(std::shared_ptr< MiniballDataPackets > in)
unsigned long long int GetEventID() const
std::vector< FebexData > febex_packets
std::shared_ptr< InfoData > GetInfoData() const
unsigned char GetChannel() const
bool IsInfo() const
std::vector< DgfData > dgf_packets
std::vector< AdcData > adc_packets
std::shared_ptr< FebexData > GetFebexData() const
bool IsFebex() const
UInt_t GetTimeLSB() const
std::shared_ptr< DgfData > GetDgfData() const
UInt_t GetTimeMSB() const
std::shared_ptr< AdcData > GetAdcData() const
long long int GetTime() const
unsigned char GetModule() const
unsigned int val
value of the pattern