CbmRoot
|
#include <CbmMcbm2018UnpackerAlgoTof.h>
Public Member Functions | |
CbmMcbm2018UnpackerAlgoTof () | |
~CbmMcbm2018UnpackerAlgoTof () | |
virtual Bool_t | Init () |
virtual void | Reset () |
virtual void | Finish () |
Bool_t | InitContainers () |
Bool_t | ReInitContainers () |
TList * | GetParList () |
Bool_t | InitParameters () |
Bool_t | ProcessTs (const fles::Timeslice &ts) |
Bool_t | ProcessTs (const fles::Timeslice &ts, size_t) |
Bool_t | ProcessMs (const fles::Timeslice &ts, size_t uMsCompIdx, size_t uMsIdx) |
void | AddMsComponentToList (size_t component, UShort_t usDetectorId) |
Bool_t | CreateHistograms () |
Bool_t | FillHistograms () |
Bool_t | ResetHistograms () |
void | SetMonitorMode (Bool_t bFlagIn=kTRUE) |
void | SetTimeOffsetNs (Double_t dOffsetIn=0.0) |
void | SetDiamondDpbIdx (UInt_t uIdx=2) |
void | SetVectCapInc (Double_t dIncFact) |
void | SetMaxAsicInactive (Int_t ival) |
virtual void | SetParameter (std::string) |
virtual std::string | GetParameter (std::string) |
void | AddHistoToVector (TNamed *pointer, std::string sFolder="") |
For monitor algos. More... | |
std::vector< std::pair< TNamed *, std::string > > | GetHistoVector () |
void | AddCanvasToVector (TCanvas *pointer, std::string sFolder="") |
std::vector< std::pair< TCanvas *, std::string > > | GetCanvasVector () |
void | ClearVector () |
For unpacker algos. More... | |
std::vector< CbmTofDigi > & | GetVector () |
void | ClearErrorVector () |
std::vector< CbmErrorMessage > & | GetErrorVector () |
void | SetIgnoreOverlapMs (Bool_t bFlagIn=kTRUE) |
Control flags. More... | |
Protected Member Functions | |
Bool_t | CheckParameterValidity (std::string, std::string) |
Map of parameter name and type. More... | |
Protected Attributes | |
TList * | fParCList |
Parameter management. More... | |
std::vector< size_t > | fvMsComponentsList |
Parameters related to FLES containers. More... | |
size_t | fuNbCoreMsPerTs |
size_t | fuNbOverMsPerTs |
size_t | fuNbMsLoop |
Bool_t | fbIgnoreOverlapMs |
Double_t | fdMsSizeInNs |
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/ More... | |
Double_t | fdTsCoreSizeInNs |
Size of a single MS, [nanoseconds]. More... | |
Double_t | fdTsFullSizeInNs |
Total size of the core MS in a TS, [nanoseconds]. More... | |
std::vector< std::pair< TNamed *, std::string > > | fvpAllHistoPointers |
Total size of the core MS in a TS, [nanoseconds]. More... | |
std::vector< std::pair< TCanvas *, std::string > > | fvpAllCanvasPointers |
Vector of pointers to histograms + optional folder name. More... | |
std::vector< CbmTofDigi > | fDigiVect |
Vector of pointers to canvases + optional folder name. More... | |
std::vector< CbmErrorMessage > | fErrVect |
std::map< std::string, std::string > | fParameterMap |
For any algo. More... | |
Private Member Functions | |
void | ProcessEpochCycle (const uint64_t &ulCycleData) |
void | ProcessEpoch (const gdpbv100::Message &mess, uint32_t uMesgIdx) |
void | ProcessEndOfMsEpoch () |
void | ProcessStarTrigger (const gdpbv100::Message &mess) |
void | ProcessEpSupprBuffer () |
void | ProcessHit (const gdpbv100::FullMessage &mess) |
void | ProcessSlCtrl (const gdpbv100::FullMessage &mess) |
void | ProcessSysMess (const gdpbv100::FullMessage &mess) |
void | ProcessError (const gdpbv100::FullMessage &mess) |
void | ProcessPattern (const gdpbv100::FullMessage &mess) |
Int_t | GetArrayIndex (Int_t gdpbId, Int_t get4Id) |
CbmMcbm2018UnpackerAlgoTof (const CbmMcbm2018UnpackerAlgoTof &) | |
CbmMcbm2018UnpackerAlgoTof | operator= (const CbmMcbm2018UnpackerAlgoTof &) |
Private Attributes | |
Bool_t | fbMonitorMode |
Control flags. More... | |
Bool_t | fbDebugMonitorMode |
Switch ON the filling of a minimal set of histograms. More... | |
std::vector< Bool_t > | fvbMaskedComponents |
Switch ON the filling of a additional set of histograms. More... | |
CbmMcbm2018TofPar * | fUnpackPar |
Settings from parameter file. More... | |
UInt_t | fuNrOfGdpbs |
std::map< UInt_t, UInt_t > | fGdpbIdIndexMap |
Total number of GDPBs in the system. More... | |
UInt_t | fuNrOfFeePerGdpb |
gDPB ID to index map More... | |
UInt_t | fuNrOfGet4PerFee |
Number of FEBs per GDPB. More... | |
UInt_t | fuNrOfChannelsPerGet4 |
Number of GET4s per FEE. More... | |
UInt_t | fuNrOfChannelsPerFee |
Number of channels in each GET4. More... | |
UInt_t | fuNrOfGet4 |
Number of channels in each FEE. More... | |
UInt_t | fuNrOfGet4PerGdpb |
Total number of Get4 chips in the system. More... | |
UInt_t | fuNrOfChannelsPerGdpb |
Number of GET4s per GDPB. More... | |
UInt_t | fuNrOfGbtx |
UInt_t | fuNrOfModules |
std::vector< Int_t > | fviNrOfRpc |
std::vector< Int_t > | fviRpcType |
std::vector< Int_t > | fviRpcSide |
std::vector< Int_t > | fviModuleId |
std::vector< Int_t > | fviRpcChUId |
Double_t | fdTimeOffsetNs |
User settings: Data correction parameters. More... | |
UInt_t | fuDiamondDpbIdx |
ULong64_t | fulCurrentTsIdx |
ULong64_t | fulCurrentMsIdx |
Idx of the current TS. More... | |
size_t | fuCurrentMsSysId |
Idx of the current MS in TS (0 to fuTotalMsNb) More... | |
Double_t | fdTsStartTime |
SysId of the current MS in TS (0 to fuTotalMsNb) More... | |
Double_t | fdTsStopTimeCore |
Time in ns of current TS from the index of the first MS first component. More... | |
Double_t | fdMsTime |
End Time in ns of current TS Core from the index of the first MS first component. More... | |
UInt_t | fuMsIndex |
Start Time in ns of current MS from its index field in header. More... | |
UInt_t | fuCurrentEquipmentId |
UInt_t | fuCurrDpbId |
Current equipment ID, tells from which DPB the current MS is originating. More... | |
UInt_t | fuCurrDpbIdx |
Temp holder until Current equipment ID is properly filled in MS. More... | |
UInt_t | fuGet4Id |
Index of the DPB from which the MS currently unpacked is coming. More... | |
UInt_t | fuGet4Nr |
running number (0 to fuNrOfGet4PerGdpb) of the Get4 chip of a unique GDPB for current message More... | |
std::vector< ULong64_t > | fvulCurrentEpoch |
Data format control: Current time references for each GDPB: merged epoch marker, epoch cycle, full epoch [fuNrOfGdpbs]. More... | |
std::vector< ULong64_t > | fvulCurrentEpochCycle |
Current epoch index, per DPB. More... | |
std::vector< ULong64_t > | fvulCurrentEpochFull |
Epoch cycle from the Ms Start message and Epoch counter flip. More... | |
Double_t | fdStartTime |
Epoch + Epoch Cycle. More... | |
Double_t | fdStartTimeMsSz |
std::chrono::steady_clock::time_point | ftStartTimeUnix |
std::vector< std::vector< gdpbv100::Message > > | fvvmEpSupprBuffer |
Buffers. More... | |
std::vector< ULong64_t > | fvulGdpbTsMsb |
[DPB], FIXME: dimension to be removed as not needed with real MS More... | |
std::vector< ULong64_t > | fvulGdpbTsLsb |
std::vector< ULong64_t > | fvulStarTsMsb |
std::vector< ULong64_t > | fvulStarTsMid |
std::vector< ULong64_t > | fvulGdpbTsFullLast |
std::vector< ULong64_t > | fvulStarTsFullLast |
std::vector< UInt_t > | fvuStarTokenLast |
std::vector< UInt_t > | fvuStarDaqCmdLast |
std::vector< UInt_t > | fvuStarTrigCmdLast |
Double_t | fdRefTime |
Histograms. More... | |
Double_t | fdLastDigiTime |
Double_t | fdFirstDigiTimeDif |
Double_t | fdEvTime0 |
TH1 * | fhRawTDigEvT0 |
TH1 * | fhRawTDigRef0 |
TH1 * | fhRawTDigRef |
TH1 * | fhRawTRefDig0 |
TH1 * | fhRawTRefDig1 |
TH1 * | fhRawDigiLastDigi |
std::vector< TH2 * > | fhRawTotCh |
std::vector< TH1 * > | fhChCount |
std::vector< TH1 * > | fhChCountRemap |
std::vector< Bool_t > | fvbChanThere |
std::vector< TH2 * > | fhChanCoinc |
Bool_t | fbDetChanThere [64] |
TH2 * | fhDetChanCoinc |
TH1 * | fhVectorSize = nullptr |
TH1 * | fhVectorCapacity = nullptr |
size_t | fuTsMaxVectorSize = 0 |
Double_t | fdCapacityIncFactor = 1.1 |
Int_t | fMaxAsicInactive = 0 |
Static Private Attributes | |
static const Int_t | kiMaxNbFlibLinks = 32 |
Constants. More... | |
static const UInt_t | kuDetMask = 0x0001FFFF |
Definition at line 35 of file CbmMcbm2018UnpackerAlgoTof.h.
CbmMcbm2018UnpackerAlgoTof::CbmMcbm2018UnpackerAlgoTof | ( | ) |
Definition at line 42 of file CbmMcbm2018UnpackerAlgoTof.cxx.
CbmMcbm2018UnpackerAlgoTof::~CbmMcbm2018UnpackerAlgoTof | ( | ) |
Clear buffers
Definition at line 112 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::fParCList, fUnpackPar, fuNrOfGdpbs, and fvvmEpSupprBuffer.
|
private |
|
inlineinherited |
Definition at line 87 of file CbmStar2019Algo.h.
|
inlineinherited |
For monitor algos.
Definition at line 80 of file CbmStar2019Algo.h.
void CbmMcbm2018UnpackerAlgoTof::AddMsComponentToList | ( | size_t | component, |
UShort_t | usDetectorId | ||
) |
Check for duplicates and ignore if it is the case
Add to list
Definition at line 520 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::fvMsComponentsList.
Referenced by CbmMcbm2018UnpackerTaskTof::AddMsComponentToList(), CbmDeviceUnpackTofMcbm2018::AddMsComponentToList(), and CbmDeviceUnpackTofMcbm2018::HandleParts().
|
inlineprotectedinherited |
Map of parameter name and type.
Definition at line 147 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 98 of file CbmStar2019Algo.h.
|
inlineinherited |
For unpacker algos.
Definition at line 96 of file CbmStar2019Algo.h.
Bool_t CbmMcbm2018UnpackerAlgoTof::CreateHistograms | ( | ) |
Add pointers to the vector with all histo for access by steering class
Add pointers to the vector with all histo for access by steering class
Definition at line 1319 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::AddHistoToVector(), fhChanCoinc, fhChCount, fhChCountRemap, fhRawDigiLastDigi, fhRawTDigEvT0, fhRawTDigRef, fhRawTDigRef0, fhRawTotCh, fhRawTRefDig0, fhRawTRefDig1, fhVectorCapacity, fhVectorSize, fuNrOfChannelsPerGdpb, fuNrOfGdpbs, and fuNrOfGet4PerGdpb.
Referenced by CbmMcbm2018UnpackerTaskTof::InitContainers(), and CbmDeviceUnpackTofMcbm2018::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoTof::FillHistograms | ( | ) |
Definition at line 1489 of file CbmMcbm2018UnpackerAlgoTof.cxx.
Referenced by ProcessTs().
|
virtual |
Write Output histos
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 128 of file CbmMcbm2018UnpackerAlgoTof.cxx.
|
inlineprivate |
Definition at line 208 of file CbmMcbm2018UnpackerAlgoTof.h.
References fuNrOfGet4PerGdpb.
|
inlineinherited |
Definition at line 91 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 99 of file CbmStar2019Algo.h.
|
inlineinherited |
Definition at line 84 of file CbmStar2019Algo.h.
|
inlinevirtualinherited |
Definition at line 75 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 157 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::fParCList, and fUnpackPar.
Referenced by CbmMcbm2018UnpackerTaskTof::SetParContainers(), and CbmDeviceUnpackTofMcbm2018::SetParContainers().
|
inlineinherited |
Definition at line 97 of file CbmStar2019Algo.h.
|
virtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 122 of file CbmMcbm2018UnpackerAlgoTof.cxx.
|
virtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 137 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References ReInitContainers().
Referenced by CbmMcbm2018UnpackerTaskTof::InitContainers(), and CbmDeviceUnpackTofMcbm2018::InitContainers().
Bool_t CbmMcbm2018UnpackerAlgoTof::InitParameters | ( | ) |
Special Treatment for the T0 diamond
Mapping for the 2019 beamtime
2019 mapping with 320/640 Mb/s FW => 4 GET4 per GBTx => 1 T0 channel per GET4 => 1-2 eLinks per GET4 => GET4 ID = GET4 * 2 (+ 1)
Internal status initialization
STAR Trigger decoding and monitoring
Buffer initialization
Definition at line 164 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::fdMsSizeInNs, fGdpbIdIndexMap, fUnpackPar, fuNrOfChannelsPerFee, fuNrOfChannelsPerGdpb, fuNrOfChannelsPerGet4, fuNrOfFeePerGdpb, fuNrOfGbtx, fuNrOfGdpbs, fuNrOfGet4, fuNrOfGet4PerFee, fuNrOfGet4PerGdpb, fviModuleId, fviNrOfRpc, fviRpcChUId, fviRpcSide, fviRpcType, fvulCurrentEpoch, fvulCurrentEpochCycle, fvulCurrentEpochFull, fvulGdpbTsFullLast, fvulGdpbTsLsb, fvulGdpbTsMsb, fvulStarTsFullLast, fvulStarTsMid, fvulStarTsMsb, fvuStarDaqCmdLast, fvuStarTokenLast, fvuStarTrigCmdLast, fvvmEpSupprBuffer, CbmMcbm2018TofPar::GetGdpbId(), CbmMcbm2018TofPar::GetModuleId(), CbmMcbm2018TofPar::GetNrOfChannelsPerFee(), CbmMcbm2018TofPar::GetNrOfChannelsPerGet4(), CbmMcbm2018TofPar::GetNrOfFeePerGbtx(), CbmMcbm2018TofPar::GetNrOfFeesPerGdpb(), CbmMcbm2018TofPar::GetNrOfGbtx(), CbmMcbm2018TofPar::GetNrOfGdpbs(), CbmMcbm2018TofPar::GetNrOfGet4PerFee(), CbmMcbm2018TofPar::GetNrOfRpc(), CbmMcbm2018TofPar::GetRpcSide(), CbmMcbm2018TofPar::GetRpcType(), CbmMcbm2018TofPar::GetSizeMsInNs(), CbmTofAddress::GetUniqueAddress(), and i.
Referenced by ReInitContainers().
|
private |
|
private |
Used to fake a "closing" epoch at the end of the MS
Process the corresponding messages buffer for current gDPB
Definition at line 873 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fuCurrDpbIdx, fvulCurrentEpoch, fvulCurrentEpochCycle, fvulCurrentEpochFull, gdpbv100::kuEpochCounterSz, and ProcessEpSupprBuffer().
Referenced by ProcessMs().
|
private |
Process the corresponding messages buffer for current gDPB
Definition at line 818 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fuCurrDpbIdx, fvulCurrentEpoch, fvulCurrentEpochCycle, fvulCurrentEpochFull, gdpbv100::Message::getGdpbEpEpochNb(), gdpbv100::kuEpochCounterSz, and ProcessEpSupprBuffer().
Referenced by ProcessMs().
|
private |
Definition at line 792 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fuCurrDpbIdx, fulCurrentMsIdx, fvulCurrentEpochCycle, and gdpbv100::kulEpochCycleFieldSz.
Referenced by ProcessMs().
|
private |
Data are sorted between epochs, not inside => Epoch level ordering Sorting at lower bin precision level
Compute original epoch index before epoch suppression
Ignore the first epoch as it should never appear (start delay!!)
In Ep. Suppr. Mode, receive following epoch instead of previous
Store the full message in the proper buffer
Do other actions on it if needed
Should never appear there
Definition at line 999 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmMcbm2018TofPar::ElinkIdxToGet4Idx(), fuCurrDpbIdx, fuCurrentMsSysId, fuDiamondDpbIdx, fuGet4Id, fuGet4Nr, fUnpackPar, fuNrOfGet4PerGdpb, fvulCurrentEpoch, fvulCurrentEpochFull, fvvmEpSupprBuffer, gdpbv100::MSG_EPOCH, gdpbv100::MSG_HIT, gdpbv100::MSG_SLOWC, gdpbv100::MSG_STAR_TRI_A, gdpbv100::MSG_STAR_TRI_B, gdpbv100::MSG_STAR_TRI_C, gdpbv100::MSG_STAR_TRI_D, gdpbv100::MSG_SYST, ProcessHit(), ProcessSlCtrl(), and ProcessSysMess().
Referenced by ProcessEndOfMsEpoch(), and ProcessEpoch().
|
private |
Critical errors
Error during SPI communication with slave (e.g. PADI)
Input channel realted errors (TOT, shaky signals, etc...)
Unrecognised error code from GET4
Corrupt error or not yet supported error
Definition at line 1207 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References gdpbv100::GET4_V2X_ERR_ADD_RIS_EDG, gdpbv100::GET4_V2X_ERR_CHAN_STATE, gdpbv100::GET4_V2X_ERR_DLL_LOCK, gdpbv100::GET4_V2X_ERR_DLL_RESET, gdpbv100::GET4_V2X_ERR_EP, gdpbv100::GET4_V2X_ERR_EP_CNT_SYNC, gdpbv100::GET4_V2X_ERR_EPOCH_OVERF, gdpbv100::GET4_V2X_ERR_EVT_DISCARD, gdpbv100::GET4_V2X_ERR_FIFO_WRITE, gdpbv100::GET4_V2X_ERR_LOST_EVT, gdpbv100::GET4_V2X_ERR_READ_INIT, gdpbv100::GET4_V2X_ERR_READOUT_ERR, gdpbv100::GET4_V2X_ERR_SEQUENCE_ER, gdpbv100::GET4_V2X_ERR_SPI, gdpbv100::GET4_V2X_ERR_SYNC, gdpbv100::GET4_V2X_ERR_TOK_RING_ST, gdpbv100::GET4_V2X_ERR_TOKEN, gdpbv100::GET4_V2X_ERR_TOT_OVERWRT, gdpbv100::GET4_V2X_ERR_TOT_RANGE, gdpbv100::GET4_V2X_ERR_UNKNOWN, gdpbv100::GET4_V2X_ERR_UNPAIR_FALL, and gdpbv100::Message::getGdpbSysErrData().
Referenced by ProcessSysMess().
|
private |
Diamond FEE have straight connection from Get4 to eLink and from PADI to GET4
Apply offset to T0 only to TOF digis
Definition at line 1065 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fbMonitorMode, CbmStar2019Algo< CbmTofDigi >::fDigiVect, fdTimeOffsetNs, fhChCount, fhChCountRemap, fhRawTotCh, fuCurrDpbIdx, fuCurrentMsSysId, fuDiamondDpbIdx, fuGet4Id, fUnpackPar, fuNrOfChannelsPerFee, fuNrOfChannelsPerGdpb, fuNrOfChannelsPerGet4, fuNrOfFeePerGdpb, fuNrOfGet4PerFee, fviRpcChUId, CbmMcbm2018TofPar::Get4ChanToPadiChan(), gdpbv100::FullMessage::getExtendedEpoch(), gdpbv100::FullMessage::GetFullTimeNs(), gdpbv100::Message::getGdpbHit32Tot(), gdpbv100::Message::getGdpbHitChanId(), and CbmMcbm2018TofPar::GetNrOfChannelsPerGdpb().
Referenced by ProcessEpSupprBuffer().
|
virtual |
Check if this sDPB ID was declared in parameter file and stop there if not
Try to get it from the second message in buffer (first is epoch cycle without gDPB ID) TODO!!!!
Catch the Epoch cycle block which is always the first 64b of the MS
Get message type
FIXME mCBM 2018-2019: the 2nd message in the microslice should ALWAYS be an EPOCH, but we observed a few cases were a HIT from the previous MS is inserted first ===> This HIT is in wrong TS and not properly time sorted if in first MS ===> Temporary solution: simply ignore these hits, may decrease efficiency ====> Not sufficient if more than one HIT is in wrong MS !!!
Should be checked in monitor task, here we just jump it
If A message, check that the following ones are B, C, D ==> TBD only if necessary
FIXME: in the 2018-2019 data, we had only the epoch message before each block of data in the MS ===> Until it is decided either to get rid of the epoch suppr. buffer or to implement the "closing epoch" in the FW, do the following: For now this method is used to fake a "closing" epoch at the end of the MS
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 615 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmMcbm2018TofPar::ElinkIdxToGet4Idx(), fGdpbIdIndexMap, gdpbv100::FormatHexPrintout(), FormatMsHeaderPrintout(), fuCurrDpbId, fuCurrDpbIdx, fuCurrentEquipmentId, fuCurrentMsSysId, fuDiamondDpbIdx, fuGet4Id, fuGet4Nr, fulCurrentMsIdx, fulCurrentTsIdx, fuMsIndex, fUnpackPar, fuNrOfGet4PerGdpb, fvbMaskedComponents, fvvmEpSupprBuffer, gdpbv100::Message::getGdpbGenChipId(), gdpbv100::Message::getMessageType(), gdpbv100::kuChipIdMergedEpoch, gdpbv100::MSG_EPOCH, gdpbv100::MSG_HIT, gdpbv100::MSG_SLOWC, gdpbv100::MSG_STAR_TRI_A, gdpbv100::MSG_STAR_TRI_B, gdpbv100::MSG_STAR_TRI_C, gdpbv100::MSG_STAR_TRI_D, gdpbv100::MSG_SYST, ProcessEndOfMsEpoch(), ProcessEpoch(), ProcessEpochCycle(), and ProcessStarTrigger().
Referenced by ProcessTs().
|
private |
Definition at line 1249 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References gdpbv100::Message::getGdpbSysPattIndex(), gdpbv100::Message::getGdpbSysPattPattern(), gdpbv100::Message::getGdpbSysPattType(), gdpbv100::PATT_ENABLE, gdpbv100::PATT_MISSMATCH, and gdpbv100::PATT_RESYNC.
Referenced by ProcessSysMess().
|
private |
Definition at line 1170 of file CbmMcbm2018UnpackerAlgoTof.cxx.
Referenced by ProcessEpSupprBuffer().
|
private |
Check needed to avoid double counting
FIXME: for now do nothing with it!
Definition at line 901 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fuCurrDpbIdx, fulCurrentMsIdx, fulCurrentTsIdx, CbmStar2019Algo< CbmTofDigi >::fuNbCoreMsPerTs, fvulGdpbTsFullLast, fvulGdpbTsLsb, fvulGdpbTsMsb, fvulStarTsFullLast, fvulStarTsMid, fvulStarTsMsb, fvuStarDaqCmdLast, fvuStarTokenLast, fvuStarTrigCmdLast, gdpbv100::Message::getGdpbTsLsbStarB(), gdpbv100::Message::getGdpbTsMsbStarA(), gdpbv100::Message::getStarDaqCmdStarD(), gdpbv100::Message::getStarTokenStarD(), gdpbv100::Message::getStarTrigCmdStarD(), gdpbv100::Message::getStarTrigMsgIndex(), gdpbv100::Message::getStarTsLsbStarD(), gdpbv100::Message::getStarTsMidStarC(), and gdpbv100::Message::getStarTsMsbStarB().
Referenced by ProcessMs().
|
private |
Definition at line 1173 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References fuCurrDpbIdx, gdpbv100::Message::getData(), gdpbv100::Message::getGdpbGenChipId(), gdpbv100::Message::getGdpbSysFwErrResync(), gdpbv100::Message::getGdpbSysSubType(), gdpbv100::Message::getGdpbSysUnkwData(), ProcessError(), ProcessPattern(), gdpbv100::SYS_GDPB_UNKWN, gdpbv100::SYS_GET4_ERROR, gdpbv100::SYS_GET4_SYNC_MISS, and gdpbv100::SYS_PATTERN.
Referenced by ProcessEpSupprBuffer().
|
virtual |
Ignore First TS as first MS is typically corrupt
On first TS, extract the TS parameters from header (by definition stable over time)
Ignore overlap ms if flag set by user
Compute time of TS core end
Loop over core microslices (and overlap ones if chosen)
Loop over registered components
Fill plots if in monitor mode
Sort the buffers of hits due to the time offsets applied
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 535 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References DEBUG, CbmStar2019Algo< CbmTofDigi >::fbIgnoreOverlapMs, fbMonitorMode, fdCapacityIncFactor, CbmStar2019Algo< CbmTofDigi >::fDigiVect, CbmStar2019Algo< CbmTofDigi >::fdMsSizeInNs, CbmStar2019Algo< CbmTofDigi >::fdTsCoreSizeInNs, CbmStar2019Algo< CbmTofDigi >::fdTsFullSizeInNs, fdTsStartTime, fdTsStopTimeCore, fhVectorCapacity, fhVectorSize, FillHistograms(), fulCurrentTsIdx, fuMsIndex, CbmStar2019Algo< CbmTofDigi >::fuNbCoreMsPerTs, CbmStar2019Algo< CbmTofDigi >::fuNbMsLoop, CbmStar2019Algo< CbmTofDigi >::fuNbOverMsPerTs, fuTsMaxVectorSize, CbmStar2019Algo< CbmTofDigi >::fvMsComponentsList, and ProcessMs().
Referenced by CbmMcbm2018UnpackerTaskTof::DoUnpack(), CbmDeviceUnpackTofMcbm2018::DoUnpack(), and ProcessTs().
|
inlinevirtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 51 of file CbmMcbm2018UnpackerAlgoTof.h.
References ProcessTs().
|
virtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 144 of file CbmMcbm2018UnpackerAlgoTof.cxx.
References CbmStar2019Algo< CbmTofDigi >::fParCList, fUnpackPar, and InitParameters().
Referenced by InitContainers(), and CbmMcbm2018UnpackerTaskTof::ReInitContainers().
|
virtual |
Implements CbmStar2019Algo< CbmTofDigi >.
Definition at line 127 of file CbmMcbm2018UnpackerAlgoTof.cxx.
Bool_t CbmMcbm2018UnpackerAlgoTof::ResetHistograms | ( | ) |
Definition at line 1516 of file CbmMcbm2018UnpackerAlgoTof.cxx.
Referenced by CbmMcbm2018UnpackerTaskTof::DoUnpack().
|
inline |
Definition at line 68 of file CbmMcbm2018UnpackerAlgoTof.h.
References fuDiamondDpbIdx.
Referenced by CbmMcbm2018UnpackerTaskTof::SetDiamondDpbIdx(), and CbmDeviceUnpackTofMcbm2018::SetDiamondDpbIdx().
|
inlineinherited |
Control flags.
Definition at line 102 of file CbmStar2019Algo.h.
|
inline |
Definition at line 73 of file CbmMcbm2018UnpackerAlgoTof.h.
References fMaxAsicInactive.
|
inline |
Definition at line 62 of file CbmMcbm2018UnpackerAlgoTof.h.
References fbMonitorMode.
Referenced by CbmMcbm2018UnpackerTaskTof::InitContainers().
|
inlinevirtualinherited |
Definition at line 74 of file CbmStar2019Algo.h.
|
inline |
Definition at line 65 of file CbmMcbm2018UnpackerAlgoTof.h.
References fdTimeOffsetNs.
Referenced by CbmMcbm2018UnpackerTaskTof::SetTimeOffsetNs(), and CbmDeviceUnpackTofMcbm2018::SetTimeOffsetNs().
|
inline |
Definition at line 70 of file CbmMcbm2018UnpackerAlgoTof.h.
References fdCapacityIncFactor.
|
private |
Switch ON the filling of a minimal set of histograms.
Definition at line 80 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Definition at line 180 of file CbmMcbm2018UnpackerAlgoTof.h.
|
protectedinherited |
Definition at line 116 of file CbmStar2019Algo.h.
|
private |
Control flags.
Definition at line 78 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessHit(), ProcessTs(), and SetMonitorMode().
|
private |
Definition at line 191 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessTs(), and SetVectCapInc().
|
private |
Definition at line 168 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Definition at line 167 of file CbmMcbm2018UnpackerAlgoTof.h.
|
protectedinherited |
Vector of pointers to canvases + optional folder name.
For unpacker algos
Definition at line 140 of file CbmStar2019Algo.h.
|
private |
Definition at line 166 of file CbmMcbm2018UnpackerAlgoTof.h.
|
protectedinherited |
/** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **/
Definition at line 117 of file CbmStar2019Algo.h.
|
private |
End Time in ns of current TS Core from the index of the first MS first component.
Definition at line 122 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Histograms.
Definition at line 165 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Epoch + Epoch Cycle.
Starting state book-keeping
Definition at line 143 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Time of first valid hit (TS_MSB available), used as reference for evolution plots
Definition at line 145 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
User settings: Data correction parameters.
Definition at line 105 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessHit(), and SetTimeOffsetNs().
|
protectedinherited |
Size of a single MS, [nanoseconds].
Definition at line 119 of file CbmStar2019Algo.h.
|
protectedinherited |
Total size of the core MS in a TS, [nanoseconds].
Definition at line 121 of file CbmStar2019Algo.h.
|
private |
SysId of the current MS in TS (0 to fuTotalMsNb)
Definition at line 118 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessTs().
|
private |
Time in ns of current TS from the index of the first MS first component.
Definition at line 120 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessTs().
|
protectedinherited |
Definition at line 141 of file CbmStar2019Algo.h.
|
private |
Total number of GDPBs in the system.
Definition at line 87 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessMs().
|
private |
Definition at line 179 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 176 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), and ProcessHit().
|
private |
Definition at line 177 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), and ProcessHit().
|
private |
Definition at line 181 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Definition at line 174 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 169 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 171 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 170 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 175 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), and ProcessHit().
|
private |
Definition at line 172 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 173 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms().
|
private |
Definition at line 189 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), and ProcessTs().
|
private |
Definition at line 188 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), and ProcessTs().
|
private |
Definition at line 192 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by SetMaxAsicInactive().
|
protectedinherited |
For any algo.
Definition at line 145 of file CbmStar2019Algo.h.
|
protectedinherited |
Parameter management.
Definition at line 108 of file CbmStar2019Algo.h.
|
private |
Time of first microslice, used as reference for evolution plots
Definition at line 147 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Current equipment ID, tells from which DPB the current MS is originating.
Definition at line 128 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessMs().
|
private |
Temp holder until Current equipment ID is properly filled in MS.
Definition at line 130 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEndOfMsEpoch(), ProcessEpoch(), ProcessEpochCycle(), ProcessEpSupprBuffer(), ProcessHit(), ProcessMs(), ProcessStarTrigger(), and ProcessSysMess().
|
private |
Index of current MS within the TS Current data properties
Definition at line 126 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessMs().
|
private |
Idx of the current MS in TS (0 to fuTotalMsNb)
Definition at line 116 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEpSupprBuffer(), ProcessHit(), and ProcessMs().
|
private |
Definition at line 106 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEpSupprBuffer(), ProcessHit(), ProcessMs(), and SetDiamondDpbIdx().
|
private |
Index of the DPB from which the MS currently unpacked is coming.
Definition at line 132 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEpSupprBuffer(), ProcessHit(), and ProcessMs().
|
private |
running number (0 to fuNrOfGet4PerGdpb) of the Get4 chip of a unique GDPB for current message
Definition at line 134 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEpSupprBuffer(), and ProcessMs().
|
private |
Idx of the current TS.
Definition at line 115 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessEpochCycle(), ProcessMs(), and ProcessStarTrigger().
|
private |
Running indices TS/MS info
Definition at line 114 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessMs(), ProcessStarTrigger(), and ProcessTs().
|
private |
Start Time in ns of current MS from its index field in header.
Definition at line 123 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessMs(), and ProcessTs().
|
protectedinherited |
Definition at line 112 of file CbmStar2019Algo.h.
|
protectedinherited |
Definition at line 114 of file CbmStar2019Algo.h.
|
protectedinherited |
Definition at line 113 of file CbmStar2019Algo.h.
|
private |
Settings from parameter file.
Definition at line 84 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by GetParList(), InitParameters(), ProcessEpSupprBuffer(), ProcessHit(), ProcessMs(), ReInitContainers(), and ~CbmMcbm2018UnpackerAlgoTof().
|
private |
Number of channels in each GET4.
Definition at line 91 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessHit().
|
private |
Number of GET4s per GDPB.
Definition at line 94 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), InitParameters(), and ProcessHit().
|
private |
Number of GET4s per FEE.
Definition at line 90 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessHit().
|
private |
gDPB ID to index map
Definition at line 88 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessHit().
|
private |
Number of channels per GDPB Detector Mapping
Definition at line 96 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
private |
Readout chain dimensions and mapping
Definition at line 86 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), InitParameters(), and ~CbmMcbm2018UnpackerAlgoTof().
|
private |
Number of channels in each FEE.
Definition at line 92 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
private |
Number of FEBs per GDPB.
Definition at line 89 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessHit().
|
private |
Total number of Get4 chips in the system.
Definition at line 93 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by CreateHistograms(), GetArrayIndex(), InitParameters(), ProcessEpSupprBuffer(), and ProcessMs().
|
private |
Definition at line 97 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Definition at line 190 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessTs().
|
private |
Definition at line 178 of file CbmMcbm2018UnpackerAlgoTof.h.
|
private |
Switch ON the filling of a additional set of histograms.
Definition at line 81 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by ProcessMs().
|
private |
Definition at line 101 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
private |
Definition at line 98 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
private |
Definition at line 102 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessHit().
|
private |
Definition at line 100 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
private |
Definition at line 99 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters().
|
protectedinherited |
Parameters related to FLES containers.
Definition at line 111 of file CbmStar2019Algo.h.
|
protectedinherited |
Vector of pointers to histograms + optional folder name.
Definition at line 137 of file CbmStar2019Algo.h.
|
protectedinherited |
Total size of the core MS in a TS, [nanoseconds].
For monitor algos => Pointers should be filled with TH1*, TH2*, TProfile*, ... ==> To check if object N is of type T, use "T ObjectPointer = dynamic_cast<T>( fvpAllHistoPointers[N].first );" and check for nullptr ==> To get back the original class name use "fvpAllHistoPointers[N].first->ClassName()" which returns a const char * (e.g. "TH1I") ===> Usage example with feeding a THttpServer: ===> #include "TH2.h" ===> std::string sClassName = vHistos[ uHisto ].first.ClassName(); ===> if( !strncmp( sClassName, "TH1", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH1 * >(vHistos[ uHisto ].first) ); ===> else if( !strncmp( sClassName, "TH2", 3 ) ) ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH2 * >(vHistos[ uHisto ].first) );
Definition at line 135 of file CbmStar2019Algo.h.
|
private |
Data format control: Current time references for each GDPB: merged epoch marker, epoch cycle, full epoch [fuNrOfGdpbs].
running number (0 to fuNrOfGet4) of the Get4 chip in the system for current message
Definition at line 136 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), ProcessEndOfMsEpoch(), ProcessEpoch(), and ProcessEpSupprBuffer().
|
private |
Current epoch index, per DPB.
Definition at line 138 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), ProcessEndOfMsEpoch(), ProcessEpoch(), and ProcessEpochCycle().
|
private |
Epoch cycle from the Ms Start message and Epoch counter flip.
Definition at line 139 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), ProcessEndOfMsEpoch(), ProcessEpoch(), and ProcessEpSupprBuffer().
|
private |
Definition at line 158 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 155 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
[DPB], FIXME: dimension to be removed as not needed with real MS
STAR TRIGGER detection
Definition at line 154 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 159 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 157 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 156 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 161 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 160 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Definition at line 162 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), and ProcessStarTrigger().
|
private |
Buffers.
Time of run Start from UNIX system, used as reference for long evolution plots against reception time
Definition at line 151 of file CbmMcbm2018UnpackerAlgoTof.h.
Referenced by InitParameters(), ProcessEpSupprBuffer(), ProcessMs(), and ~CbmMcbm2018UnpackerAlgoTof().
|
staticprivate |
Constants.
Definition at line 109 of file CbmMcbm2018UnpackerAlgoTof.h.
|
staticprivate |
Definition at line 110 of file CbmMcbm2018UnpackerAlgoTof.h.