GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TDataParser Class Referenceabstract

Detailed Description

The TDataParser is the DAQ dependent part of GRSISort. It takes raw data and converts it into a generic TFragment that the rest of GRSISort can deal with. This is where event word masks are applied, and any changes to the event format must be implemented.

Definition at line 42 of file TDataParser.h.

Public Types

enum class  EBank {
  kWFDN , kGRF1 , kGRF2 , kGRF3 ,
  kGRF4 , kFME0 , kFME1 , kFME2 ,
  kFME3
}
 

Public Member Functions

 TDataParser ()
 
 TDataParser (const TDataParser &)=default
 
 TDataParser (TDataParser &&) noexcept=default
 
virtual ~TDataParser ()
 
virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & AddGoodOutputQueue (size_t maxSize=50000)
 
virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & BadOutputQueue ()
 
virtual void ClearQueue ()
 
virtual size_t ItemsPushed ()
 
TDataParseroperator= (const TDataParser &)=delete
 
TDataParseroperator= (TDataParser &&) noexcept=delete
 
virtual std::string OutputQueueStatus ()
 
virtual int Process (std::shared_ptr< TRawEvent >)=0
 
void Push (std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > &queues, const std::shared_ptr< TFragment > &frag)
 
void Push (ThreadsafeQueue< std::shared_ptr< const TBadFragment > > &queue, const std::shared_ptr< TBadFragment > &frag)
 
virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > & ScalerOutputQueue ()
 
virtual void SetFinished ()
 
virtual void SetNoWaveForms (bool temp=true)
 
virtual void SetRecordDiag (bool temp=true)
 
virtual void SetStatusVariables (std::atomic_size_t *itemsPopped, std::atomic_long *inputSize)
 

Protected Member Functions

TChannelChannel () const
 
bool FragmentHasWaveform () const
 
void FragmentHasWaveform (const bool &val)
 
TFragmentMap FragmentMap () const
 
std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > & GoodOutputQueues ()
 
uint64_t LastDaqId () const
 
uint64_t LastNetworkPacket () const
 
std::map< UInt_t, Long64_t > LastTimeStampMap () const
 
uint64_t LastTriggerId () const
 
void LastTriggerId (const uint64_t &val)
 
uint64_t MaxTriggerId () const
 
bool NoWaveforms () const
 
bool RecordDiag () const
 

Static Protected Member Functions

static TGRSIOptionsOptions ()
 
static void Options (TGRSIOptions *val)
 

Private Attributes

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > fBadOutputQueue
 
TChannelfChannel
 
bool fFragmentHasWaveform
 
std::map< Long_t, int > fFragmentIdMap
 
TFragmentMap fFragmentMap
 
std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > fGoodOutputQueues
 
std::atomic_long * fInputSize
 
std::atomic_size_t * fItemsPopped
 
uint64_t fLastDaqId
 
uint64_t fLastNetworkPacket
 
std::map< UInt_t, Long64_t > fLastTimeStampMap
 
uint64_t fLastTriggerId
 
const uint64_t fMaxTriggerId
 
bool fNoWaveforms
 
bool fRecordDiag
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > fScalerOutputQueue
 

Static Private Attributes

static TGRSIOptionsfOptions = nullptr
 
+ Inheritance diagram for TDataParser:
+ Collaboration diagram for TDataParser:

Member Enumeration Documentation

◆ EBank

enum class TDataParser::EBank
strong
Enumerator
kWFDN 
kGRF1 
kGRF2 
kGRF3 
kGRF4 
kFME0 
kFME1 
kFME2 
kFME3 

Definition at line 54 of file TDataParser.h.

Constructor & Destructor Documentation

◆ TDataParser() [1/3]

TDataParser::TDataParser ( )

Definition at line 18 of file TDataParser.cxx.

◆ TDataParser() [2/3]

TDataParser::TDataParser ( const TDataParser & )
default

◆ TDataParser() [3/3]

TDataParser::TDataParser ( TDataParser && )
defaultnoexcept

◆ ~TDataParser()

TDataParser::~TDataParser ( )
virtual

Definition at line 27 of file TDataParser.cxx.

References fChannel.

Member Function Documentation

◆ AddGoodOutputQueue()

virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & TDataParser::AddGoodOutputQueue ( size_t maxSize = 50000)
inlinevirtual

Definition at line 65 of file TDataParser.h.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::AddGoodOutputQueue().

◆ BadOutputQueue()

virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & TDataParser::BadOutputQueue ( )
inlinevirtual

◆ Channel()

TChannel * TDataParser::Channel ( ) const
inlineprotected

Definition at line 105 of file TDataParser.h.

References fChannel.

Referenced by TGRSIDataParser::EmmaMadcDataToFragment(), and TGRSIDataParser::SetTIGCharge().

◆ ClearQueue()

void TDataParser::ClearQueue ( )
virtual

Definition at line 32 of file TDataParser.cxx.

References fBadOutputQueue, fGoodOutputQueues, and fScalerOutputQueue.

Referenced by TUnpackingLoop::ClearQueue().

◆ FragmentHasWaveform() [1/2]

bool TDataParser::FragmentHasWaveform ( ) const
inlineprotected

◆ FragmentHasWaveform() [2/2]

void TDataParser::FragmentHasWaveform ( const bool & val)
inlineprotected

Definition at line 122 of file TDataParser.h.

References fFragmentHasWaveform.

◆ FragmentMap()

TFragmentMap TDataParser::FragmentMap ( ) const
inlineprotected

Definition at line 114 of file TDataParser.h.

References fFragmentMap.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ GoodOutputQueues()

◆ ItemsPushed()

virtual size_t TDataParser::ItemsPushed ( )
inlinevirtual

Definition at line 88 of file TDataParser.h.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::GetItemsPushed().

◆ LastDaqId()

uint64_t TDataParser::LastDaqId ( ) const
inlineprotected

Definition at line 108 of file TDataParser.h.

References fLastDaqId.

◆ LastNetworkPacket()

uint64_t TDataParser::LastNetworkPacket ( ) const
inlineprotected

Definition at line 110 of file TDataParser.h.

References fLastNetworkPacket.

◆ LastTimeStampMap()

std::map< UInt_t, Long64_t > TDataParser::LastTimeStampMap ( ) const
inlineprotected

Definition at line 115 of file TDataParser.h.

References fLastTimeStampMap.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ LastTriggerId() [1/2]

uint64_t TDataParser::LastTriggerId ( ) const
inlineprotected

Definition at line 109 of file TDataParser.h.

References fLastTriggerId.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ LastTriggerId() [2/2]

void TDataParser::LastTriggerId ( const uint64_t & val)
inlineprotected

Definition at line 120 of file TDataParser.h.

References fLastTriggerId.

◆ MaxTriggerId()

uint64_t TDataParser::MaxTriggerId ( ) const
inlineprotected

Definition at line 107 of file TDataParser.h.

References fMaxTriggerId.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ NoWaveforms()

bool TDataParser::NoWaveforms ( ) const
inlineprotected

◆ operator=() [1/2]

TDataParser & TDataParser::operator= ( const TDataParser & )
delete

◆ operator=() [2/2]

TDataParser & TDataParser::operator= ( TDataParser && )
deletenoexcept

◆ Options() [1/2]

static TGRSIOptions * TDataParser::Options ( )
inlinestaticprotected

◆ Options() [2/2]

static void TDataParser::Options ( TGRSIOptions * val)
inlinestaticprotected

Definition at line 124 of file TDataParser.h.

References fOptions.

◆ OutputQueueStatus()

std::string TDataParser::OutputQueueStatus ( )
virtual

Definition at line 78 of file TDataParser.cxx.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::EndStatus().

◆ Process()

virtual int TDataParser::Process ( std::shared_ptr< TRawEvent > )
pure virtual

◆ Push() [1/2]

void TDataParser::Push ( std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > & queues,
const std::shared_ptr< TFragment > & frag )

Definition at line 59 of file TDataParser.cxx.

References fFragmentIdMap.

◆ Push() [2/2]

◆ RecordDiag()

bool TDataParser::RecordDiag ( ) const
inlineprotected

Definition at line 104 of file TDataParser.h.

References fRecordDiag.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ ScalerOutputQueue()

virtual std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > & TDataParser::ScalerOutputQueue ( )
inlinevirtual

Definition at line 75 of file TDataParser.h.

References fScalerOutputQueue.

