CbmRoot
Loading...
Searching...
No Matches
CbmMcbm2018UnpackerAlgoMuch Class Reference

#include <CbmMcbm2018UnpackerAlgoMuch.h>

Inheritance diagram for CbmMcbm2018UnpackerAlgoMuch:
[legend]
Collaboration diagram for CbmMcbm2018UnpackerAlgoMuch:
[legend]

Public Member Functions

 CbmMcbm2018UnpackerAlgoMuch ()
 
 ~CbmMcbm2018UnpackerAlgoMuch ()
 
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 SetTimeOffsetNsAsic (UInt_t uAsicIdx, Double_t dOffsetIn=0.0)
 
void MaskNoisyChannel (UInt_t uFeb, UInt_t uChan, Bool_t bMasked=kTRUE)
 
void EnableAsicType (Int_t flag=0)
 
void SetBinningFwFlag (Bool_t bEnable=kTRUE)
 => Quick and dirty hack for binning FW!!!
 
void SetVectCapInc (Double_t dIncFact)
 
void SetAdcCut (UInt_t uAdc)
 
CbmMuchBeamTimeDigiCreateMuchDigi (stsxyter::FinalHit *)
 
virtual void SetParameter (std::string)
 
virtual std::string GetParameter (std::string)
 
void AddHistoToVector (TNamed *pointer, std::string sFolder="")
 For monitor algos.
 
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.
 
std::vector< CbmMuchBeamTimeDigi > & GetVector ()
 
void ClearErrorVector ()
 
std::vector< CbmErrorMessage > & GetErrorVector ()
 
void SetIgnoreOverlapMs (Bool_t bFlagIn=kTRUE)
 Control flags.
 

Protected Member Functions

Bool_t CheckParameterValidity (std::string, std::string)
 Map of parameter name and type.
 

Protected Attributes

TList * fParCList
 Parameter management.
 
std::vector< size_t > fvMsComponentsList
 Parameters related to FLES containers.
 
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 **‍/
 
Double_t fdTsCoreSizeInNs
 Size of a single MS, [nanoseconds].
 
Double_t fdTsFullSizeInNs
 Total size of the core MS in a TS, [nanoseconds].
 
std::vector< std::pair< TNamed *, std::string > > fvpAllHistoPointers
 Total size of the core MS in a TS, [nanoseconds].
 
std::vector< std::pair< TCanvas *, std::string > > fvpAllCanvasPointers
 Vector of pointers to histograms + optional folder name.
 
std::vector< CbmMuchBeamTimeDigifDigiVect
 Vector of pointers to canvases + optional folder name.
 
std::vector< CbmErrorMessagefErrVect
 
std::map< std::string, std::string > fParameterMap
 For any algo.
 

Private Member Functions

void ProcessHitInfo (const stsxyter::Message &mess, const UShort_t &usElinkIdx, const UInt_t &uAsicIdx, const UInt_t &uMsIdx)
 
void ProcessTsMsbInfo (const stsxyter::Message &mess, UInt_t uMessIdx=0, UInt_t uMsIdx=0)
 
void ProcessEpochInfo (const stsxyter::Message &mess)
 
void ProcessStatusInfo (const stsxyter::Message &mess, const UInt_t &uAsicIdx)
 
 CbmMcbm2018UnpackerAlgoMuch (const CbmMcbm2018UnpackerAlgoMuch &)
 
CbmMcbm2018UnpackerAlgoMuch operator= (const CbmMcbm2018UnpackerAlgoMuch &)
 

Private Attributes

Bool_t fbMonitorMode
 Control flags.
 
Bool_t fbDebugMonitorMode
 Switch ON the filling of a minimal set of histograms.
 
std::vector< Bool_t > fvbMaskedComponents
 Switch ON the filling of a additional set of histograms.
 
Bool_t fbBinningFw = kFALSE
 => Quick and dirty hack for binning FW!!!
 
Int_t fiFlag
 
CbmMcbm2018MuchParfUnpackPar
 Switch to smx2.0/smx2.1 data-> fiFlag = 0 for 2.0 and fiFlag = 1 for 2.1.
 
UInt_t fuNrOfDpbs
 
std::map< UInt_t, UInt_t > fDpbIdIndexMap
 Total number of STS DPBs in system.
 
std::vector< std::vector< Bool_t > > fvbCrobActiveFlag
 Map of DPB Identifier to DPB index.
 
UInt_t fuNbFebs
 Array to hold the active flag for all CROBs, [ NbDpb ][ NbCrobPerDpb ].
 
UInt_t fuNbStsXyters
 Number of FEBs with StsXyter ASICs.
 
Double_t fdTimeOffsetNs
 Number of StsXyter ASICs.
 
std::vector< Double_t > fvdTimeOffsetNsAsics
 
Bool_t fbUseChannelMask
 
