1#ifndef __DATAPACKETS_HH
2#define __DATAPACKETS_HH
29 inline void SetPattern(
unsigned char _mod,
unsigned char _id,
unsigned int _val ){
37 inline unsigned char GetID(){
return id; };
67 inline void SetScaler(
unsigned char _id,
unsigned int _val ){
73 inline unsigned char GetID(){
return id; };
233 std::vector<int> x, y;
234 std::string title =
"Trace for DGF Mod " + std::to_string(
GetModule() );
235 title +=
", Channel " + std::to_string(
GetChannel() );
236 title +=
";time [ns];signal";
238 x.push_back( i * 10 );
241 std::unique_ptr<TGraph> g = std::make_unique<TGraph>(
243 g.get()->SetTitle( title.data() );
244 return (TGraph*)g.get()->Clone();
247 if( i >=
trace.size() )
return 0;
290 unsigned int qi,
unsigned short qs,
291 std::vector<unsigned short> tr,
292 unsigned char s,
unsigned char b,
unsigned char c,
293 bool th,
bool p,
bool cl,
bool f );
311 std::vector<int> x, y;
312 std::string title =
"Trace for SFP " + std::to_string(
GetSfp() );
313 title +=
", Board " + std::to_string(
GetBoard() ) +
", Channel ";
314 title += std::to_string(
GetChannel() ) +
";time [ns];signal";
316 x.push_back( i * 10 );
319 std::unique_ptr<TGraph> g = std::make_unique<TGraph>(
321 g.get()->SetTitle( title.data() );
322 return (TGraph*)g.get()->Clone();
325 if( i >=
trace.size() )
return 0;
379 InfoData(
long long int t,
unsigned long long int id,
unsigned char s,
unsigned char b,
unsigned char m );
430 void SetData( std::shared_ptr<MiniballDataPackets> in ){
431 if( in->IsDgf() )
SetData( in->GetDgfData() );
432 if( in->IsAdc() )
SetData( in->GetAdcData() );
433 if( in->IsFebex() )
SetData( in->GetFebexData() );
434 if( in->IsInfo() )
SetData( in->GetInfoData() );
436 void SetData( std::shared_ptr<DgfData> data );
437 void SetData( std::shared_ptr<AdcData> data );
438 void SetData( std::shared_ptr<FebexData> data );
439 void SetData( std::shared_ptr<InfoData> data );
443 return std::make_shared<DgfData>(
dgf_packets.at(0) );
446 return std::make_shared<AdcData>(
adc_packets.at(0) );
452 return std::make_shared<InfoData>(
info_packets.at(0) );
460 unsigned char GetSfp()
const;
491 std::vector<PatternUnitData>().swap(
patterns);
492 std::vector<ScalerUnitData>().swap(
scalers);
493 std::vector<DgfScalerData>().swap(
dgfscalers);
509 inline void AddPattern(
unsigned char _mod,
unsigned char _id,
unsigned int _val ){
514 unsigned int tmp = 0;
515 for(
unsigned int i = 0; i <
patterns.size(); i++ ){
524 unsigned int tmp = 0;
525 for(
unsigned int i = 0; i <
patterns.size(); i++ ){
535 for(
unsigned int i = 0; i <
patterns.size(); i++ ){
546 inline void AddScaler(
unsigned char _id,
unsigned int _val ){
551 unsigned int tmp = 0;
552 for(
unsigned int i = 0; i <
scalers.size(); i++ ){
553 if(
scalers[i].GetID() ==
id ) {
562 for(
unsigned int i = 0; i <
scalers.size(); i++ ){
563 if(
scalers[i].GetID() ==
id ) {
577 for(
unsigned int i = 0; i <
dgfscalers.size(); i++ ){
bool clipped
is the ADC value over range?
void SetThreshold(bool t)
unsigned char GetChannel()
void SetTime(long long t)
bool thres
is the energy over threshold?
unsigned char mod
module number of ADC
unsigned char GetModule()
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 long long int GetEventID()
unsigned char ch
channel number of ADC
void SetRunTime(unsigned short time)
unsigned short HitPattern
unsigned long long int GetEventID()
void SetTrace(std::vector< unsigned short > t)
void SetEventID(unsigned long long int id)
unsigned short GetTraceLength()
void SetThreshold(bool t)
unsigned short GetHitPattern()
std::vector< unsigned short > UserValues
unsigned short GetRunTime()
long long LongFastTriggerTime
void SetUserValues(std::vector< unsigned short > q)
void SetHitPattern(unsigned short hp)
void SetLongFastTriggerTime(long long time)
unsigned char GetChannel()
bool thres
is the energy over threshold?
long long GetLongFastTriggerTime()
unsigned long long int eventid
std::vector< unsigned short > trace
void SetChannel(unsigned char c)
std::vector< unsigned short > GetTrace()
unsigned char mod
module number of DGF
unsigned char ch
channel number of DGF
unsigned short GetSample(unsigned int i=0)
unsigned short GetFastTriggerTime()
unsigned short FastTriggerTime
void SetFastTriggerTime(unsigned short time)
void AddSample(unsigned short s)
void SetQshort(unsigned short q)
void SetEventTime(long long time)
std::vector< unsigned short > GetUserValues()
unsigned char GetModule()
void SetModule(unsigned char m)
DgfScalerData(unsigned short n)
long long GetLiveTime(unsigned short i)
std::vector< int > fFastPeak
unsigned short clu
cluster ID
unsigned short GetModule()
unsigned short GetNumberOfEvents()
void SetGSLTTime(long long time)
unsigned short fNumberOfEvents
int SetFastPeak(unsigned short i)
void SetModule(unsigned short id)
unsigned short GetCluster()
std::vector< long long > fLiveTime
void SetNumberOfEvents(unsigned short n)
void SetRealTime(long long time)
unsigned short fNumberOfDgfChannels
void SetFastPeak(unsigned short i, unsigned int fp)
void SetClusterID(unsigned short id)
unsigned short mod
DGF module being read.
void SetLiveTime(unsigned short i, long long time)
void SetRunTime(long long time)
bool flagbit
additional flag bit from data stream
void SetEventID(unsigned long long int id)
unsigned short GetTraceLength()
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 SetBoard(unsigned char b)
std::vector< unsigned short > GetTrace()
unsigned short Qshort
Charge from firmware as 16-bit integer.
void AddSample(unsigned short s)
unsigned char sfp
SFP ID of the event.
unsigned long long int eventid
void SetSfp(unsigned char s)
unsigned short GetQshort()
void SetChannel(unsigned char c)
unsigned short GetSample(unsigned int i=0)
void SetThreshold(bool t)
unsigned char ch
channel ID of the event
std::vector< unsigned short > trace
bool clipped
clipped pulse flag from data stream
void SetQint(unsigned int q)
unsigned char board
board ID of the event
unsigned long long int GetEventID()
unsigned char GetChannel()
bool thres
is the energy over threshold?
FebexData(long long int t, unsigned long long int id, unsigned int qi, unsigned short qs, std::vector< unsigned short > tr, unsigned char s, unsigned char b, unsigned char c, bool th, bool p, bool cl, bool f)
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
unsigned char code
code here represents which information timestamp we have
unsigned long long int eventid
timestamp of info event
void SetTime(long long int t)
void SetCode(unsigned char c)
unsigned char sfp
SFP ID of the event.
unsigned long long int GetEventID()
void SetEventID(unsigned long long int id)
unsigned int GetPatternValue(unsigned char mod, unsigned char id)
std::vector< DgfScalerData > dgfscalers
DGF scaler data.
DgfScalerData GetDgfScaler(unsigned char mod)
PatternUnitData GetPattern(unsigned char id)
unsigned int GetPatternValue(unsigned char id)
unsigned int GetScalerValue(unsigned char id)
long long int time
timestamp of info event
void AddDgfScaler(DgfScalerData s)
unsigned long long int eventid
timestamp of info event
void SetEventID(unsigned long long int id)
ScalerUnitData GetScaler(unsigned char id)
std::vector< ScalerUnitData > scalers
scaler unit data
void AddPattern(PatternUnitData p)
void AddScaler(ScalerUnitData s)
void SetTime(long long int t)
unsigned long long int GetEventID()
std::vector< PatternUnitData > patterns
pattern unit data
void AddPattern(unsigned char _mod, unsigned char _id, unsigned int _val)
void AddScaler(unsigned char _id, unsigned int _val)
unsigned char GetSfp() const
unsigned char GetBoard() const
std::vector< InfoData > info_packets
MiniballDataPackets(std::shared_ptr< InfoData > in)
MiniballDataPackets(std::shared_ptr< FebexData > in)
void SetData(std::shared_ptr< MiniballDataPackets > in)
MiniballDataPackets(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
std::vector< DgfData > dgf_packets
std::vector< AdcData > adc_packets
bool operator<(const MiniballDataPackets &rhs) const
std::shared_ptr< FebexData > GetFebexData() const
UInt_t GetTimeLSB() const
std::shared_ptr< DgfData > GetDgfData() const
UInt_t GetTimeMSB() const
MiniballDataPackets(std::shared_ptr< AdcData > in)
MiniballDataPackets(std::shared_ptr< DgfData > in)
std::shared_ptr< AdcData > GetAdcData() const
long long int GetTime() const
unsigned char GetModule() const
PatternUnitData(unsigned char _mod, unsigned char _id, unsigned int _val)
unsigned char GetModule()
unsigned char id
ID of the channel/pattern being read.
unsigned int val
value of the pattern
void SetPattern(unsigned char _mod, unsigned char _id, unsigned int _val)
unsigned char mod
module number of the pattern being read
void SetScaler(unsigned char _id, unsigned int _val)
ScalerUnitData(unsigned char _id, unsigned int _val)
unsigned int val
value of the pattern
unsigned char id
ID of the channel/scaler being read.