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

Detailed Description

The THILDataParser is the DAQ dependent part of GRSISort. It takes a "DAQ-dependent"-flavoured LMD file 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 43 of file THILDataParser.h.

Public Types

enum class  EBank {
  kWFDN = 0 , kGRF1 = 1 , kGRF2 = 2 , kGRF3 = 3 ,
  kGRF4 = 4 , kFME0 = 5 , kFME1 = 6 , kFME2 = 7 ,
  kFME3 = 8
}
 
enum class  EDataParserState {
  kGood , kOddUsedLength , kWrongBufferType , kZeroEventLength ,
  kOddEventLength , kWrongEventLength , kWrongUsPattern , kWrongGeHPPattern ,
  kWrongGeEnPattern , kWrongGeTimePattern , kWrongSi1HPPattern , kWrongSi1EnPattern ,
  kWrongSi2HPPattern , kWrongSi2EnPattern , kWrongSi3HPPattern , kWrongSi3EnPattern ,
  kWrongEventId , kUndefined
}
 
enum class  EDigitizer {
  kV1751 = 1 , kV1724 = 2 , kV1730_PSD = 3 , kV1730_PHA = 4 ,
  kV1725_PHA = 7 , kV1725_PSD = 8
}
 

Public Member Functions

 THILDataParser ()
 
 ~THILDataParser ()
 
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 ()
 
int Process (std::shared_ptr< TRawEvent >) override
 
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
 
void DecrementInputSize ()
 
void DecrementItemsPopped ()
 
bool FragmentHasWaveform () const
 
void FragmentHasWaveform (const bool &val)
 
TFragmentMap FragmentMap () const
 
std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > & GoodOutputQueues ()
 
void IncrementInputSize ()
 
void IncrementInputSize (long val)
 
void IncrementItemsPopped ()
 
void IncrementItemsPopped (size_t val)
 
void InputSize (long inputSize)
 
void ItemsPopped (size_t itemsPopped)
 
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 Member Functions

uint16_t ByteSwap (const uint16_t &val)
 
int EagleEventToFragment (uint32_t size, uint16_t *data)
 

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
 
EDataParserState fState
 

Static Private Attributes

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

Member Enumeration Documentation

◆ EBank

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

Definition at line 49 of file THILDataParser.h.

◆ EDataParserState

Enumerator
kGood 
kOddUsedLength 
kWrongBufferType 
kZeroEventLength 
kOddEventLength 
kWrongEventLength 
kWrongUsPattern 
kWrongGeHPPattern 
kWrongGeEnPattern 
kWrongGeTimePattern 
kWrongSi1HPPattern 
kWrongSi1EnPattern 
kWrongSi2HPPattern 
kWrongSi2EnPattern 
kWrongSi3HPPattern 
kWrongSi3EnPattern 
kWrongEventId 
kUndefined 

Definition at line 68 of file THILDataParser.h.

◆ EDigitizer

enum class THILDataParser::EDigitizer
strong
Enumerator
kV1751 
kV1724 
kV1730_PSD 
kV1730_PHA 
kV1725_PHA 
kV1725_PSD 

Definition at line 59 of file THILDataParser.h.

Constructor & Destructor Documentation

◆ THILDataParser()

THILDataParser::THILDataParser ( )

Definition at line 19 of file THILDataParser.cxx.

References fState, and kGood.

◆ ~THILDataParser()

THILDataParser::~THILDataParser ( )

Definition at line 25 of file THILDataParser.cxx.

Member Function Documentation

◆ AddGoodOutputQueue()

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

Definition at line 65 of file TDataParser.h.

References TDataParser::fGoodOutputQueues.

Referenced by TUnpackingLoop::AddGoodOutputQueue().

◆ BadOutputQueue()

◆ ByteSwap()

uint16_t THILDataParser::ByteSwap ( const uint16_t & val)
inlineprivate

Definition at line 94 of file THILDataParser.h.

Referenced by EagleEventToFragment().

◆ Channel()

TChannel * TDataParser::Channel ( ) const
inlineprotectedinherited

◆ ClearQueue()

void TDataParser::ClearQueue ( )
virtualinherited

◆ DecrementInputSize()

void TDataParser::DecrementInputSize ( )
inlineprotectedinherited

◆ DecrementItemsPopped()