std::vector< std::vector< bool > > fvvbMaskedChannels
 
UInt_t fdAdcCut
 Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true.
 
ULong64_t fulCurrentTsIdx
 
ULong64_t fulCurrentMsIdx
 
Double_t fdTsStartTime
 
Double_t fdTsStopTimeCore
 Time in ns of current TS from the index of the first MS first component.
 
Double_t fdMsTime
 End Time in ns of current TS Core from the index of the first MS first component.
 
UInt_t fuMsIndex
 Start Time in ns of current MS from its index field in header.
 
std::map< stsxyter::MessType, UInt_t > fmMsgCounter
 
UInt_t fuCurrentEquipmentId
 
UInt_t fuCurrDpbId
 Current equipment ID, tells from which DPB the current MS is originating.
 
UInt_t fuCurrDpbIdx
 Temp holder until Current equipment ID is properly filled in MS.
 
Int_t fiRunStartDateTimeSec
 Index of the DPB from which the MS currently unpacked is coming.
 
Int_t fiBinSizeDatePlots
 Start of run time since "epoch" in s, for the plots with date as X axis.
 
std::vector< ULong64_t > fvulCurrentTsMsb
 
std::vector< UInt_t > fvuCurrentTsMsbCycle
 Current TS MSB for each DPB.
 
Double_t fdStartTime
 
Double_t fdStartTimeMsSz
 
std::chrono::steady_clock::time_point ftStartTimeUnix
 
std::vector< stsxyter::FinalHitfvmHitsInMs
 Hits time-sorting.
 
std::vector< std::vector< UShort_t > > fvvusLastTsChan
 Limit how many different TS_MSB are checked for same duplicate hit => set to 1 uS.
 
std::vector< std::vector< UShort_t > > fvvusLastAdcChan
 TS of last hit message for each channel, [ AsicIdx ][ Chan ].
 
std::vector< std::vector< UShort_t > > fvvusLastTsMsbChan
 ADC of last hit message for each channel, [ AsicIdx ][ Chan ].
 
std::vector< std::vector< UShort_t > > fvvusLastTsMsbCycleChan
 TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ].
 
TH1 * fhDigisTimeInRun
 TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ].
 
TH1 * fhVectorSize = nullptr
 
TH1 * fhVectorCapacity = nullptr
 
size_t fuTsMaxVectorSize = 0
 
Double_t fdCapacityIncFactor = 1.1
 

Static Private Attributes

static const Int_t kiMaxNbFlibLinks = 32
 Constants.
 
static const UInt_t kuMaxTsMsbDiffDuplicates
 All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator.
 

Detailed Description

Definition at line 41 of file CbmMcbm2018UnpackerAlgoMuch.h.

Constructor & Destructor Documentation

◆ CbmMcbm2018UnpackerAlgoMuch() [1/2]

CbmMcbm2018UnpackerAlgoMuch::CbmMcbm2018UnpackerAlgoMuch ( )

Definition at line 34 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

◆ ~CbmMcbm2018UnpackerAlgoMuch()

CbmMcbm2018UnpackerAlgoMuch::~CbmMcbm2018UnpackerAlgoMuch ( )

◆ CbmMcbm2018UnpackerAlgoMuch() [2/2]

CbmMcbm2018UnpackerAlgoMuch::CbmMcbm2018UnpackerAlgoMuch ( const CbmMcbm2018UnpackerAlgoMuch & )
private

Member Function Documentation

◆ AddCanvasToVector()

void CbmStar2019Algo< CbmMuchBeamTimeDigi >::AddCanvasToVector ( TCanvas * pointer,
std::string sFolder = "" )
inlineinherited

Definition at line 88 of file CbmStar2019Algo.h.

Referenced by CbmMcbm2018MonitorAlgoMuchLite::CreateHistograms().

◆ AddHistoToVector()

void CbmStar2019Algo< CbmMuchBeamTimeDigi >::AddHistoToVector ( TNamed * pointer,
std::string sFolder = "" )
inlineinherited

◆ AddMsComponentToList()

void CbmMcbm2018UnpackerAlgoMuch::AddMsComponentToList ( size_t component,
UShort_t usDetectorId )

Check for duplicates and ignore if it is the case

Add to list

Definition at line 232 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References CbmStar2019Algo< CbmMuchBeamTimeDigi >::fvMsComponentsList.

Referenced by CbmMcbm2018UnpackerTaskMuch::AddMsComponentToList(), and CbmDeviceMcbmUnpack::DoUnpack().

◆ CheckParameterValidity()

Bool_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::CheckParameterValidity ( std::string ,
std::string  )
inlineprotectedinherited

Map of parameter name and type.

Definition at line 140 of file CbmStar2019Algo.h.

◆ ClearErrorVector()

