GRSISort
Created by P.C. Bender
Developement Team: P.C. Bender, R. Dunlop, V. Bildstein
An extension of the ROOT analysis Framework
TDataParser Class Referenceabstract

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  EBank {
  EBank::kWFDN, EBank::kGRF1, EBank::kGRF2, EBank::kGRF3,
  EBank::kGRF4, EBank::kFME0, EBank::kFME1, EBank::kFME2,
  EBank::kFME3
}
 

Public Member Functions

 TDataParser ()
 
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 ()
 
virtual std::string OutputQueueStatus ()
 
virtual int Process (std::shared_ptr< TRawEvent >)=0
 
void Push (ThreadsafeQueue< std::shared_ptr< const TBadFragment >> &queue, const std::shared_ptr< TBadFragment > &frag)
 
void Push (std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment >>>> &queues, const std::shared_ptr< TFragment > &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 Attributes

std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > fBadOutputQueue
 
TChannelfChannel
 
bool fFragmentHasWaveform
 
std::map< int, 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
 
unsigned long fLastDaqId
 
unsigned long fLastNetworkPacket
 
std::map< UInt_t, Long64_t > fLastTimeStampMap
 
unsigned long fLastTriggerId
 
const unsigned long fMaxTriggerId
 
bool fNoWaveforms
 
bool fRecordDiag
 
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< TEpicsFrag > > > fScalerOutputQueue
 

Static Protected Attributes

static TGRSIOptionsfOptions = nullptr
 

#include <TDataParser.h>

+ Inheritance diagram for TDataParser:
+ Collaboration diagram for TDataParser:

Member Enumeration Documentation

◆ EBank

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

Definition at line 50 of file TDataParser.h.

Constructor & Destructor Documentation

◆ TDataParser()

TDataParser::TDataParser ( )

Definition at line 18 of file TDataParser.cxx.

References fChannel.

◆ ~TDataParser()

TDataParser::~TDataParser ( )
virtual

Definition at line 28 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 53 of file TDataParser.h.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::AddGoodOutputQueue().

◆ BadOutputQueue()

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

Definition at line 61 of file TDataParser.h.

References fBadOutputQueue.

Referenced by TUnpackingLoop::BadOutputQueue().

◆ ClearQueue()

void TDataParser::ClearQueue ( )
virtual

Definition at line 34 of file TDataParser.cxx.

References fBadOutputQueue, fGoodOutputQueues, and fScalerOutputQueue.

Referenced by TUnpackingLoop::ClearQueue().

◆ ItemsPushed()

virtual size_t TDataParser::ItemsPushed ( )
inlinevirtual

Definition at line 76 of file TDataParser.h.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::GetItemsPushed().

◆ OutputQueueStatus()

std::string TDataParser::OutputQueueStatus ( )
virtual

Definition at line 80 of file TDataParser.cxx.

References fGoodOutputQueues.

Referenced by TUnpackingLoop::EndStatus().

◆ Process()

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

◆ Push() [1/2]

◆ Push() [2/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 61 of file TDataParser.cxx.

References fFragmentIdMap.

◆ ScalerOutputQueue()

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

Definition at line 63 of file TDataParser.h.

References fScalerOutputQueue.

Referenced by TUnpackingLoop::ScalerOutputQueue().

◆ SetFinished()

void TDataParser::SetFinished ( )
virtual

Definition at line 52 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 46 of file TDataParser.h.

References fNoWaveforms.

Referenced by TUnpackingLoop::SetNoWaveForms().

◆ SetRecordDiag()

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

Definition at line 47 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 65 of file TDataParser.h.

References fInputSize, and fItemsPopped.

Referenced by TUnpackingLoop::Iteration().

Member Data Documentation

◆ fBadOutputQueue

◆ fChannel

TChannel* TDataParser::fChannel
protected

◆ fFragmentHasWaveform

bool TDataParser::fFragmentHasWaveform
protected

◆ fFragmentIdMap

std::map<int, int> TDataParser::fFragmentIdMap
protected

Definition at line 102 of file TDataParser.h.

Referenced by Push().

◆ fFragmentMap

TFragmentMap TDataParser::fFragmentMap
protected

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

Definition at line 105 of file TDataParser.h.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ fGoodOutputQueues

◆ fInputSize

std::atomic_long* TDataParser::fInputSize
protected

◆ fItemsPopped

std::atomic_size_t* TDataParser::fItemsPopped
protected

◆ fLastDaqId

unsigned long TDataParser::fLastDaqId
protected

The last daq ID in the raw file.

Definition at line 98 of file TDataParser.h.

◆ fLastNetworkPacket

unsigned long TDataParser::fLastNetworkPacket
protected

The last network packet recieved.

Definition at line 100 of file TDataParser.h.

◆ fLastTimeStampMap

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

Definition at line 107 of file TDataParser.h.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ fLastTriggerId

unsigned long TDataParser::fLastTriggerId
protected

The last Trigged ID in the raw File.

Definition at line 99 of file TDataParser.h.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ fMaxTriggerId

const unsigned long TDataParser::fMaxTriggerId
protected

The last trigger ID Called.

Definition at line 97 of file TDataParser.h.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ fNoWaveforms

bool TDataParser::fNoWaveforms
protected

The flag to turn wave_forms on or off.

Definition at line 93 of file TDataParser.h.

Referenced by TGRSIDataParser::GriffinDataToFragment(), SetNoWaveForms(), and TGRSIDataParser::TigressDataToFragment().

◆ fOptions

TGRSIOptions * TDataParser::fOptions = nullptr
staticprotected

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

Definition at line 109 of file TDataParser.h.

Referenced by TGRSIDataParser::CaenPhaToFragment(), TGRSIDataParser::CaenPsdToFragment(), and TGRSIDataParser::GriffinDataToFragment().

◆ fRecordDiag

◆ fScalerOutputQueue

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