void TDataParser::DecrementItemsPopped ( )
inlineprotectedinherited

Definition at line 153 of file TDataParser.h.

References TDataParser::fItemsPopped.

◆ EagleEventToFragment()

◆ FragmentHasWaveform() [1/2]

bool TDataParser::FragmentHasWaveform ( ) const
inlineprotectedinherited

◆ FragmentHasWaveform() [2/2]

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

Definition at line 122 of file TDataParser.h.

References TDataParser::fFragmentHasWaveform.

◆ FragmentMap()

TFragmentMap TDataParser::FragmentMap ( ) const
inlineprotectedinherited

Definition at line 114 of file TDataParser.h.

References TDataParser::fFragmentMap.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ GoodOutputQueues()

◆ IncrementInputSize() [1/2]

void TDataParser::IncrementInputSize ( )
inlineprotectedinherited

Definition at line 139 of file TDataParser.h.

References TDataParser::fInputSize.

Referenced by TILLDataParser::Process(), and TTdrDataParser::TdrToFragment().

◆ IncrementInputSize() [2/2]

void TDataParser::IncrementInputSize ( long val)
inlineprotectedinherited

Definition at line 148 of file TDataParser.h.

References TDataParser::fInputSize.

◆ IncrementItemsPopped() [1/2]

void TDataParser::IncrementItemsPopped ( )
inlineprotectedinherited

◆ IncrementItemsPopped() [2/2]

void TDataParser::IncrementItemsPopped ( size_t val)
inlineprotectedinherited

Definition at line 144 of file TDataParser.h.

References TDataParser::fItemsPopped.

◆ InputSize()

void TDataParser::InputSize ( long inputSize)
inlineprotectedinherited

Definition at line 130 of file TDataParser.h.

References TDataParser::fInputSize.

◆ ItemsPopped()

void TDataParser::ItemsPopped ( size_t itemsPopped)
inlineprotectedinherited

Definition at line 126 of file TDataParser.h.

References TDataParser::fItemsPopped.

◆ ItemsPushed()

virtual size_t TDataParser::ItemsPushed ( )
inlinevirtualinherited

Definition at line 88 of file TDataParser.h.

References TDataParser::fGoodOutputQueues.

Referenced by TUnpackingLoop::GetItemsPushed().

◆ LastDaqId()

uint64_t TDataParser::LastDaqId ( ) const
inlineprotectedinherited

Definition at line 108 of file TDataParser.h.

References TDataParser::fLastDaqId.

◆ LastNetworkPacket()

uint64_t TDataParser::LastNetworkPacket ( ) const
inlineprotectedinherited

Definition at line 110 of file TDataParser.h.

References TDataParser::fLastNetworkPacket.

◆ LastTimeStampMap()

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

Definition at line 115 of file TDataParser.h.

References TDataParser::fLastTimeStampMap.

Referenced by TGRSIDataParser::GriffinDataToFragment().

◆ LastTriggerId() [1/2]

uint64_t TDataParser::LastTriggerId ( ) const
inlineprotectedinherited

Definition at line 109 of file TDataParser.h.

References TDataParser::fLastTriggerId.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ LastTriggerId() [2/2]

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

Definition at line 120 of file TDataParser.h.

References TDataParser::fLastTriggerId.

◆ MaxTriggerId()

uint64_t TDataParser::MaxTriggerId ( ) const
inlineprotectedinherited

Definition at line 107 of file TDataParser.h.

References TDataParser::fMaxTriggerId.

Referenced by TGRSIDataParser::SetTIGTriggerID().

◆ NoWaveforms()

bool TDataParser::NoWaveforms ( ) const
inlineprotectedinherited

◆ Options() [1/2]

static TGRSIOptions * TDataParser::Options ( )
inlinestaticprotectedinherited

◆ Options() [2/2]

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

Definition at line 124 of file TDataParser.h.

References TDataParser::fOptions.

◆ OutputQueueStatus()

std::string TDataParser::OutputQueueStatus ( )
virtualinherited

Definition at line 78 of file TDataParser.cxx.

References TDataParser::fGoodOutputQueues.

Referenced by TUnpackingLoop::EndStatus().

◆ Process()

int THILDataParser::Process ( std::shared_ptr< TRawEvent > rawEvent)
overridevirtual

Process this TRlmdEvent using the provided data parser. Returns the total number of fragments read (good and bad).