void CbmStar2019Algo< CbmMuchBeamTimeDigi >::ClearErrorVector ( )
inlineinherited

Definition at line 97 of file CbmStar2019Algo.h.

◆ ClearVector()

void CbmStar2019Algo< CbmMuchBeamTimeDigi >::ClearVector ( )
inlineinherited

For unpacker algos.

Definition at line 95 of file CbmStar2019Algo.h.

◆ CreateHistograms()

Bool_t CbmMcbm2018UnpackerAlgoMuch::CreateHistograms ( )

◆ CreateMuchDigi()

◆ EnableAsicType()

void CbmMcbm2018UnpackerAlgoMuch::EnableAsicType ( Int_t flag = 0)
inline

Definition at line 70 of file CbmMcbm2018UnpackerAlgoMuch.h.

References fiFlag.

Referenced by CbmMcbm2018UnpackerTaskMuch::EnableAsicType().

◆ FillHistograms()

Bool_t CbmMcbm2018UnpackerAlgoMuch::FillHistograms ( )

◆ Finish()

void CbmMcbm2018UnpackerAlgoMuch::Finish ( )
virtual

Printout Goodbye message and stats

Write Output histos

Implements CbmStar2019Algo< CbmMuchBeamTimeDigi >.

Definition at line 109 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

◆ GetCanvasVector()

std::vector< std::pair< TCanvas *, std::string > > CbmStar2019Algo< CbmMuchBeamTimeDigi >::GetCanvasVector ( )
inlineinherited

Definition at line 92 of file CbmStar2019Algo.h.

◆ GetErrorVector()

std::vector< CbmErrorMessage > & CbmStar2019Algo< CbmMuchBeamTimeDigi >::GetErrorVector ( )
inlineinherited

Definition at line 98 of file CbmStar2019Algo.h.

◆ GetHistoVector()

std::vector< std::pair< TNamed *, std::string > > CbmStar2019Algo< CbmMuchBeamTimeDigi >::GetHistoVector ( )
inlineinherited

Definition at line 87 of file CbmStar2019Algo.h.

◆ GetParameter()

virtual std::string CbmStar2019Algo< CbmMuchBeamTimeDigi >::GetParameter ( std::string )
inlinevirtualinherited

Definition at line 80 of file CbmStar2019Algo.h.

◆ GetParList()

TList * CbmMcbm2018UnpackerAlgoMuch::GetParList ( )
virtual

◆ GetVector()

std::vector< CbmMuchBeamTimeDigi > & CbmStar2019Algo< CbmMuchBeamTimeDigi >::GetVector ( )
inlineinherited

Definition at line 96 of file CbmStar2019Algo.h.

◆ Init()

Bool_t CbmMcbm2018UnpackerAlgoMuch::Init ( )
virtual

◆ InitContainers()

Bool_t CbmMcbm2018UnpackerAlgoMuch::InitContainers ( )
virtual

◆ InitParameters()

◆ MaskNoisyChannel()

void CbmMcbm2018UnpackerAlgoMuch::MaskNoisyChannel ( UInt_t uFeb,
UInt_t uChan,
Bool_t bMasked = kTRUE )

◆ operator=()

CbmMcbm2018UnpackerAlgoMuch CbmMcbm2018UnpackerAlgoMuch::operator= ( const CbmMcbm2018UnpackerAlgoMuch & )
private

◆ ProcessEpochInfo()

void CbmMcbm2018UnpackerAlgoMuch::ProcessEpochInfo ( const stsxyter::Message & mess)
private

Definition at line 822 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

Referenced by ProcessMs().

◆ ProcessHitInfo()

void CbmMcbm2018UnpackerAlgoMuch::ProcessHitInfo ( const stsxyter::Message & mess,
const UShort_t & usElinkIdx,
const UInt_t & uAsicIdx,
const UInt_t & uMsIdx )
private

=> Quick and dirty hack for binning FW!!!

Cheat needed only for modules with FEB at bottom of module or the Test module

Duplicate hits rejection

FIXME: add plots to check what is done in this rejection

=> Quick and dirty hack for binning FW!!!

Store hit for output only if it is mapped to a module!!!

Store only if masking is disabled or if channeld is not masked 2D vector is safe as always right size if masking enabled

If EM flag ON, store a corresponding error message with the next flag after all other possible status flags set

Definition at line 631 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References fbBinningFw, fbUseChannelMask, fdAdcCut, fdStartTime, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fErrVect, fuCurrDpbIdx, fUnpackPar, fvmHitsInMs, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, fvvbMaskedChannels, fvvusLastAdcChan, fvvusLastTsChan, fvvusLastTsMsbChan, fvvusLastTsMsbCycleChan, stsxyter::Message::GetHitAdc(), stsxyter::Message::GetHitChannel(), stsxyter::Message::GetHitTime(), stsxyter::Message::GetHitTimeBinning(), CbmMcbm2018MuchPar::GetNbElinkPerCrob(), stsxyter::Message::IsHitMissedEvts(), stsxyter::kdClockCycleNs, kMuch, stsxyter::kuHitNbTsBins, stsxyter::kuHitNbTsBinsBinning, stsxyter::kulTsCycleNbBins, stsxyter::kulTsCycleNbBinsBinning, kuMaxTsMsbDiffDuplicates, and stsxyter::kusLenStatStatus.