Referenced by TGRSIDataParser::EPIXToScalar(), and TUnpackingLoop::ScalerOutputQueue().

◆ SetFinished()

void TDataParser::SetFinished ( )
virtual

Definition at line 50 of file TDataParser.cxx.

References fBadOutputQueue, fGoodOutputQueues, and fScalerOutputQueue.

Referenced by TUnpackingLoop::Iteration().

◆ SetNoWaveForms()

virtual void TDataParser::SetNoWaveForms ( bool temp = true)
inlinevirtual

Definition at line 50 of file TDataParser.h.

References fNoWaveforms.

Referenced by TUnpackingLoop::SetNoWaveForms().

◆ SetRecordDiag()

virtual void TDataParser::SetRecordDiag ( bool temp = true)
inlinevirtual

Definition at line 51 of file TDataParser.h.

References fRecordDiag.

Referenced by TUnpackingLoop::SetRecordDiag().

◆ SetStatusVariables()

virtual void TDataParser::SetStatusVariables ( std::atomic_size_t * itemsPopped,
std::atomic_long * inputSize )
inlinevirtual

Definition at line 77 of file TDataParser.h.

References fInputSize, and fItemsPopped.

Referenced by TUnpackingLoop::Iteration().

Member Data Documentation

◆ fBadOutputQueue

◆ fChannel

TChannel* TDataParser::fChannel
private

Definition at line 136 of file TDataParser.h.

Referenced by ~TDataParser(), and Channel().

◆ fFragmentHasWaveform

bool TDataParser::fFragmentHasWaveform
private

Definition at line 144 of file TDataParser.h.

Referenced by FragmentHasWaveform(), and FragmentHasWaveform().

◆ fFragmentIdMap

std::map<Long_t, int> TDataParser::fFragmentIdMap
private

Definition at line 143 of file TDataParser.h.

Referenced by Push(), and Push().

◆ fFragmentMap

TFragmentMap TDataParser::fFragmentMap
private

Class that holds a map of fragments per address, takes care of calculating charges for GRF4 banks.

Definition at line 146 of file TDataParser.h.

Referenced by FragmentMap().

◆ fGoodOutputQueues

◆ fInputSize

std::atomic_long* TDataParser::fInputSize
private

◆ fItemsPopped

std::atomic_size_t* TDataParser::fItemsPopped
private

◆ fLastDaqId

uint64_t TDataParser::fLastDaqId
private

The last daq ID in the raw file.

Definition at line 139 of file TDataParser.h.

Referenced by LastDaqId().

◆ fLastNetworkPacket

uint64_t TDataParser::fLastNetworkPacket
private

The last network packet recieved.

Definition at line 141 of file TDataParser.h.

Referenced by LastNetworkPacket().

◆ fLastTimeStampMap

std::map<UInt_t, Long64_t> TDataParser::fLastTimeStampMap
private

Definition at line 148 of file TDataParser.h.

Referenced by LastTimeStampMap().

◆ fLastTriggerId

uint64_t TDataParser::fLastTriggerId
private

The last Trigged ID in the raw File.

Definition at line 140 of file TDataParser.h.

Referenced by LastTriggerId(), and LastTriggerId().

◆ fMaxTriggerId

const uint64_t TDataParser::fMaxTriggerId
private

The last trigger ID Called.

Definition at line 138 of file TDataParser.h.

Referenced by MaxTriggerId().

◆ fNoWaveforms

bool TDataParser::fNoWaveforms
private

The flag to turn wave_forms on or off.

Definition at line 134 of file TDataParser.h.

Referenced by NoWaveforms(), and SetNoWaveForms().

◆ fOptions

TGRSIOptions * TDataParser::fOptions = nullptr
staticprivate

Static pointer to TGRSIOptions, gets set on the first call of GriffinDataToFragment.

Definition at line 150 of file TDataParser.h.

Referenced by Options(), and Options().

◆ fRecordDiag

bool TDataParser::fRecordDiag
private

◆ fScalerOutputQueue

std::shared_ptr<ThreadsafeQueue<std::shared_ptr<TEpicsFrag> > > TDataParser::fScalerOutputQueue
private

Definition at line 131 of file TDataParser.h.

Referenced by ClearQueue(), ScalerOutputQueue(), and SetFinished().