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

#include <CbmMcbm2018Source.h>

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

Public Member Functions

 CbmMcbm2018Source ()
 
 CbmMcbm2018Source (const CbmMcbm2018Source &source)=delete
 
CbmMcbm2018Sourceoperator= (const CbmMcbm2018Source &)=delete
 
virtual ~CbmMcbm2018Source ()
 
Bool_t Init ()
 
Int_t ReadEvent (UInt_t)
 
Source_Type GetSourceType ()
 
virtual void SetParUnpackers ()
 
virtual Bool_t InitUnpackers ()
 
virtual Bool_t ReInitUnpackers ()
 
virtual Bool_t SpecifyRunId ()
 
void Close ()
 
void Reset ()
 
void SetFileName (TString name)
 
void SetInputDir (TString name)
 
void SetHostName (TString name)
 
void AddUnpacker (CbmMcbmUnpack *unpacker, Int_t flibId, ECbmModuleId)
 
void AddFile (const char *name)
 
UInt_t GetTsCount ()
 
UInt_t GetNofTSSinceLastTS ()
 
void SetDataReductionMuch (UInt_t uTsReduction=15)
 
void UnpackSingleSpill (Int_t iSpillIdx, UInt_t uSpillStart=1)
 
void UnpackSelectSpills (Int_t iSpillIdxStart, Int_t iSpillIdxStop, UInt_t uSpillStart=1)
 
void LoadTsListSpillBreakBegin (std::vector< ULong64_t > vTsBeg)
 
void LoadTsListSpillBreakEnd (std::vector< ULong64_t > vTsEnd)
 
void LoadTsListSpillBreakMiddle (std::vector< ULong64_t > vTsMid)
 
void SetSubscriberHwm (UInt_t val=1)
 
void SetWriteOutputFlag (Bool_t bFlagIn)
 

Private Member Functions

Bool_t CheckTimeslice (const fles::Timeslice &ts)
 
void PrintMicroSliceDescriptor (const fles::MicrosliceDescriptor &mdsc)
 
Int_t FillBuffer ()
 

Private Attributes

TString fFileName
 
TString fDirName
 
TList fInputFileList
 List of input files.
 
TString fHost
 
std::multimap< Int_t, CbmMcbmUnpack * > fUnpackers
 
std::unordered_set< CbmMcbmUnpack * > fUnpackersToRun
 List pairs of system ID and unpacker pointer (unpacker can appear multiple times)
 
UInt_t fTSNumber
 List of all unpackers for which at least one matching container was found.
 
UInt_t fTSCounter
 
ULong64_t fTSLength = 0
 
ULong64_t fTSOverlappLength = 0
 
TStopwatch fTimer
 
TH1I * fHistoMissedTS
 
TProfile * fHistoMissedTSEvo
 
Int_t fNofTSSinceLastTS
 
UInt_t fuTsReduction
 
Int_t fiUnpSpillIdxStart = -1
 
Int_t fiUnpSpillIdxStop = -1
 >= 0 means unpack only from this spill
 
UInt_t fuFlagSpillStart = 0
 >= 0 means unpack only up to this spill (included)
 
UInt_t fuSpillBegTs = 0
 0 = Break begin, 1 = Break middle, 2 = Break end
 
UInt_t fuSpillEndTs = 0
 
std::vector< ULong64_t > fvuSpillBreakBegTs = {}
 
std::vector< ULong64_t > fvuSpillBreakEndTs = {}
 
std::vector< ULong64_t > fvuSpillBreakMidTs = {}
 
std::unique_ptr< fles::TimesliceSource > fSource
 
UInt_t fuSubscriberHwm
 
Bool_t fbWriteOutput
 Output ClonesArray.
 
TClonesArray * fTimeSliceMetaDataArray
 If ON the output TClonesArray of meta-data is written to disk.
 

Detailed Description

Definition at line 38 of file CbmMcbm2018Source.h.

Constructor & Destructor Documentation

◆ CbmMcbm2018Source() [1/2]

CbmMcbm2018Source::CbmMcbm2018Source ( )

Definition at line 36 of file CbmMcbm2018Source.cxx.

◆ CbmMcbm2018Source() [2/2]

CbmMcbm2018Source::CbmMcbm2018Source ( const CbmMcbm2018Source & source)
delete

◆ ~CbmMcbm2018Source()

CbmMcbm2018Source::~CbmMcbm2018Source ( )
virtual

Definition at line 58 of file CbmMcbm2018Source.cxx.

Member Function Documentation

◆ AddFile()

void CbmMcbm2018Source::AddFile ( const char * name)
inline

Definition at line 76 of file CbmMcbm2018Source.h.