Referenced by ProcessMs().

◆ ProcessMs()

Bool_t CbmMcbm2018UnpackerAlgoMuch::ProcessMs ( const fles::Timeslice & ts,
size_t uMsCompIdx,
size_t uMsIdx )
virtual

Check if this sDPB ID was declared in parameter file and stop there if not

If first TS being analyzed, we are probably detecting STS/MUCH boards with same sysid => Do not report the MS as bad, just ignore it

Check the current TS_MSb cycle and correct it if wrong

=> Quick and dirty hack for binning FW!!!

Get message type

=> Quick and dirty hack for binning FW!!!

Extract the eLink and Asic indices => Should GO IN the fill method now that obly hits are link/asic specific!

Implements CbmStar2019Algo< CbmMuchBeamTimeDigi >.

Definition at line 443 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References stsxyter::Dummy, CbmMcbm2018MuchPar::ElinkIdxToAsicIdx(), CbmMcbm2018MuchPar::ElinkIdxToFebIdx(), stsxyter::Empty, stsxyter::EndOfMs, stsxyter::Epoch, fbBinningFw, fDpbIdIndexMap, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fErrVect, fmMsgCounter, FormatMsHeaderPrintout(), fuCurrDpbId, fuCurrDpbIdx, fuCurrentEquipmentId, fulCurrentMsIdx, fulCurrentTsIdx, fUnpackPar, fvbMaskedComponents, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetLinkIndex(), stsxyter::Message::GetLinkIndexHitBinning(), stsxyter::Message::GetMessType(), CbmMcbm2018MuchPar::GetNbAsicsPerCrob(), CbmMcbm2018MuchPar::GetNbCrobsPerDpb(), CbmMcbm2018MuchPar::GetNbElinkPerCrob(), stsxyter::Message::GetStatusLink(), stsxyter::Hit, stsxyter::kdClockCycleNs, kMuch, stsxyter::kulTsCycleNbBins, stsxyter::kulTsCycleNbBinsBinning, ProcessEpochInfo(), ProcessHitInfo(), ProcessStatusInfo(), ProcessTsMsbInfo(), stsxyter::Status, and stsxyter::TsMsb.

Referenced by ProcessTs().

◆ ProcessStatusInfo()

void CbmMcbm2018UnpackerAlgoMuch::ProcessStatusInfo ( const stsxyter::Message & mess,
const UInt_t & uAsicIdx )
private

Compute the Full time stamp Use TS w/o overlap bits as they will anyway come from the TS_MSB

=> Quick and dirty hack for binning FW!!!

Convert the time in bins to Hit time in ns

Definition at line 837 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References fbBinningFw, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fErrVect, fuCurrDpbIdx, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetData(), stsxyter::Message::GetStatusStatus(), stsxyter::kdClockCycleNs, kMuch, stsxyter::kuHitNbTsBins, stsxyter::kuHitNbTsBinsBinning, stsxyter::kulTsCycleNbBins, and stsxyter::kulTsCycleNbBinsBinning.

Referenced by ProcessMs().

◆ ProcessTs() [1/2]

Bool_t CbmMcbm2018UnpackerAlgoMuch::ProcessTs ( const fles::Timeslice & ts)
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

Sort the buffers of hits => Commented out as for now problems at MS borders due to offsets

Add the hits to the output buffer as Digis

For generating MUCH Digi and Address calling a function. Do local MUCH related things in that only.

Clear the buffer of hits

Clear buffers to prepare for the next TS

Sort the buffers of hits due to the time offsets applied

Fill plots if in monitor mode

Implements CbmStar2019Algo< CbmMuchBeamTimeDigi >.

Definition at line 246 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References CreateMuchDigi(), CbmStar2019Algo< CbmMuchBeamTimeDigi >::fbIgnoreOverlapMs, fbMonitorMode, fdCapacityIncFactor, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fDigiVect, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdMsSizeInNs, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdTsCoreSizeInNs, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdTsFullSizeInNs, fdTsStartTime, fdTsStopTimeCore, fhVectorCapacity, fhVectorSize, FillHistograms(), fulCurrentTsIdx, fuMsIndex, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbCoreMsPerTs, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbMsLoop, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbOverMsPerTs, fuTsMaxVectorSize, fvmHitsInMs, CbmStar2019Algo< CbmMuchBeamTimeDigi >::fvMsComponentsList, and ProcessMs().