Implements TDataParser.

Definition at line 29 of file THILDataParser.cxx.

References TDataParser::DecrementInputSize(), EagleEventToFragment(), TGRSIOptions::Get(), THILDataParserException::GetFailedWord(), TDataParser::IncrementItemsPopped(), and THILDataParserException::what().

◆ Push() [1/2]

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

Definition at line 59 of file TDataParser.cxx.

References TDataParser::fFragmentIdMap.

◆ Push() [2/2]

◆ RecordDiag()

◆ ScalerOutputQueue()

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

◆ SetFinished()

void TDataParser::SetFinished ( )
virtualinherited

◆ SetNoWaveForms()

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

Definition at line 50 of file TDataParser.h.

References TDataParser::fNoWaveforms.

Referenced by TUnpackingLoop::SetNoWaveForms().

◆ SetRecordDiag()

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

Definition at line 51 of file TDataParser.h.

References TDataParser::fRecordDiag.

Referenced by TUnpackingLoop::SetRecordDiag().

◆ SetStatusVariables()

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

Definition at line 77 of file TDataParser.h.

References TDataParser::fInputSize, and TDataParser::fItemsPopped.

Referenced by TUnpackingLoop::Iteration().

Member Data Documentation

◆ fBadOutputQueue

std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TBadFragment> > > TDataParser::fBadOutputQueue
privateinherited

◆ fChannel

TChannel* TDataParser::fChannel
privateinherited

Definition at line 171 of file TDataParser.h.

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

◆ fFragmentHasWaveform

bool TDataParser::fFragmentHasWaveform
privateinherited

◆ fFragmentIdMap

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

Definition at line 178 of file TDataParser.h.

Referenced by TDataParser::Push(), and TDataParser::Push().

◆ fFragmentMap

TFragmentMap TDataParser::fFragmentMap
privateinherited

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

Definition at line 181 of file TDataParser.h.

Referenced by TDataParser::FragmentMap().

◆ fGoodOutputQueues

std::vector<std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TFragment> > > > TDataParser::fGoodOutputQueues
privateinherited

◆ fInputSize

std::atomic_long* TDataParser::fInputSize
privateinherited

◆ fItemsPopped

std::atomic_size_t* TDataParser::fItemsPopped
privateinherited

◆ fLastDaqId

uint64_t TDataParser::fLastDaqId
privateinherited

The last daq ID in the raw file.

Definition at line 174 of file TDataParser.h.

Referenced by TDataParser::LastDaqId().

◆ fLastNetworkPacket

uint64_t TDataParser::fLastNetworkPacket
privateinherited

The last network packet recieved.

Definition at line 176 of file TDataParser.h.

Referenced by TDataParser::LastNetworkPacket().

◆ fLastTimeStampMap

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

Definition at line 183 of file TDataParser.h.

Referenced by TDataParser::LastTimeStampMap().

◆ fLastTriggerId

uint64_t TDataParser::fLastTriggerId
privateinherited

The last Trigged ID in the raw File.

Definition at line 175 of file TDataParser.h.

Referenced by TDataParser::LastTriggerId(), and TDataParser::LastTriggerId().

◆ fMaxTriggerId

const uint64_t TDataParser::fMaxTriggerId
privateinherited

The last trigger ID Called.

Definition at line 173 of file TDataParser.h.

Referenced by TDataParser::MaxTriggerId().

◆ fNoWaveforms

bool TDataParser::fNoWaveforms
privateinherited

The flag to turn wave_forms on or off.

Definition at line 169 of file TDataParser.h.

Referenced by TDataParser::NoWaveforms(), and TDataParser::SetNoWaveForms().

◆ fOptions

TGRSIOptions * TDataParser::fOptions = nullptr
staticprivateinherited

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

Definition at line 185 of file TDataParser.h.

Referenced by TDataParser::Options(), and TDataParser::Options().

◆ fRecordDiag

bool TDataParser::fRecordDiag
privateinherited

The flag to turn on diagnostics recording.

Definition at line 170 of file TDataParser.h.

Referenced by TDataParser::RecordDiag(), and TDataParser::SetRecordDiag().

◆ fScalerOutputQueue

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

◆ fState

EDataParserState THILDataParser::fState
private

Definition at line 101 of file THILDataParser.h.

Referenced by THILDataParser().