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 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 (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 |
TChannel * | fChannel |
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 TGRSIOptions * | fOptions = nullptr |
Private Member Functions | |
uint16_t | ByteSwap (const uint16_t &val) |
int | EagleEventToFragment (uint32_t size, uint16_t *data) |
Private Attributes | |
EDataParserState | fState |
#include <THILDataParser.h>
|
strong |
Enumerator | |
---|---|
kWFDN | |
kGRF1 | |
kGRF2 | |
kGRF3 | |
kGRF4 | |
kFME0 | |
kFME1 | |
kFME2 | |
kFME3 |
Definition at line 49 of file THILDataParser.h.
|
strong |
Definition at line 60 of file THILDataParser.h.
|
strong |
Enumerator | |
---|---|
kV1751 | |
kV1724 | |
kV1730_PSD | |
kV1730_PHA | |
kV1725_PHA | |
kV1725_PSD |
Definition at line 51 of file THILDataParser.h.
THILDataParser::THILDataParser | ( | ) |
Definition at line 19 of file THILDataParser.cxx.
THILDataParser::~THILDataParser | ( | ) |
Definition at line 25 of file THILDataParser.cxx.
|
inlinevirtualinherited |
Definition at line 53 of file TDataParser.h.
References TDataParser::fGoodOutputQueues.
Referenced by TUnpackingLoop::AddGoodOutputQueue().
|
inlinevirtualinherited |
Definition at line 61 of file TDataParser.h.
References TDataParser::fBadOutputQueue.
Referenced by TUnpackingLoop::BadOutputQueue().
|
inlineprivate |
Definition at line 86 of file THILDataParser.h.
Referenced by EagleEventToFragment().
|
virtualinherited |
Definition at line 34 of file TDataParser.cxx.
References TDataParser::fBadOutputQueue, TDataParser::fGoodOutputQueues, and TDataParser::fScalerOutputQueue.
Referenced by TUnpackingLoop::ClearQueue().
|
private |
Definition at line 59 of file THILDataParser.cxx.
References ByteSwap(), TDataParser::fBadOutputQueue, TDataParser::fGoodOutputQueues, TDataParser::fRecordDiag, TSingleton< TParsingDiagnostics >::Get(), TParsingDiagnostics::GoodFragment(), kOddEventLength, kOddUsedLength, kWrongBufferType, kWrongEventId, kWrongEventLength, kWrongGeEnPattern, kWrongGeHPPattern, kWrongGeTimePattern, kWrongSi1EnPattern, kWrongSi1HPPattern, kWrongSi2EnPattern, kWrongSi2HPPattern, kWrongSi3EnPattern, kWrongUsPattern, kZeroEventLength, and TDataParser::Push().
Referenced by Process().
|
inlinevirtualinherited |
Definition at line 76 of file TDataParser.h.
References TDataParser::fGoodOutputQueues.
Referenced by TUnpackingLoop::GetItemsPushed().
|
virtualinherited |
Definition at line 80 of file TDataParser.cxx.
References TDataParser::fGoodOutputQueues.
Referenced by TUnpackingLoop::EndStatus().
|
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 EagleEventToFragment(), TDataParser::fInputSize, TDataParser::fItemsPopped, TGRSIOptions::Get(), TRlmdEvent::GetDataSize(), THILDataParserException::GetFailedWord(), and THILDataParserException::what().
|
inherited |
Definition at line 72 of file TDataParser.cxx.
References TDataParser::fFragmentIdMap.
Referenced by TGRSIDataParser::CaenPhaToFragment(), TGRSIDataParser::CaenPsdToFragment(), EagleEventToFragment(), TGRSIDataParser::EmmaMadcDataToFragment(), TGRSIDataParser::EmmaTdcDataToFragment(), TGRSIDataParser::GriffinDataToFragment(), TGRSIDataParser::RFScalerToFragment(), TTdrDataParser::TdrToFragment(), TGRSIDataParser::TigressDataToFragment(), TILLDataParser::V1SingleFippsEventToFragment(), and TILLDataParser::V2SingleFippsEventToFragment().
|
inherited |
Definition at line 61 of file TDataParser.cxx.
References TDataParser::fFragmentIdMap.
|
inlinevirtualinherited |
Definition at line 63 of file TDataParser.h.
References TDataParser::fScalerOutputQueue.
Referenced by TUnpackingLoop::ScalerOutputQueue().
|
virtualinherited |
Definition at line 52 of file TDataParser.cxx.
References TDataParser::fBadOutputQueue, TDataParser::fGoodOutputQueues, and TDataParser::fScalerOutputQueue.
Referenced by TUnpackingLoop::Iteration().
|
inlinevirtualinherited |
Definition at line 46 of file TDataParser.h.
References TDataParser::fNoWaveforms.
Referenced by TUnpackingLoop::SetNoWaveForms().
|
inlinevirtualinherited |
Definition at line 47 of file TDataParser.h.
References TDataParser::fRecordDiag.
Referenced by TUnpackingLoop::SetRecordDiag().
|
inlinevirtualinherited |
Definition at line 65 of file TDataParser.h.
References TDataParser::fInputSize, and TDataParser::fItemsPopped.
Referenced by TUnpackingLoop::Iteration().
|
protectedinherited |
Definition at line 89 of file TDataParser.h.
Referenced by TDataParser::BadOutputQueue(), TDataParser::ClearQueue(), EagleEventToFragment(), TGRSIDataParser::EmmaTdcDataToFragment(), TGRSIDataParser::GriffinDataToFragment(), TGRSIDataParser::RFScalerToFragment(), TDataParser::SetFinished(), TTdrDataParser::TdrToFragment(), TILLDataParser::V1SingleFippsEventToFragment(), and TILLDataParser::V2SingleFippsEventToFragment().
|
protectedinherited |
Definition at line 95 of file TDataParser.h.
Referenced by TGRSIDataParser::EmmaMadcDataToFragment(), TGRSIDataParser::SetTIGCharge(), TDataParser::TDataParser(), and TDataParser::~TDataParser().
|
protectedinherited |
Definition at line 103 of file TDataParser.h.
Referenced by TGRSIDataParser::GriffinDataToFragment(), and TGRSIDataParser::SetGRIFPrimaryFilterPattern().
|
protectedinherited |
Definition at line 102 of file TDataParser.h.
Referenced by TDataParser::Push().
|
protectedinherited |
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().
|
protectedinherited |
Definition at line 88 of file TDataParser.h.
Referenced by TDataParser::AddGoodOutputQueue(), TGRSIDataParser::CaenPhaToFragment(), TGRSIDataParser::CaenPsdToFragment(), TDataParser::ClearQueue(), EagleEventToFragment(), TGRSIDataParser::EmmaMadcDataToFragment(), TGRSIDataParser::EmmaTdcDataToFragment(), TGRSIDataParser::GriffinDataToFragment(), TDataParser::ItemsPushed(), TDataParser::OutputQueueStatus(), TGRSIDataParser::RFScalerToFragment(), TDataParser::SetFinished(), TTdrDataParser::TdrToFragment(), TGRSIDataParser::TigressDataToFragment(), TILLDataParser::V1SingleFippsEventToFragment(), and TILLDataParser::V2SingleFippsEventToFragment().
|
protectedinherited |
Definition at line 113 of file TDataParser.h.
Referenced by Process(), TILLDataParser::Process(), TDataParser::SetStatusVariables(), and TTdrDataParser::TdrToFragment().
|
protectedinherited |
Definition at line 112 of file TDataParser.h.
Referenced by Process(), TILLDataParser::Process(), TDataParser::SetStatusVariables(), and TTdrDataParser::TdrToFragment().
|
protectedinherited |
The last daq ID in the raw file.
Definition at line 98 of file TDataParser.h.
|
protectedinherited |
The last network packet recieved.
Definition at line 100 of file TDataParser.h.
|
protectedinherited |
Definition at line 107 of file TDataParser.h.
Referenced by TGRSIDataParser::GriffinDataToFragment().
|
protectedinherited |
The last Trigged ID in the raw File.
Definition at line 99 of file TDataParser.h.
Referenced by TGRSIDataParser::SetTIGTriggerID().
|
protectedinherited |
The last trigger ID Called.
Definition at line 97 of file TDataParser.h.
Referenced by TGRSIDataParser::SetTIGTriggerID().
|
protectedinherited |
The flag to turn wave_forms on or off.
Definition at line 93 of file TDataParser.h.
Referenced by TGRSIDataParser::GriffinDataToFragment(), TDataParser::SetNoWaveForms(), and TGRSIDataParser::TigressDataToFragment().
|
staticprotectedinherited |
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().
|
protectedinherited |
The flag to turn on diagnostics recording.
Definition at line 94 of file TDataParser.h.
Referenced by EagleEventToFragment(), TGRSIDataParser::GriffinDataToFragment(), TDataParser::SetRecordDiag(), TTdrDataParser::TdrToFragment(), TILLDataParser::V1SingleFippsEventToFragment(), and TILLDataParser::V2SingleFippsEventToFragment().
|
protectedinherited |
Definition at line 90 of file TDataParser.h.
Referenced by TDataParser::ClearQueue(), TGRSIDataParser::EPIXToScalar(), TDataParser::ScalerOutputQueue(), and TDataParser::SetFinished().
|
private |
Definition at line 92 of file THILDataParser.h.
Referenced by THILDataParser().