Referenced by CbmDeviceMcbmUnpack::DoUnpack(), and CbmMcbm2018UnpackerTaskMuch::DoUnpack().

◆ ProcessTs() [2/2]

Bool_t CbmMcbm2018UnpackerAlgoMuch::ProcessTs ( const fles::Timeslice & ts,
size_t  )
inlinevirtual

Implements CbmStar2019Algo< CbmMuchBeamTimeDigi >.

Definition at line 57 of file CbmMcbm2018UnpackerAlgoMuch.h.

References ProcessTs().

Referenced by ProcessTs().

◆ ProcessTsMsbInfo()

void CbmMcbm2018UnpackerAlgoMuch::ProcessTsMsbInfo ( const stsxyter::Message & mess,
UInt_t uMessIdx = 0,
UInt_t uMsIdx = 0 )
private

=> Quick and dirty hack for binning FW!!!

Case where we reach a normal cycle edge

First TS_MSB in MS may jump if TS dropped by DAQ

case with cycle et edge of 2 MS

New FW introduced TS_MSB suppression + large TS_MSB => warning only if value not increasing

Catch case where previous MS ended up on a TS MSB cycle as it is then already updated from the MS index

Definition at line 752 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References fbBinningFw, fuCurrDpbIdx, fulCurrentMsIdx, fulCurrentTsIdx, fvuCurrentTsMsbCycle, fvulCurrentTsMsb, stsxyter::Message::GetTsMsbVal(), and stsxyter::Message::GetTsMsbValBinning().

Referenced by ProcessMs().

◆ ReInitContainers()

Bool_t CbmMcbm2018UnpackerAlgoMuch::ReInitContainers ( )
virtual

◆ Reset()

void CbmMcbm2018UnpackerAlgoMuch::Reset ( )
virtual

◆ ResetHistograms()

Bool_t CbmMcbm2018UnpackerAlgoMuch::ResetHistograms ( )

Definition at line 1130 of file CbmMcbm2018UnpackerAlgoMuch.cxx.

References fhDigisTimeInRun.

Referenced by CbmMcbm2018UnpackerTaskMuch::DoUnpack().

◆ SetAdcCut()

void CbmMcbm2018UnpackerAlgoMuch::SetAdcCut ( UInt_t uAdc)
inline

Definition at line 77 of file CbmMcbm2018UnpackerAlgoMuch.h.

References fdAdcCut.

Referenced by CbmMcbm2018UnpackerTaskMuch::SetAdcCut().

◆ SetBinningFwFlag()

void CbmMcbm2018UnpackerAlgoMuch::SetBinningFwFlag ( Bool_t bEnable = kTRUE)
inline

=> Quick and dirty hack for binning FW!!!

Definition at line 73 of file CbmMcbm2018UnpackerAlgoMuch.h.

References fbBinningFw.

Referenced by CbmDeviceMcbmUnpack::InitContainers(), and CbmMcbm2018UnpackerTaskMuch::SetBinningFwFlag().

◆ SetIgnoreOverlapMs()

void CbmStar2019Algo< CbmMuchBeamTimeDigi >::SetIgnoreOverlapMs ( Bool_t bFlagIn = kTRUE)
inlineinherited

Control flags.

Definition at line 101 of file CbmStar2019Algo.h.

◆ SetMonitorMode()

void CbmMcbm2018UnpackerAlgoMuch::SetMonitorMode ( Bool_t bFlagIn = kTRUE)
inline

Definition at line 66 of file CbmMcbm2018UnpackerAlgoMuch.h.

References fbMonitorMode.

Referenced by CbmMcbm2018UnpackerTaskMuch::InitContainers().

◆ SetParameter()

virtual void CbmStar2019Algo< CbmMuchBeamTimeDigi >::SetParameter ( std::string )
inlinevirtualinherited

Definition at line 79 of file CbmStar2019Algo.h.

◆ SetTimeOffsetNs()

void CbmMcbm2018UnpackerAlgoMuch::SetTimeOffsetNs ( Double_t dOffsetIn = 0.0)
inline

◆ SetTimeOffsetNsAsic()

void CbmMcbm2018UnpackerAlgoMuch::SetTimeOffsetNsAsic ( UInt_t uAsicIdx,
Double_t dOffsetIn = 0.0 )

◆ SetVectCapInc()

void CbmMcbm2018UnpackerAlgoMuch::SetVectCapInc ( Double_t dIncFact)
inline

Definition at line 75 of file CbmMcbm2018UnpackerAlgoMuch.h.

References fdCapacityIncFactor.

Member Data Documentation

◆ fbBinningFw

Bool_t CbmMcbm2018UnpackerAlgoMuch::fbBinningFw = kFALSE
private