References fInputFileList.

◆ AddUnpacker()

void CbmMcbm2018Source::AddUnpacker ( CbmMcbmUnpack * unpacker,
Int_t flibId,
ECbmModuleId  )
inline

Definition at line 71 of file CbmMcbm2018Source.h.

References fUnpackers.

◆ CheckTimeslice()

Bool_t CbmMcbm2018Source::CheckTimeslice ( const fles::Timeslice & ts)
private

Definition at line 243 of file CbmMcbm2018Source.cxx.

◆ Close()

void CbmMcbm2018Source::Close ( )

Definition at line 253 of file CbmMcbm2018Source.cxx.

References fUnpackersToRun.

◆ FillBuffer()

Int_t CbmMcbm2018Source::FillBuffer ( )
private

Get range of all unpackers matching this system ID <= Trick for STS + MUCH

Compute and store the timeslice and microslices properties

Single spill or spills range unpacking

Jump all TS until reaching the first TS in the spill we want to unpack

Stop when reaching the first TS in the next spill

Apply TS throttling as set by user (default = 1 => no throttling)

Save the TimeSlice meta-data for access by higher level tasks

Definition at line 273 of file CbmMcbm2018Source.cxx.

References fHistoMissedTS, fHistoMissedTSEvo, fiUnpSpillIdxStart, fNofTSSinceLastTS, fSource, fTimeSliceMetaDataArray, fTSCounter, fTSLength, fTSNumber, fTSOverlappLength, fUnpackers, fUnpackersToRun, fuSpillBegTs, fuSpillEndTs, and fuTsReduction.

Referenced by ReadEvent().

◆ GetNofTSSinceLastTS()

UInt_t CbmMcbm2018Source::GetNofTSSinceLastTS ( )
inline

Definition at line 79 of file CbmMcbm2018Source.h.

References fNofTSSinceLastTS.

◆ GetSourceType()

Source_Type CbmMcbm2018Source::GetSourceType ( )
inline

Definition at line 50 of file CbmMcbm2018Source.h.

◆ GetTsCount()

UInt_t CbmMcbm2018Source::GetTsCount ( )
inline

Definition at line 78 of file CbmMcbm2018Source.h.

References fTSCounter.

◆ Init()

Bool_t CbmMcbm2018Source::Init ( )

Initialize the Multisubscriber (This restores the original behavior after modifications needed to make the MQ version

Build list of unpackers without multiples from unpacker dealing with 2 or more detectors

Prepare output of TS meta-data

Single spill or spills range unpacking => Obtain the start and stop TS indices for the TS loop from user supplied vectors => Three possibilities linked to output of CbmMcbmSpillFindAlgo, choice controlled by fuFlagSpillStart

  • Beginning of the spill break
  • Middle of the spill break
  • End of the spill break

0 = Break begin

1 = Break middle

2 = Break end

Definition at line 60 of file CbmMcbm2018Source.cxx.

References fbWriteOutput, fDirName, fFileName, fHistoMissedTS, fHistoMissedTSEvo, fHost, fInputFileList, fiUnpSpillIdxStart, fiUnpSpillIdxStop, fSource, fTimeSliceMetaDataArray, fuFlagSpillStart, fUnpackers, fUnpackersToRun, fuSpillBegTs, fuSpillEndTs, fuSubscriberHwm, fvuSpillBreakBegTs, fvuSpillBreakEndTs, and fvuSpillBreakMidTs.

◆ InitUnpackers()

Bool_t CbmMcbm2018Source::InitUnpackers ( )
virtual

Definition at line 200 of file CbmMcbm2018Source.cxx.

References fUnpackersToRun.

◆ LoadTsListSpillBreakBegin()

void CbmMcbm2018Source::LoadTsListSpillBreakBegin ( std::vector< ULong64_t > vTsBeg)
inline

Definition at line 97 of file CbmMcbm2018Source.h.

References fvuSpillBreakBegTs.

◆ LoadTsListSpillBreakEnd()

void CbmMcbm2018Source::LoadTsListSpillBreakEnd ( std::vector< ULong64_t > vTsEnd)
inline

Definition at line 101 of file CbmMcbm2018Source.h.

References fvuSpillBreakEndTs.

◆ LoadTsListSpillBreakMiddle()

void CbmMcbm2018Source::LoadTsListSpillBreakMiddle ( std::vector< ULong64_t > vTsMid)
inline

Definition at line 105 of file CbmMcbm2018Source.h.

References fvuSpillBreakMidTs.

◆ operator=()

CbmMcbm2018Source & CbmMcbm2018Source::operator= ( const CbmMcbm2018Source & )
delete

◆ PrintMicroSliceDescriptor()

void CbmMcbm2018Source::PrintMicroSliceDescriptor ( const fles::MicrosliceDescriptor & mdsc)
private

Definition at line 229 of file CbmMcbm2018Source.cxx.

◆ ReadEvent()

Int_t CbmMcbm2018Source::ReadEvent ( UInt_t )

Definition at line 220 of file CbmMcbm2018Source.cxx.

References FillBuffer().

◆ ReInitUnpackers()

Bool_t CbmMcbm2018Source::ReInitUnpackers ( )
virtual

Definition at line 210 of file CbmMcbm2018Source.cxx.

References fUnpackersToRun.

◆ Reset()

void CbmMcbm2018Source::Reset ( )

Definition at line 265 of file CbmMcbm2018Source.cxx.

References fTimeSliceMetaDataArray, and fUnpackers.

◆ SetDataReductionMuch()

void CbmMcbm2018Source::SetDataReductionMuch ( UInt_t uTsReduction = 15)
inline

Definition at line 81 of file CbmMcbm2018Source.h.

References fuTsReduction.

◆ SetFileName()

void CbmMcbm2018Source::SetFileName ( TString name)
inline

Definition at line 63 of file CbmMcbm2018Source.h.

References fFileName, and fInputFileList.

◆ SetHostName()

void CbmMcbm2018Source::SetHostName ( TString name)
inline

Definition at line 69 of file CbmMcbm2018Source.h.

References fHost.

◆ SetInputDir()

void CbmMcbm2018Source::SetInputDir ( TString name)
inline

Definition at line 68 of file CbmMcbm2018Source.h.

References fDirName.

◆ SetParUnpackers()

void CbmMcbm2018Source::SetParUnpackers ( )
virtual

Definition at line 192 of file CbmMcbm2018Source.cxx.

References fUnpackersToRun.

◆ SetSubscriberHwm()

void CbmMcbm2018Source::SetSubscriberHwm ( UInt_t val = 1)
inline

Definition at line 110 of file CbmMcbm2018Source.h.

References fuSubscriberHwm.

◆ SetWriteOutputFlag()

void CbmMcbm2018Source::SetWriteOutputFlag ( Bool_t bFlagIn)
inline

Definition at line 112 of file CbmMcbm2018Source.h.

References fbWriteOutput.

◆ SpecifyRunId()

virtual Bool_t CbmMcbm2018Source::SpecifyRunId ( )
inlinevirtual

Definition at line 58 of file CbmMcbm2018Source.h.

◆ UnpackSelectSpills()

void CbmMcbm2018Source::UnpackSelectSpills ( Int_t iSpillIdxStart,
Int_t iSpillIdxStop,
UInt_t uSpillStart = 1 )
inline

Definition at line 90 of file CbmMcbm2018Source.h.

References fiUnpSpillIdxStart, fiUnpSpillIdxStop, and fuFlagSpillStart.

◆ UnpackSingleSpill()

void CbmMcbm2018Source::UnpackSingleSpill ( Int_t iSpillIdx,
UInt_t uSpillStart = 1 )
inline

Definition at line 83 of file CbmMcbm2018Source.h.

References fiUnpSpillIdxStart, fiUnpSpillIdxStop, and fuFlagSpillStart.

Member Data Documentation

◆ fbWriteOutput

Bool_t CbmMcbm2018Source::fbWriteOutput
private

Output ClonesArray.

Definition at line 157 of file CbmMcbm2018Source.h.

Referenced by Init(), and SetWriteOutputFlag().

◆ fDirName

TString CbmMcbm2018Source::fDirName
private

Definition at line 116 of file CbmMcbm2018Source.h.

Referenced by Init(), and SetInputDir().

◆ fFileName

TString CbmMcbm2018Source::fFileName
private

Definition at line 115 of file CbmMcbm2018Source.h.

Referenced by Init(), and SetFileName().

◆ fHistoMissedTS

TH1I* CbmMcbm2018Source::fHistoMissedTS
private

Definition at line 131 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and Init().

◆ fHistoMissedTSEvo

TProfile* CbmMcbm2018Source::fHistoMissedTSEvo
private

Definition at line 132 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and Init().

◆ fHost

TString CbmMcbm2018Source::fHost
private

Definition at line 118 of file CbmMcbm2018Source.h.

Referenced by Init(), and SetHostName().

◆ fInputFileList

TList CbmMcbm2018Source::fInputFileList
private

List of input files.

Definition at line 117 of file CbmMcbm2018Source.h.

Referenced by AddFile(), Init(), and SetFileName().

◆ fiUnpSpillIdxStart

Int_t CbmMcbm2018Source::fiUnpSpillIdxStart = -1
private

Definition at line 137 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), Init(), UnpackSelectSpills(), and UnpackSingleSpill().