=> Quick and dirty hack for binning FW!!!

Definition at line 89 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), ProcessTsMsbInfo(), and SetBinningFwFlag().

◆ fbDebugMonitorMode

Bool_t CbmMcbm2018UnpackerAlgoMuch::fbDebugMonitorMode
private

Switch ON the filling of a minimal set of histograms.

Definition at line 86 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fbIgnoreOverlapMs

Bool_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fbIgnoreOverlapMs
protectedinherited

Definition at line 112 of file CbmStar2019Algo.h.

Referenced by ProcessTs().

◆ fbMonitorMode

Bool_t CbmMcbm2018UnpackerAlgoMuch::fbMonitorMode
private

Control flags.

Definition at line 85 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs(), and SetMonitorMode().

◆ fbUseChannelMask

Bool_t CbmMcbm2018UnpackerAlgoMuch::fbUseChannelMask
private

Definition at line 108 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by MaskNoisyChannel(), and ProcessHitInfo().

◆ fdAdcCut

UInt_t CbmMcbm2018UnpackerAlgoMuch::fdAdcCut
private

Vector of channel masks, [ NbFeb ][ NbCHanInFeb ], used only if fbUseChannelMask is true.

Definition at line 111 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessHitInfo(), and SetAdcCut().

◆ fdCapacityIncFactor

Double_t CbmMcbm2018UnpackerAlgoMuch::fdCapacityIncFactor = 1.1
private

Definition at line 165 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs(), and SetVectCapInc().

◆ fDigiVect

std::vector<CbmMuchBeamTimeDigi> CbmStar2019Algo< CbmMuchBeamTimeDigi >::fDigiVect
protectedinherited

Vector of pointers to canvases + optional folder name.

For unpacker algos

Definition at line 134 of file CbmStar2019Algo.h.

Referenced by FillHistograms(), and ProcessTs().

◆ fdMsSizeInNs

Double_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdMsSizeInNs
protectedinherited

/‍** Ignore Overlap Ms: all fuOverlapMsNb MS at the end of timeslice **‍/

Definition at line 113 of file CbmStar2019Algo.h.

Referenced by CbmMcbm2018MonitorAlgoMuchLite::ProcessTs(), and ProcessTs().

◆ fdMsTime

Double_t CbmMcbm2018UnpackerAlgoMuch::fdMsTime
private

End Time in ns of current TS Core from the index of the first MS first component.

Definition at line 121 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fDpbIdIndexMap

std::map<UInt_t, UInt_t> CbmMcbm2018UnpackerAlgoMuch::fDpbIdIndexMap
private

Total number of STS DPBs in system.

Definition at line 97 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and ProcessMs().

◆ fdStartTime

Double_t CbmMcbm2018UnpackerAlgoMuch::fdStartTime
private

Current TS MSB cycle for DPB Starting state book-keeping

Definition at line 134 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessHitInfo().

◆ fdStartTimeMsSz

Double_t CbmMcbm2018UnpackerAlgoMuch::fdStartTimeMsSz
private

Time of first valid hit (TS_MSB available), used as reference for evolution plots

Definition at line 135 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fdTimeOffsetNs

Double_t CbmMcbm2018UnpackerAlgoMuch::fdTimeOffsetNs
private

Number of StsXyter ASICs.

User settings: Data correction parameters

Definition at line 104 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateMuchDigi(), and SetTimeOffsetNs().

◆ fdTsCoreSizeInNs

Double_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdTsCoreSizeInNs
protectedinherited

Size of a single MS, [nanoseconds].

Definition at line 114 of file CbmStar2019Algo.h.

Referenced by CbmMcbm2018MonitorAlgoMuchLite::ProcessTs(), and ProcessTs().

◆ fdTsFullSizeInNs

Double_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fdTsFullSizeInNs
protectedinherited

Total size of the core MS in a TS, [nanoseconds].

Definition at line 115 of file CbmStar2019Algo.h.

Referenced by CbmMcbm2018MonitorAlgoMuchLite::ProcessTs(), and ProcessTs().

◆ fdTsStartTime

Double_t CbmMcbm2018UnpackerAlgoMuch::fdTsStartTime
private

Definition at line 119 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs().

◆ fdTsStopTimeCore

Double_t CbmMcbm2018UnpackerAlgoMuch::fdTsStopTimeCore
private

Time in ns of current TS from the index of the first MS first component.

Definition at line 120 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs().

◆ fErrVect

std::vector<CbmErrorMessage> CbmStar2019Algo< CbmMuchBeamTimeDigi >::fErrVect
protectedinherited

Definition at line 135 of file CbmStar2019Algo.h.

Referenced by ProcessHitInfo(), ProcessMs(), and ProcessStatusInfo().

◆ fhDigisTimeInRun

TH1* CbmMcbm2018UnpackerAlgoMuch::fhDigisTimeInRun
private