◆ fiUnpSpillIdxStop

Int_t CbmMcbm2018Source::fiUnpSpillIdxStop = -1
private

>= 0 means unpack only from this spill

Definition at line 138 of file CbmMcbm2018Source.h.

Referenced by Init(), UnpackSelectSpills(), and UnpackSingleSpill().

◆ fNofTSSinceLastTS

Int_t CbmMcbm2018Source::fNofTSSinceLastTS
private

Definition at line 133 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and GetNofTSSinceLastTS().

◆ fSource

std::unique_ptr<fles::TimesliceSource> CbmMcbm2018Source::fSource
private

Definition at line 147 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and Init().

◆ fTimer

TStopwatch CbmMcbm2018Source::fTimer
private

Definition at line 129 of file CbmMcbm2018Source.h.

◆ fTimeSliceMetaDataArray

TClonesArray* CbmMcbm2018Source::fTimeSliceMetaDataArray
private

If ON the output TClonesArray of meta-data is written to disk.

Definition at line 158 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), Init(), and Reset().

◆ fTSCounter

UInt_t CbmMcbm2018Source::fTSCounter
private

Definition at line 126 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and GetTsCount().

◆ fTSLength

ULong64_t CbmMcbm2018Source::fTSLength = 0
private

Definition at line 127 of file CbmMcbm2018Source.h.

Referenced by FillBuffer().

◆ fTSNumber

UInt_t CbmMcbm2018Source::fTSNumber
private

List of all unpackers for which at least one matching container was found.

Definition at line 125 of file CbmMcbm2018Source.h.

Referenced by FillBuffer().

◆ fTSOverlappLength

ULong64_t CbmMcbm2018Source::fTSOverlappLength = 0
private

Definition at line 128 of file CbmMcbm2018Source.h.

Referenced by FillBuffer().

◆ fuFlagSpillStart

UInt_t CbmMcbm2018Source::fuFlagSpillStart = 0
private

>= 0 means unpack only up to this spill (included)

Definition at line 139 of file CbmMcbm2018Source.h.

Referenced by Init(), UnpackSelectSpills(), and UnpackSingleSpill().

◆ fUnpackers

std::multimap<Int_t, CbmMcbmUnpack*> CbmMcbm2018Source::fUnpackers
private

Definition at line 121 of file CbmMcbm2018Source.h.

Referenced by AddUnpacker(), FillBuffer(), Init(), and Reset().

◆ fUnpackersToRun

std::unordered_set<CbmMcbmUnpack*> CbmMcbm2018Source::fUnpackersToRun
private

List pairs of system ID and unpacker pointer (unpacker can appear multiple times)

Definition at line 123 of file CbmMcbm2018Source.h.

Referenced by Close(), FillBuffer(), Init(), InitUnpackers(), ReInitUnpackers(), and SetParUnpackers().

◆ fuSpillBegTs

UInt_t CbmMcbm2018Source::fuSpillBegTs = 0
private

0 = Break begin, 1 = Break middle, 2 = Break end

Definition at line 140 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and Init().

◆ fuSpillEndTs

UInt_t CbmMcbm2018Source::fuSpillEndTs = 0
private

Definition at line 141 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and Init().

◆ fuSubscriberHwm

UInt_t CbmMcbm2018Source::fuSubscriberHwm
private

Definition at line 149 of file CbmMcbm2018Source.h.

Referenced by Init(), and SetSubscriberHwm().

◆ fuTsReduction

UInt_t CbmMcbm2018Source::fuTsReduction
private

Definition at line 135 of file CbmMcbm2018Source.h.

Referenced by FillBuffer(), and SetDataReductionMuch().

◆ fvuSpillBreakBegTs

std::vector<ULong64_t> CbmMcbm2018Source::fvuSpillBreakBegTs = {}
private

Definition at line 143 of file CbmMcbm2018Source.h.

Referenced by Init(), and LoadTsListSpillBreakBegin().

◆ fvuSpillBreakEndTs

std::vector<ULong64_t> CbmMcbm2018Source::fvuSpillBreakEndTs = {}
private

Definition at line 144 of file CbmMcbm2018Source.h.

Referenced by Init(), and LoadTsListSpillBreakEnd().

◆ fvuSpillBreakMidTs

std::vector<ULong64_t> CbmMcbm2018Source::fvuSpillBreakMidTs = {}
private

Definition at line 145 of file CbmMcbm2018Source.h.

Referenced by Init(), and LoadTsListSpillBreakMiddle().


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