TS MSB cycle of last hit message for each channel, [ AsicIdx ][ Chan ].

Histograms

Definition at line 155 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateHistograms(), FillHistograms(), and ResetHistograms().

◆ fhVectorCapacity

TH1* CbmMcbm2018UnpackerAlgoMuch::fhVectorCapacity = nullptr
private

Definition at line 163 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fhVectorSize

TH1* CbmMcbm2018UnpackerAlgoMuch::fhVectorSize = nullptr
private

Definition at line 162 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateHistograms(), and ProcessTs().

◆ fiBinSizeDatePlots

Int_t CbmMcbm2018UnpackerAlgoMuch::fiBinSizeDatePlots
private

Start of run time since "epoch" in s, for the plots with date as X axis.

Definition at line 129 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fiFlag

Int_t CbmMcbm2018UnpackerAlgoMuch::fiFlag
private

Definition at line 91 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateMuchDigi(), and EnableAsicType().

◆ fiRunStartDateTimeSec

Int_t CbmMcbm2018UnpackerAlgoMuch::fiRunStartDateTimeSec
private

Index of the DPB from which the MS currently unpacked is coming.

Definition at line 128 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fmMsgCounter

std::map<stsxyter::MessType, UInt_t> CbmMcbm2018UnpackerAlgoMuch::fmMsgCounter
private

Index of current MS within the TS Current data properties

Definition at line 124 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs().

◆ fParameterMap

std::map<std::string, std::string> CbmStar2019Algo< CbmMuchBeamTimeDigi >::fParameterMap
protectedinherited

For any algo.

Definition at line 138 of file CbmStar2019Algo.h.

◆ fParCList

◆ ftStartTimeUnix

std::chrono::steady_clock::time_point CbmMcbm2018UnpackerAlgoMuch::ftStartTimeUnix
private

Time of first microslice, used as reference for evolution plots

Definition at line 137 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ fuCurrDpbId

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuCurrDpbId
private

Current equipment ID, tells from which DPB the current MS is originating.

Definition at line 126 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs().

◆ fuCurrDpbIdx

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuCurrDpbIdx
private

Temp holder until Current equipment ID is properly filled in MS.

Definition at line 127 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().

◆ fuCurrentEquipmentId

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuCurrentEquipmentId
private

Definition at line 125 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs().

◆ fulCurrentMsIdx

ULong64_t CbmMcbm2018UnpackerAlgoMuch::fulCurrentMsIdx
private

Definition at line 118 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs(), and ProcessTsMsbInfo().

◆ fulCurrentTsIdx

ULong64_t CbmMcbm2018UnpackerAlgoMuch::fulCurrentTsIdx
private

Running indices TS/MS info

Definition at line 117 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs(), ProcessTs(), and ProcessTsMsbInfo().

◆ fuMsIndex

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuMsIndex
private

Start Time in ns of current MS from its index field in header.

Definition at line 122 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs().

◆ fuNbCoreMsPerTs

size_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbCoreMsPerTs
protectedinherited

Definition at line 109 of file CbmStar2019Algo.h.

Referenced by ProcessTs().

◆ fuNbFebs

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuNbFebs
private

Array to hold the active flag for all CROBs, [ NbDpb ][ NbCrobPerDpb ].

Definition at line 100 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and MaskNoisyChannel().

◆ fuNbMsLoop

size_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbMsLoop
protectedinherited

Definition at line 111 of file CbmStar2019Algo.h.

Referenced by CbmMcbm2018MonitorAlgoMuchLite::ProcessTs(), and ProcessTs().

◆ fuNbOverMsPerTs

size_t CbmStar2019Algo< CbmMuchBeamTimeDigi >::fuNbOverMsPerTs
protectedinherited

Definition at line 110 of file CbmStar2019Algo.h.

Referenced by ProcessTs().

◆ fuNbStsXyters

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuNbStsXyters
private

Number of FEBs with StsXyter ASICs.

Definition at line 101 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters().

◆ fUnpackPar

CbmMcbm2018MuchPar* CbmMcbm2018UnpackerAlgoMuch::fUnpackPar
private

Switch to smx2.0/smx2.1 data-> fiFlag = 0 for 2.0 and fiFlag = 1 for 2.1.

Settings from parameter file

Definition at line 94 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by CreateMuchDigi(), GetParList(), InitParameters(), MaskNoisyChannel(), ProcessHitInfo(), ProcessMs(), ReInitContainers(), and ~CbmMcbm2018UnpackerAlgoMuch().

◆ fuNrOfDpbs

UInt_t CbmMcbm2018UnpackerAlgoMuch::fuNrOfDpbs
private

Readout chain dimensions and mapping

Definition at line 96 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters().

◆ fuTsMaxVectorSize

size_t CbmMcbm2018UnpackerAlgoMuch::fuTsMaxVectorSize = 0
private

Definition at line 164 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessTs().

◆ fvbCrobActiveFlag

std::vector<std::vector<Bool_t> > CbmMcbm2018UnpackerAlgoMuch::fvbCrobActiveFlag
private

Map of DPB Identifier to DPB index.

Definition at line 99 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters().

◆ fvbMaskedComponents

std::vector<Bool_t> CbmMcbm2018UnpackerAlgoMuch::fvbMaskedComponents
private

Switch ON the filling of a additional set of histograms.

Definition at line 87 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessMs().

◆ fvdTimeOffsetNsAsics

std::vector<Double_t> CbmMcbm2018UnpackerAlgoMuch::fvdTimeOffsetNsAsics
private

◆ fvmHitsInMs

std::vector<stsxyter::FinalHit> CbmMcbm2018UnpackerAlgoMuch::fvmHitsInMs
private

Hits time-sorting.

Time of run Start from UNIX system, used as reference for long evolution plots against reception time

Definition at line 141 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessHitInfo(), ProcessTs(), and ~CbmMcbm2018UnpackerAlgoMuch().

◆ fvMsComponentsList

std::vector<size_t> CbmStar2019Algo< CbmMuchBeamTimeDigi >::fvMsComponentsList
protectedinherited

Parameters related to FLES containers.

Definition at line 108 of file CbmStar2019Algo.h.

Referenced by AddMsComponentToList(), and ProcessTs().

◆ fvpAllCanvasPointers

std::vector<std::pair<TCanvas*, std::string> > CbmStar2019Algo< CbmMuchBeamTimeDigi >::fvpAllCanvasPointers
protectedinherited

Vector of pointers to histograms + optional folder name.

Definition at line 131 of file CbmStar2019Algo.h.

◆ fvpAllHistoPointers

std::vector<std::pair<TNamed*, std::string> > CbmStar2019Algo< CbmMuchBeamTimeDigi >::fvpAllHistoPointers
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 129 of file CbmStar2019Algo.h.

◆ fvuCurrentTsMsbCycle

std::vector<UInt_t> CbmMcbm2018UnpackerAlgoMuch::fvuCurrentTsMsbCycle
private

Current TS MSB for each DPB.

Definition at line 132 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().

◆ fvulCurrentTsMsb

std::vector<ULong64_t> CbmMcbm2018UnpackerAlgoMuch::fvulCurrentTsMsb
private

Bin size in s for the plots with date as X axis Data format control

Definition at line 131 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), ProcessHitInfo(), ProcessMs(), ProcessStatusInfo(), and ProcessTsMsbInfo().

◆ fvvbMaskedChannels

std::vector<std::vector<bool> > CbmMcbm2018UnpackerAlgoMuch::fvvbMaskedChannels
private

Definition at line 110 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by MaskNoisyChannel(), and ProcessHitInfo().

◆ fvvusLastAdcChan

std::vector<std::vector<UShort_t> > CbmMcbm2018UnpackerAlgoMuch::fvvusLastAdcChan
private

TS of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 148 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and ProcessHitInfo().

◆ fvvusLastTsChan

std::vector<std::vector<UShort_t> > CbmMcbm2018UnpackerAlgoMuch::fvvusLastTsChan
private

Limit how many different TS_MSB are checked for same duplicate hit => set to 1 uS.

Definition at line 146 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and ProcessHitInfo().

◆ fvvusLastTsMsbChan

std::vector<std::vector<UShort_t> > CbmMcbm2018UnpackerAlgoMuch::fvvusLastTsMsbChan
private

ADC of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 150 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and ProcessHitInfo().

◆ fvvusLastTsMsbCycleChan

std::vector<std::vector<UShort_t> > CbmMcbm2018UnpackerAlgoMuch::fvvusLastTsMsbCycleChan
private

TS MSB of last hit message for each channel, [ AsicIdx ][ Chan ].

Definition at line 152 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by InitParameters(), and ProcessHitInfo().

◆ kiMaxNbFlibLinks

const Int_t CbmMcbm2018UnpackerAlgoMuch::kiMaxNbFlibLinks = 32
staticprivate

Constants.

Definition at line 113 of file CbmMcbm2018UnpackerAlgoMuch.h.

◆ kuMaxTsMsbDiffDuplicates

const UInt_t CbmMcbm2018UnpackerAlgoMuch::kuMaxTsMsbDiffDuplicates
staticprivate
Initial value:
=
32

All hits (time in bins, ADC in bins, asic, channel) in last MS, sorted with "<" operator.

Duplicate hits suppression

Definition at line 144 of file CbmMcbm2018UnpackerAlgoMuch.h.

Referenced by ProcessHitInfo().


The documentation for this class was generated from the following files: