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

Main steering class for unpacking in cbmroot. More...

#include <CbmRecoUnpack.h>

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

Public Member Functions

 CbmRecoUnpack ()
 Constructor.
 
 ~CbmRecoUnpack ()
 Destructor.
 
 CbmRecoUnpack (const CbmRecoUnpack &)=delete
 Copy constructor - not implemented.
 
CbmRecoUnpackoperator= (const CbmRecoUnpack &)=delete
 Assignment operator - not implemented.
 
void Finish ()
 Actions at the end of the run.
 
Bool_t Init ()
 Initialisation.
 
void Reset ()
 Clear the output vectors as preparation of the next timeslice. Called via FairSource::Reset()
 
void SetDebugPrintout (bool value=true)
 Set the Debug Printout Flag.
 
void SetDoPerfProfiling (bool value=true)
 (De)Activate the performance profiling based on histograms
 
void SetDoPerfProfilingPerTs (bool value=true)
 (De)Activate the performance profiling based on histograms for each TS
 
void SetPublishProfMoni (bool value=true, std::string sUriMonitor="", bool useProcTime=false, std::string sJobId="local")
 (De)Activate the publication of performance profiling data to monitoring DB
 
void SetOutputFilename (std::string value)
 Set the performance profiling Output Filename.
 
void SetTimeSorting (bool bIn=true)
 Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.
 
void AddSpillFilter (std::string sAccEvtTimingFileIn, double_t dWinStart=-1000.0, double_t dWinStop=4500.0, int32_t iSpillStartDelay=28400, uint64_t ulTsDurationNs=128000000, bool bMoniFindPeak=false)
 Enable filtering of the digis using a user define window around the spill start. Requires a full time sorting.
 
void SetMonitoringOnly (bool bIn=true)
 Enable/disable the data output. If On, data unpacked and monitored but neither sorted nor written to disk.
 
void SetUnpackConfig (std::shared_ptr< CbmMuchUnpackConfig > config)
 Set the Much Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmPsdUnpackConfig > config)
 Set the Psd Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmRichUnpackConfig > config)
 Set the Rich Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmStsUnpackConfig > config)
 Set the Sts Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTofUnpackConfig > config)
 Set the Tof Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTrdUnpackConfig > config)
 Set the Trd Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmTrdUnpackFaspConfig > config)
 Set the Trd2D Unpack Config.
 
void SetUnpackConfig (std::shared_ptr< CbmBmonUnpackConfig > config)
 Set the Bmon Unpack Config.
 
void Unpack (std::unique_ptr< fles::Timeslice > ts)
 Trigger the unpacking procedure.
 

Private Types

using Subsystem = fles::Subsystem
 

Private Member Functions

void WriteHistograms ()
 Open special output file and save eventual performance monitoring histograms into it.
 
void performanceProfiling ()
 Run the performance profiling based on the fTimeMap and fDataSizeMap members.
 
void performanceProfilingPerTs ()
 Run the performance profiling for a single TS based on the fTimeMapPerTs and fDataSizeMapPerTs members.
 
void initPerformanceMaps (Subsystem subsystem, std::string name)
 Init the performance profiling maps for a given unpacker.
 
template<class TConfig>
void RegisterOutputs (FairRootManager *ioman, std::shared_ptr< TConfig > config)
 
virtual Bool_t initParContainers (std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > *reqparvec)
 Initialise the parameter containers requested by the algorithm.
 
template<typename TVecobj>
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type timesort (std::vector< TVecobj > *)
 Sort a vector timewise vector type has to provide GetTime()
 
template<typename TVecobj>
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type timesort (std::vector< TVecobj > *)
 
template<typename TVecobj>
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type timesort (std::vector< TVecobj > *vec=nullptr)
 
template<class TConfig, class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
size_t unpack (const Subsystem subsystem, const fles::Timeslice *ts, uint16_t icomp, TConfig config, std::vector< TOptOutA > *optouttargetvecA=nullptr, std::vector< TOptOutB > *optouttargetvecB=nullptr)
 Template for the unpacking call of a given algorithm.
 
void InitSpillFilter ()
 Digi time relative to spill stop, per detector.
 
void initSpillFilterMonitoring (Subsystem subsystem, std::string name)
 Init the Spill filter monitoring histograms for a given system.
 
template<typename TVecobj>
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type SpillFilter (uint64_t ulTsStartNs, const Subsystem subsystem, std::vector< TVecobj > *)
 Filter a vector timewise relative to spill start. Vector type has to provide GetTime()
 
template<typename TVecobj>
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type SpillFilter (uint64_t ulTsStartNs, const Subsystem subsystem, std::vector< TVecobj > *)
 
template<typename TVecobj>
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type SpillFilter (uint64_t ulTsStartNs, const Subsystem subsystem, std::vector< TVecobj > *vec=nullptr)
 
 ClassDef (CbmRecoUnpack, 4)
 

Private Attributes

bool fDoDebugPrints = false
 Flag if extended debug output is to be printed or not.
 
bool fDoPerfProf = false
 Flag if performance profiling should be activated or not.
 
bool fDoPerfProfPerTs = false
 Flag if performance profiling per TS should be activated or not.
 
bool fPublishProfMoni = false
 Flag if performance profiling data should be published to monitoring DB.
 
std::string fUriPublishProfMoni = "influx1:localhost:8086:monitoring_tests"
 URI (type:hostname:port:db_name) for optional connection to monitoring DB.
 
bool fPubMoniProcTime = true
 Flag if perf data should be published to moni DB using data time (false) or processing time (true).
 
std::map< Subsystem, std::pair< std::string, size_t > > fNameMap = {}
 Map to store a name for the unpackers and the processed amount of digis, key = Subsystem.
 
std::map< Subsystem, std::pair< double, double > > fTimeMap = {}
 Map to store the cpu and wall time, key = Subsystem.
 
std::map< Subsystem, std::pair< double, double > > fDataSizeMap = {}
 Map to store the in and out data amount, key = Subsystem.
 
std::map< Subsystem, std::pair< std::string, size_t > > fNameMapPerTs = {}
 Map to store a name for the unpackers and the processed amount of digis for a single TS, key = Subsystem.
 
std::map< Subsystem, std::pair< double, double > > fTimeMapPerTs = {}
 Map to store the cpu and wall time for a single TS, key = Subsystem.
 
std::map< Subsystem, std::pair< double, double > > fDataSizeMapPerTs = {}
 Map to store the in and out data amount for a single TS, key = Subsystem.
 
TH1 * hProducedDigis = nullptr
 
TH1 * hSpeedPerf = nullptr
 
TH1 * hDataPerf = nullptr
 
TStopwatch * fTimerTs = nullptr
 
TH1 * fhCpuTimePerTs = nullptr
 
TH1 * fhRealTimePerTs = nullptr
 Processing time per TS.
 
TH1 * fhCpuTimePerTsHist = nullptr
 Processing time per TS.
 
TH1 * fhRealTimePerTsHist = nullptr
 Plotting time per TS.
 
std::map< Subsystem, TH1 * > fvhInpRatioPerTs = {}
 Plotting time per TS.
 
std::map< Subsystem, TH1 * > fvhOutRatioPerTs = {}
 ratio of system data in total input size vs TS in run
 
std::map< Subsystem, TH1 * > fvhUnpRatioPerTs = {}
 ratio of system digi size in total output size vs TS in run
 
TH1 * fhUnpackingRatioPerTs = nullptr
 ratio of selected digi vs TS in run
 
std::unique_ptr< cbm::Monitor > fMonitor
 ratio of total unpacked size to input size vs TS in run
 
std::string fMoniCurrrentHostname = ""
 The application's monitoring object.
 
std::string fMoniJobId = ""
 
std::chrono::system_clock::time_point fMonitorSecCurrentTs = std::chrono::system_clock::time_point()
 
std::map< Subsystem, std::pair< double, double > > fDataSizeMapCurrSec = {}
 
CbmTimeSlicefTimeSlice
 CbmTimeslice object, mostly redundant with the TsEventHeader, needed by L1 to switch timeslice mode.
 
std::shared_ptr< CbmMuchUnpackConfigfMuchConfig = nullptr
 Current time slice.
 
std::shared_ptr< CbmPsdUnpackConfigfPsdConfig = nullptr
 Configuration of the Psd unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmRichUnpackConfigfRichConfig = nullptr
 Configuration of the Rich unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmStsUnpackConfigfStsConfig = nullptr
 Configuration of the Sts unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmTofUnpackConfigfTofConfig = nullptr
 Configuration of the Tof unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmTrdUnpackConfigfTrd1DConfig = nullptr
 Configuration of the Trd unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmTrdUnpackFaspConfigfTrd2DConfig = nullptr
 Configuration of the Trd unpacker. Provides the configured algorithm.
 
std::shared_ptr< CbmBmonUnpackConfigfBmonConfig = nullptr
 Configuration of the Bmon unpacker. Provides the configured algorithm.
 
CbmTsEventHeaderfCbmTsEventHeader = nullptr
 Pointer to the Timeslice start time used to write it to the output tree.
 
std::string fOutfilename = "CbmRecoUnpack.perf.root"
 Name of the performance profiling output file.
 
bool bOutputFullTimeSorting = false
 Flag to Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.
 
bool bMonitoringOnly = false
 Flag to Enable/disable the output completely.
 
bool bSpillFilter = false
 Flag to Enable/disable digi filtering relative to spill start event.
 
std::string sAccEvtTimingFile = ""
 Full path to a text file containing the raw Accelerator Event timings.
 
double_t dSpillFilterWinStart = 0.0
 Start of time window for digi filtering relative to spill start event.
 
double_t dSpillFilterWinStop = 0.0
 End of time window for digi filtering relative to spill start event.
 
int32_t iSpillFilterStartDelay = 0
 Delay of the real start of the spill relative to Spill Start Event (negative if Event is late one)
 
uint64_t ulSpillFilterTsDurationNs = 128000000
 Duration of TS in nanoseconds (mCBM default = 128 ms = 128 000 000 ns)
 
bool bSpillFilterMoniFindPeak = false
 Flag to Enable/disable monitoring histos with long range for digi filtering relative to spill start event.
 
std::vector< AccTimingEventvAccEvtsSpillStart = {}
 Storage of spill start accelerator events (Either KickerStart or ExtractionStartSlow)
 
std::vector< AccTimingEventvAccEvtsSpillEnd = {}
 Storage of spill end accelerator events (ExtractionEnd or ExtractionSlowStop)
 
std::vector< AccTimingEvent >::iterator itSpillStart = vAccEvtsSpillStart.end()
 Current spill start Event.
 
std::vector< AccTimingEvent >::iterator itSpillStop = vAccEvtsSpillEnd.end()
 Current spill stop Event.
 
uint32_t uSpillIndex = 0
 Index of the current spill in current run.
 
TH1 * fhDigiSpillStartDist = nullptr
 Monitoring histograms for the spill digi filter.
 
TH1 * fhDigiSpillStopDist = nullptr
 Digi time relative to spill start.
 
TH2 * fhDigiSpillFilterStart = nullptr
 Digi time relative to spill stop.
 
TH2 * fhDigiSpillFilterStop = nullptr
 Digi time relative to spill start.
 
std::map< Subsystem, TH1 * > fhDigiSpillStartDistPerDet = {}
 Digi time relative to spill stop.
 
std::map< Subsystem, TH1 * > fhDigiSpillStopDistPerDet = {}
 Digi time relative to spill start, per detector.
 
std::map< Subsystem, TH2 * > fhDigiSpillFilterStartPerDet = {}
 Digi time relative to spill stop, per detector.
 
std::map< Subsystem, TH2 * > fhDigiSpillFilterStopPerDet = {}
 Digi time relative to spill start, per detector.
 

Detailed Description

Main steering class for unpacking in cbmroot.

Author
Volker Friese
Since
2 June 2021

This class runs the unpackers for each input time-slice component.

Definition at line 60 of file CbmRecoUnpack.h.

Member Typedef Documentation

◆ Subsystem

using CbmRecoUnpack::Subsystem = fles::Subsystem
private

Definition at line 206 of file CbmRecoUnpack.h.

Constructor & Destructor Documentation

◆ CbmRecoUnpack() [1/2]

CbmRecoUnpack::CbmRecoUnpack ( )

Constructor.

Definition at line 41 of file CbmRecoUnpack.cxx.

Referenced by CbmRecoUnpack(), ClassDef(), and operator=().

◆ ~CbmRecoUnpack()

CbmRecoUnpack::~CbmRecoUnpack ( )

Destructor.

Need to stay in the cxx file due to destruction of Monitor unique pointer

Definition at line 45 of file CbmRecoUnpack.cxx.

◆ CbmRecoUnpack() [2/2]

CbmRecoUnpack::CbmRecoUnpack ( const CbmRecoUnpack & )
delete

Copy constructor - not implemented.

References CbmRecoUnpack().

Member Function Documentation

◆ AddSpillFilter()

void CbmRecoUnpack::AddSpillFilter ( std::string sAccEvtTimingFileIn,
double_t dWinStart = -1000.0,
double_t dWinStop = 4500.0,
int32_t iSpillStartDelay = 28400,
uint64_t ulTsDurationNs = 128000000,
bool bMoniFindPeak = false )
inline

Enable filtering of the digis using a user define window around the spill start. Requires a full time sorting.

Parameters
sAccEvtTimingFileInFull path to the text file containing the Accelerator Timing Events
dWinStartStart time of filtering window relative to Spill Start (Kicker/Extraction start event)
dWinStartStop time of filtering window relative to Spill Start (Kicker/Extraction start event)
iSpillStartDelayDelay of real start of the spill relative to SpillStart Event
ulTsDurationNsDuration of TS in nanoseconds (mCBM default = 128 ms = 128 000 000 ns)
bMoniFindPeakFlag enabling extended window for moni histos to find correlation peak to Start Event

Definition at line 158 of file CbmRecoUnpack.h.

References bOutputFullTimeSorting, bSpillFilter, bSpillFilterMoniFindPeak, dSpillFilterWinStart, dSpillFilterWinStop, iSpillFilterStartDelay, sAccEvtTimingFile, and ulSpillFilterTsDurationNs.

◆ ClassDef()

CbmRecoUnpack::ClassDef ( CbmRecoUnpack ,
4  )
private

References CbmRecoUnpack().

◆ Finish()

◆ Init()

Bool_t CbmRecoUnpack::Init ( )

Initialisation.

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Needed to change the Parameter file name before it is used!!!

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Framework bound work = kept in this Task

Needed to change the Parameter file name before it is used!!!

Framework bound work = kept in this Task

Timer for complete processing and histograming perTS

Definition at line 97 of file CbmRecoUnpack.cxx.

References bSpillFilter, fBmonConfig, fCbmTsEventHeader, fDoPerfProfPerTs, fhCpuTimePerTs, fhCpuTimePerTsHist, fhRealTimePerTs, fhRealTimePerTsHist, fhUnpackingRatioPerTs, fMoniCurrrentHostname, fMoniJobId, fMonitor, fMuchConfig, fPsdConfig, fPublishProfMoni, fRichConfig, fStsConfig, fTimerTs, fTimeSlice, fTofConfig, fTrd1DConfig, fTrd2DConfig, fUriPublishProfMoni, initParContainers(), initPerformanceMaps(), InitSpillFilter(), initSpillFilterMonitoring(), and RegisterOutputs().

◆ initParContainers()

virtual Bool_t CbmRecoUnpack::initParContainers ( std::vector< std::pair< std::string, std::shared_ptr< FairParGenericSet > > > * reqparvec)
inlineprivatevirtual

Initialise the parameter containers requested by the algorithm.

Returns
Bool_t initOk

Definition at line 313 of file CbmRecoUnpack.h.

Referenced by Init().

◆ initPerformanceMaps()

void CbmRecoUnpack::initPerformanceMaps ( Subsystem subsystem,
std::string name )
private

Init the performance profiling maps for a given unpacker.

Parameters
subsystemSubsystem as assigned during readout
nameName of the unpacker

Definition at line 365 of file CbmRecoUnpack.cxx.

References fDataSizeMap, fDataSizeMapCurrSec, fDataSizeMapPerTs, fDoPerfProf, fDoPerfProfPerTs, fNameMap, fNameMapPerTs, fPublishProfMoni, fTimeMap, fTimeMapPerTs, fvhInpRatioPerTs, fvhOutRatioPerTs, and fvhUnpRatioPerTs.

Referenced by Init().

◆ InitSpillFilter()

void CbmRecoUnpack::InitSpillFilter ( )
private

Digi time relative to spill stop, per detector.

Init the Spill filter: input file loading and general spill monitoring histograms

Returns
void No return but sets bSpillFilter to false (disabling) if init failed

Open File

Read it line by line

Convert each line to an event, if not empty

Definition at line 263 of file CbmRecoUnpack.cxx.

References bSpillFilter, bSpillFilterMoniFindPeak, dSpillFilterWinStart, dSpillFilterWinStop, fhDigiSpillFilterStart, fhDigiSpillFilterStop, fhDigiSpillStartDist, fhDigiSpillStopDist, AccTimingEvent::IsExtractionEnd(), AccTimingEvent::IsExtractionStart(), AccTimingEvent::IsExtractionStopSlow(), AccTimingEvent::IsKickerStart(), itSpillStart, itSpillStop, sAccEvtTimingFile, vAccEvtsSpillEnd, and vAccEvtsSpillStart.

Referenced by Init().

◆ initSpillFilterMonitoring()

void CbmRecoUnpack::initSpillFilterMonitoring ( Subsystem subsystem,
std::string name )
private

Init the Spill filter monitoring histograms for a given system.

Parameters
subsystemSubsystem as assigned during readout
nameName of the unpacker

Definition at line 326 of file CbmRecoUnpack.cxx.

References bSpillFilterMoniFindPeak, dSpillFilterWinStart, dSpillFilterWinStop, fhDigiSpillFilterStartPerDet, fhDigiSpillFilterStopPerDet, fhDigiSpillStartDistPerDet, and fhDigiSpillStopDistPerDet.

Referenced by Init().

◆ operator=()

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

Assignment operator - not implemented.

References CbmRecoUnpack().

◆ performanceProfiling()

void CbmRecoUnpack::performanceProfiling ( )
private

Run the performance profiling based on the fTimeMap and fDataSizeMap members.

Definition at line 401 of file CbmRecoUnpack.cxx.

References fDataSizeMap, fNameMap, fTimeMap, hDataPerf, hProducedDigis, and hSpeedPerf.

Referenced by Finish().

◆ performanceProfilingPerTs()

void CbmRecoUnpack::performanceProfilingPerTs ( )
private

Run the performance profiling for a single TS based on the fTimeMapPerTs and fDataSizeMapPerTs members.

Speed performance

Data performance

Definition at line 457 of file CbmRecoUnpack.cxx.

References fCbmTsEventHeader, fDataSizeMapCurrSec, fDataSizeMapPerTs, fhCpuTimePerTs, fhCpuTimePerTsHist, fhRealTimePerTs, fhRealTimePerTsHist, fhUnpackingRatioPerTs, fMoniCurrrentHostname, fMoniJobId, fMonitor, fMonitorSecCurrentTs, fNameMapPerTs, fPublishProfMoni, fPubMoniProcTime, fTimeMapPerTs, fTimerTs, fvhInpRatioPerTs, fvhOutRatioPerTs, and fvhUnpRatioPerTs.

Referenced by Unpack().

◆ RegisterOutputs()

template<class TConfig>
void CbmRecoUnpack::RegisterOutputs ( FairRootManager * ioman,
std::shared_ptr< TConfig > config )
inlineprivate

Alternative which compiles and run but forces to keep a Fairroot dependency in the Config template

Definition at line 282 of file CbmRecoUnpack.h.

Referenced by Init().

◆ Reset()

void CbmRecoUnpack::Reset ( )

Clear the output vectors as preparation of the next timeslice. Called via FairSource::Reset()

Definition at line 595 of file CbmRecoUnpack.cxx.

References fBmonConfig, fCbmTsEventHeader, fMuchConfig, fPsdConfig, fRichConfig, fStsConfig, fTimeSlice, fTofConfig, fTrd1DConfig, and fTrd2DConfig.

◆ SetDebugPrintout()

void CbmRecoUnpack::SetDebugPrintout ( bool value = true)
inline

Set the Debug Printout Flag.

Parameters
value

Definition at line 90 of file CbmRecoUnpack.h.

References fDoDebugPrints.

◆ SetDoPerfProfiling()

void CbmRecoUnpack::SetDoPerfProfiling ( bool value = true)
inline

(De)Activate the performance profiling based on histograms

Parameters
value

Definition at line 97 of file CbmRecoUnpack.h.

References fDoPerfProf.

◆ SetDoPerfProfilingPerTs()

void CbmRecoUnpack::SetDoPerfProfilingPerTs ( bool value = true)
inline

(De)Activate the performance profiling based on histograms for each TS

Parameters
value

Definition at line 104 of file CbmRecoUnpack.h.

References fDoPerfProf, and fDoPerfProfPerTs.

◆ SetMonitoringOnly()

void CbmRecoUnpack::SetMonitoringOnly ( bool bIn = true)
inline

Enable/disable the data output. If On, data unpacked and monitored but neither sorted nor written to disk.

Parameters
value

Definition at line 176 of file CbmRecoUnpack.h.

References bMonitoringOnly.

◆ SetOutputFilename()

void CbmRecoUnpack::SetOutputFilename ( std::string value)
inline

Set the performance profiling Output Filename.

Parameters
value

Definition at line 135 of file CbmRecoUnpack.h.

References fOutfilename.

◆ SetPublishProfMoni()

void CbmRecoUnpack::SetPublishProfMoni ( bool value = true,
std::string sUriMonitor = "",
bool useProcTime = false,
std::string sJobId = "local" )
inline

(De)Activate the publication of performance profiling data to monitoring DB

Parameters
value

Definition at line 115 of file CbmRecoUnpack.h.

References fDoPerfProf, fDoPerfProfPerTs, fMoniJobId, fPublishProfMoni, fPubMoniProcTime, and fUriPublishProfMoni.

◆ SetTimeSorting()

void CbmRecoUnpack::SetTimeSorting ( bool bIn = true)
inline

Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.

Parameters
value

Definition at line 145 of file CbmRecoUnpack.h.

References bOutputFullTimeSorting.

◆ SetUnpackConfig() [1/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmBmonUnpackConfig > config)
inline

Set the Bmon Unpack Config.

Parameters
config

Definition at line 200 of file CbmRecoUnpack.h.

References fBmonConfig.

◆ SetUnpackConfig() [2/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmMuchUnpackConfig > config)
inline

Set the Much Unpack Config.

Parameters
config

Definition at line 179 of file CbmRecoUnpack.h.

References fMuchConfig.

◆ SetUnpackConfig() [3/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmPsdUnpackConfig > config)
inline

Set the Psd Unpack Config.

Parameters
config

Definition at line 182 of file CbmRecoUnpack.h.

References fPsdConfig.

◆ SetUnpackConfig() [4/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmRichUnpackConfig > config)
inline

Set the Rich Unpack Config.

Parameters
config

Definition at line 185 of file CbmRecoUnpack.h.

References fRichConfig.

◆ SetUnpackConfig() [5/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmStsUnpackConfig > config)
inline

Set the Sts Unpack Config.

Parameters
config

Definition at line 188 of file CbmRecoUnpack.h.

References fStsConfig.

◆ SetUnpackConfig() [6/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmTofUnpackConfig > config)
inline

Set the Tof Unpack Config.

Parameters
config

Definition at line 191 of file CbmRecoUnpack.h.

References fTofConfig.

◆ SetUnpackConfig() [7/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmTrdUnpackConfig > config)
inline

Set the Trd Unpack Config.

Parameters
config

Definition at line 194 of file CbmRecoUnpack.h.

References fTrd1DConfig.

◆ SetUnpackConfig() [8/8]

void CbmRecoUnpack::SetUnpackConfig ( std::shared_ptr< CbmTrdUnpackFaspConfig > config)
inline

Set the Trd2D Unpack Config.

Parameters
config

Definition at line 197 of file CbmRecoUnpack.h.

References fTrd2DConfig.

◆ SpillFilter() [1/3]

template<typename TVecobj>
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type CbmRecoUnpack::SpillFilter ( uint64_t ulTsStartNs,
const Subsystem subsystem,
std::vector< TVecobj > *  )
inlineprivate

Filter a vector timewise relative to spill start. Vector type has to provide GetTime()

Definition at line 580 of file CbmRecoUnpack.h.

Referenced by Unpack().

◆ SpillFilter() [2/3]

template<typename TVecobj>
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmRecoUnpack::SpillFilter ( uint64_t ulTsStartNs,
const Subsystem subsystem,
std::vector< TVecobj > *  )
inlineprivate

Definition at line 588 of file CbmRecoUnpack.h.

◆ SpillFilter() [3/3]

template<typename TVecobj>
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmRecoUnpack::SpillFilter ( uint64_t ulTsStartNs,
const Subsystem subsystem,
std::vector< TVecobj > * vec = nullptr )
inlineprivate

hack due to 06/2024 data coming 28 us after the SpillStart Event ?!?!?

Erase first the part after end of the window, so at end of vector => in order to minimize amount of data which will be moved in next step !!!

Now erase the part before the start of the window, so at beginning of vector => this implies a move of all remaining data inside the filtering window !!!

Definition at line 597 of file CbmRecoUnpack.h.

References bSpillFilterMoniFindPeak, dSpillFilterWinStart, dSpillFilterWinStop, fhDigiSpillFilterStart, fhDigiSpillFilterStartPerDet, fhDigiSpillFilterStop, fhDigiSpillFilterStopPerDet, fhDigiSpillStartDist, fhDigiSpillStartDistPerDet, fhDigiSpillStopDist, fhDigiSpillStopDistPerDet, iSpillFilterStartDelay, itSpillStart, itSpillStop, ulSpillFilterTsDurationNs, and uSpillIndex.

◆ timesort() [1/3]

template<typename TVecobj>
std::enable_if< std::is_same< TVecobj, std::nullptr_t >::value==true, void >::type CbmRecoUnpack::timesort ( std::vector< TVecobj > * )
inlineprivate

Sort a vector timewise vector type has to provide GetTime()

Definition at line 338 of file CbmRecoUnpack.h.

Referenced by Unpack(), and unpack().

◆ timesort() [2/3]

template<typename TVecobj>
std::enable_if<!std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmRecoUnpack::timesort ( std::vector< TVecobj > * )
inlineprivate

Definition at line 346 of file CbmRecoUnpack.h.

◆ timesort() [3/3]

template<typename TVecobj>
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type CbmRecoUnpack::timesort ( std::vector< TVecobj > * vec = nullptr)
inlineprivate

Definition at line 355 of file CbmRecoUnpack.h.

◆ Unpack()

void CbmRecoUnpack::Unpack ( std::unique_ptr< fles::Timeslice > ts)

Trigger the unpacking procedure.

Start time for complete processing perTS

Time sort the output vectors of all unpackers present

Time sort the output vectors of all unpackers present

Search for first spill

Stop as soon as we find a spill start going "away" from TS start compared to previous one

Stop as soon as we find a spill start going "away" from TS start compared to previous one

Find the closest spill start to this TS (before/during/after) => Support for multiple spill start close to TS not planned!!!!

Definition at line 624 of file CbmRecoUnpack.cxx.

References bMonitoringOnly, bOutputFullTimeSorting, bSpillFilter, fBmonConfig, fCbmTsEventHeader, fDoDebugPrints, fDoPerfProfPerTs, fMuchConfig, fPsdConfig, fRichConfig, fStsConfig, fTimerTs, fTimeSlice, fTofConfig, fTrd1DConfig, fTrd2DConfig, itSpillStart, itSpillStop, performanceProfilingPerTs(), SpillFilter(), timesort(), unpack(), uSpillIndex, vAccEvtsSpillEnd, and vAccEvtsSpillStart.

◆ unpack()

template<class TConfig, class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
size_t CbmRecoUnpack::unpack ( const Subsystem subsystem,
const fles::Timeslice * ts,
uint16_t icomp,
TConfig config,
std::vector< TOptOutA > * optouttargetvecA = nullptr,
std::vector< TOptOutB > * optouttargetvecB = nullptr )
inlineprivate

Template for the unpacking call of a given algorithm.

Template Parameters
TAlgoAlgorithm to be called
TOutputOutput element types
TOptoutputsOptional output element types
Parameters
tsTimeslice
icompComponent number
algoAlgorithm to be used for this component
outtargetvecTarget vector for the output elements
optoutputvecsTarget vectors for optional outputs
Returns
std::pair<ndigis, std::pair<cputime, walltime>>

Definition at line 377 of file CbmRecoUnpack.h.

References bMonitoringOnly, bOutputFullTimeSorting, fDataSizeMap, fDataSizeMapPerTs, fDoPerfProf, fDoPerfProfPerTs, fNameMap, fNameMapPerTs, fTimeMap, fTimeMapPerTs, and timesort().

Referenced by Unpack().

◆ WriteHistograms()

void CbmRecoUnpack::WriteHistograms ( )
private

Open special output file and save eventual performance monitoring histograms into it.

Save old global file and folder pointer to avoid messing with FairRoot

(Re-)Create ROOT file to store the histos

FIXME: add subfolders?

Restore old global file and folder pointer to avoid messing with FairRoot

Definition at line 545 of file CbmRecoUnpack.cxx.

References bSpillFilter, fDoPerfProf, fDoPerfProfPerTs, fhCpuTimePerTs, fhCpuTimePerTsHist, fhDigiSpillFilterStart, fhDigiSpillFilterStartPerDet, fhDigiSpillFilterStop, fhDigiSpillFilterStopPerDet, fhDigiSpillStartDist, fhDigiSpillStartDistPerDet, fhDigiSpillStopDist, fhDigiSpillStopDistPerDet, fhRealTimePerTs, fhRealTimePerTsHist, fhUnpackingRatioPerTs, fOutfilename, fvhInpRatioPerTs, fvhOutRatioPerTs, fvhUnpRatioPerTs, hDataPerf, hProducedDigis, and hSpeedPerf.

Referenced by Finish().

Member Data Documentation

◆ bMonitoringOnly

bool CbmRecoUnpack::bMonitoringOnly = false
private

Flag to Enable/disable the output completely.

Definition at line 513 of file CbmRecoUnpack.h.

Referenced by SetMonitoringOnly(), Unpack(), and unpack().

◆ bOutputFullTimeSorting

bool CbmRecoUnpack::bOutputFullTimeSorting = false
private

Flag to Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.

Definition at line 510 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), SetTimeSorting(), Unpack(), and unpack().

◆ bSpillFilter

bool CbmRecoUnpack::bSpillFilter = false
private

Flag to Enable/disable digi filtering relative to spill start event.

Definition at line 516 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), Init(), InitSpillFilter(), Unpack(), and WriteHistograms().

◆ bSpillFilterMoniFindPeak

bool CbmRecoUnpack::bSpillFilterMoniFindPeak = false
private

Flag to Enable/disable monitoring histos with long range for digi filtering relative to spill start event.

Definition at line 535 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), InitSpillFilter(), initSpillFilterMonitoring(), and SpillFilter().

◆ dSpillFilterWinStart

double_t CbmRecoUnpack::dSpillFilterWinStart = 0.0
private

Start of time window for digi filtering relative to spill start event.

Definition at line 522 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), InitSpillFilter(), initSpillFilterMonitoring(), and SpillFilter().

◆ dSpillFilterWinStop

double_t CbmRecoUnpack::dSpillFilterWinStop = 0.0
private

End of time window for digi filtering relative to spill start event.

Definition at line 525 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), InitSpillFilter(), initSpillFilterMonitoring(), and SpillFilter().

◆ fBmonConfig

std::shared_ptr<CbmBmonUnpackConfig> CbmRecoUnpack::fBmonConfig = nullptr
private

Configuration of the Bmon unpacker. Provides the configured algorithm.

Definition at line 498 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fCbmTsEventHeader

CbmTsEventHeader* CbmRecoUnpack::fCbmTsEventHeader = nullptr
private

Pointer to the Timeslice start time used to write it to the output tree.

Remarks
since we hand this to the FairRootManager it also wants to delete it and we do not have to take care of deletion

Definition at line 504 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), Reset(), and Unpack().

◆ fDataSizeMap

std::map<Subsystem, std::pair<double, double> > CbmRecoUnpack::fDataSizeMap = {}
private

Map to store the in and out data amount, key = Subsystem.

Definition at line 233 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfiling(), and unpack().

◆ fDataSizeMapCurrSec

std::map<Subsystem, std::pair<double, double> > CbmRecoUnpack::fDataSizeMapCurrSec = {}
private

Definition at line 261 of file CbmRecoUnpack.h.

Referenced by Finish(), initPerformanceMaps(), and performanceProfilingPerTs().

◆ fDataSizeMapPerTs

std::map<Subsystem, std::pair<double, double> > CbmRecoUnpack::fDataSizeMapPerTs = {}
private

Map to store the in and out data amount for a single TS, key = Subsystem.

Definition at line 242 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and unpack().

◆ fDoDebugPrints

bool CbmRecoUnpack::fDoDebugPrints = false
private

Flag if extended debug output is to be printed or not.

Definition at line 209 of file CbmRecoUnpack.h.

Referenced by SetDebugPrintout(), and Unpack().

◆ fDoPerfProf

bool CbmRecoUnpack::fDoPerfProf = false
private

Flag if performance profiling should be activated or not.

Definition at line 212 of file CbmRecoUnpack.h.

Referenced by Finish(), initPerformanceMaps(), SetDoPerfProfiling(), SetDoPerfProfilingPerTs(), SetPublishProfMoni(), unpack(), and WriteHistograms().

◆ fDoPerfProfPerTs

bool CbmRecoUnpack::fDoPerfProfPerTs = false
private

Flag if performance profiling per TS should be activated or not.

Definition at line 215 of file CbmRecoUnpack.h.

Referenced by Init(), initPerformanceMaps(), SetDoPerfProfilingPerTs(), SetPublishProfMoni(), Unpack(), unpack(), and WriteHistograms().

◆ fhCpuTimePerTs

TH1* CbmRecoUnpack::fhCpuTimePerTs = nullptr
private

Definition at line 248 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().

◆ fhCpuTimePerTsHist

TH1* CbmRecoUnpack::fhCpuTimePerTsHist = nullptr
private

Processing time per TS.

Definition at line 250 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().

◆ fhDigiSpillFilterStart

TH2* CbmRecoUnpack::fhDigiSpillFilterStart = nullptr
private

Digi time relative to spill stop.

Definition at line 555 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillFilterStartPerDet

std::map<Subsystem, TH2*> CbmRecoUnpack::fhDigiSpillFilterStartPerDet = {}
private

Digi time relative to spill stop, per detector.

Definition at line 559 of file CbmRecoUnpack.h.

Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillFilterStop

TH2* CbmRecoUnpack::fhDigiSpillFilterStop = nullptr
private

Digi time relative to spill start.

Definition at line 556 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillFilterStopPerDet

std::map<Subsystem, TH2*> CbmRecoUnpack::fhDigiSpillFilterStopPerDet = {}
private

Digi time relative to spill start, per detector.

Definition at line 560 of file CbmRecoUnpack.h.

Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillStartDist

TH1* CbmRecoUnpack::fhDigiSpillStartDist = nullptr
private

Monitoring histograms for the spill digi filter.

Definition at line 553 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillStartDistPerDet

std::map<Subsystem, TH1*> CbmRecoUnpack::fhDigiSpillStartDistPerDet = {}
private

Digi time relative to spill stop.

Definition at line 557 of file CbmRecoUnpack.h.

Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillStopDist

TH1* CbmRecoUnpack::fhDigiSpillStopDist = nullptr
private

Digi time relative to spill start.

Definition at line 554 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().

◆ fhDigiSpillStopDistPerDet

std::map<Subsystem, TH1*> CbmRecoUnpack::fhDigiSpillStopDistPerDet = {}
private

Digi time relative to spill start, per detector.

Definition at line 558 of file CbmRecoUnpack.h.

Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().

◆ fhRealTimePerTs

TH1* CbmRecoUnpack::fhRealTimePerTs = nullptr
private

Processing time per TS.

Definition at line 249 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().

◆ fhRealTimePerTsHist

TH1* CbmRecoUnpack::fhRealTimePerTsHist = nullptr
private

Plotting time per TS.

Definition at line 251 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().

◆ fhUnpackingRatioPerTs

TH1* CbmRecoUnpack::fhUnpackingRatioPerTs = nullptr
private

ratio of selected digi vs TS in run

Definition at line 255 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().

◆ fMoniCurrrentHostname

std::string CbmRecoUnpack::fMoniCurrrentHostname = ""
private

The application's monitoring object.

Definition at line 258 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), and performanceProfilingPerTs().

◆ fMoniJobId

std::string CbmRecoUnpack::fMoniJobId = ""
private

Definition at line 259 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), performanceProfilingPerTs(), and SetPublishProfMoni().

◆ fMonitor

std::unique_ptr<cbm::Monitor> CbmRecoUnpack::fMonitor
private

ratio of total unpacked size to input size vs TS in run

Definition at line 257 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), and performanceProfilingPerTs().

◆ fMonitorSecCurrentTs

std::chrono::system_clock::time_point CbmRecoUnpack::fMonitorSecCurrentTs = std::chrono::system_clock::time_point()
private

Definition at line 260 of file CbmRecoUnpack.h.

Referenced by Finish(), and performanceProfilingPerTs().

◆ fMuchConfig

std::shared_ptr<CbmMuchUnpackConfig> CbmRecoUnpack::fMuchConfig = nullptr
private

Current time slice.

Configuration of the Much unpacker. Provides the configured algorithm

Definition at line 477 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fNameMap

std::map<Subsystem, std::pair<std::string, size_t> > CbmRecoUnpack::fNameMap = {}
private

Map to store a name for the unpackers and the processed amount of digis, key = Subsystem.

Definition at line 227 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfiling(), and unpack().

◆ fNameMapPerTs

std::map<Subsystem, std::pair<std::string, size_t> > CbmRecoUnpack::fNameMapPerTs = {}
private

Map to store a name for the unpackers and the processed amount of digis for a single TS, key = Subsystem.

Definition at line 236 of file CbmRecoUnpack.h.

Referenced by Finish(), initPerformanceMaps(), performanceProfilingPerTs(), and unpack().

◆ fOutfilename

std::string CbmRecoUnpack::fOutfilename = "CbmRecoUnpack.perf.root"
private

Name of the performance profiling output file.

Definition at line 507 of file CbmRecoUnpack.h.

Referenced by SetOutputFilename(), and WriteHistograms().

◆ fPsdConfig

std::shared_ptr<CbmPsdUnpackConfig> CbmRecoUnpack::fPsdConfig = nullptr
private

Configuration of the Psd unpacker. Provides the configured algorithm.

Definition at line 480 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fPublishProfMoni

bool CbmRecoUnpack::fPublishProfMoni = false
private

Flag if performance profiling data should be published to monitoring DB.

Definition at line 218 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), initPerformanceMaps(), performanceProfilingPerTs(), and SetPublishProfMoni().

◆ fPubMoniProcTime

bool CbmRecoUnpack::fPubMoniProcTime = true
private

Flag if perf data should be published to moni DB using data time (false) or processing time (true).

Definition at line 224 of file CbmRecoUnpack.h.

Referenced by Finish(), performanceProfilingPerTs(), and SetPublishProfMoni().

◆ fRichConfig

std::shared_ptr<CbmRichUnpackConfig> CbmRecoUnpack::fRichConfig = nullptr
private

Configuration of the Rich unpacker. Provides the configured algorithm.

Definition at line 483 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fStsConfig

std::shared_ptr<CbmStsUnpackConfig> CbmRecoUnpack::fStsConfig = nullptr
private

Configuration of the Sts unpacker. Provides the configured algorithm.

Definition at line 486 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fTimeMap

std::map<Subsystem, std::pair<double, double> > CbmRecoUnpack::fTimeMap = {}
private

Map to store the cpu and wall time, key = Subsystem.

Definition at line 230 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfiling(), and unpack().

◆ fTimeMapPerTs

std::map<Subsystem, std::pair<double, double> > CbmRecoUnpack::fTimeMapPerTs = {}
private

Map to store the cpu and wall time for a single TS, key = Subsystem.

Definition at line 239 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and unpack().

◆ fTimerTs

TStopwatch* CbmRecoUnpack::fTimerTs = nullptr
private

Definition at line 247 of file CbmRecoUnpack.h.

Referenced by Init(), performanceProfilingPerTs(), and Unpack().

◆ fTimeSlice

CbmTimeSlice* CbmRecoUnpack::fTimeSlice
private

CbmTimeslice object, mostly redundant with the TsEventHeader, needed by L1 to switch timeslice mode.

Definition at line 474 of file CbmRecoUnpack.h.

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

◆ fTofConfig

std::shared_ptr<CbmTofUnpackConfig> CbmRecoUnpack::fTofConfig = nullptr
private

Configuration of the Tof unpacker. Provides the configured algorithm.

Definition at line 489 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fTrd1DConfig

std::shared_ptr<CbmTrdUnpackConfig> CbmRecoUnpack::fTrd1DConfig = nullptr
private

Configuration of the Trd unpacker. Provides the configured algorithm.

Definition at line 492 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fTrd2DConfig

std::shared_ptr<CbmTrdUnpackFaspConfig> CbmRecoUnpack::fTrd2DConfig = nullptr
private

Configuration of the Trd unpacker. Provides the configured algorithm.

Definition at line 495 of file CbmRecoUnpack.h.

Referenced by Finish(), Init(), Reset(), SetUnpackConfig(), and Unpack().

◆ fUriPublishProfMoni

std::string CbmRecoUnpack::fUriPublishProfMoni = "influx1:localhost:8086:monitoring_tests"
private

URI (type:hostname:port:db_name) for optional connection to monitoring DB.

Definition at line 221 of file CbmRecoUnpack.h.

Referenced by Init(), and SetPublishProfMoni().

◆ fvhInpRatioPerTs

std::map<Subsystem, TH1*> CbmRecoUnpack::fvhInpRatioPerTs = {}
private

Plotting time per TS.

Definition at line 252 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and WriteHistograms().

◆ fvhOutRatioPerTs

std::map<Subsystem, TH1*> CbmRecoUnpack::fvhOutRatioPerTs = {}
private

ratio of system data in total input size vs TS in run

Definition at line 253 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and WriteHistograms().

◆ fvhUnpRatioPerTs

std::map<Subsystem, TH1*> CbmRecoUnpack::fvhUnpRatioPerTs = {}
private

ratio of system digi size in total output size vs TS in run

Definition at line 254 of file CbmRecoUnpack.h.

Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and WriteHistograms().

◆ hDataPerf

TH1* CbmRecoUnpack::hDataPerf = nullptr
private

Definition at line 246 of file CbmRecoUnpack.h.

Referenced by performanceProfiling(), and WriteHistograms().

◆ hProducedDigis

TH1* CbmRecoUnpack::hProducedDigis = nullptr
private

Definition at line 244 of file CbmRecoUnpack.h.

Referenced by performanceProfiling(), and WriteHistograms().

◆ hSpeedPerf

TH1* CbmRecoUnpack::hSpeedPerf = nullptr
private

Definition at line 245 of file CbmRecoUnpack.h.

Referenced by performanceProfiling(), and WriteHistograms().

◆ iSpillFilterStartDelay

int32_t CbmRecoUnpack::iSpillFilterStartDelay = 0
private

Delay of the real start of the spill relative to Spill Start Event (negative if Event is late one)

Definition at line 528 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), and SpillFilter().

◆ itSpillStart

std::vector<AccTimingEvent>::iterator CbmRecoUnpack::itSpillStart = vAccEvtsSpillStart.end()
private

Current spill start Event.

Definition at line 544 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and Unpack().

◆ itSpillStop

std::vector<AccTimingEvent>::iterator CbmRecoUnpack::itSpillStop = vAccEvtsSpillEnd.end()
private

Current spill stop Event.

Definition at line 547 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), SpillFilter(), and Unpack().

◆ sAccEvtTimingFile

std::string CbmRecoUnpack::sAccEvtTimingFile = ""
private

Full path to a text file containing the raw Accelerator Event timings.

Definition at line 519 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), and InitSpillFilter().

◆ ulSpillFilterTsDurationNs

uint64_t CbmRecoUnpack::ulSpillFilterTsDurationNs = 128000000
private

Duration of TS in nanoseconds (mCBM default = 128 ms = 128 000 000 ns)

Definition at line 531 of file CbmRecoUnpack.h.

Referenced by AddSpillFilter(), and SpillFilter().

◆ uSpillIndex

uint32_t CbmRecoUnpack::uSpillIndex = 0
private

Index of the current spill in current run.

Definition at line 550 of file CbmRecoUnpack.h.

Referenced by SpillFilter(), and Unpack().

◆ vAccEvtsSpillEnd

std::vector<AccTimingEvent> CbmRecoUnpack::vAccEvtsSpillEnd = {}
private

Storage of spill end accelerator events (ExtractionEnd or ExtractionSlowStop)

Definition at line 541 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), and Unpack().

◆ vAccEvtsSpillStart

std::vector<AccTimingEvent> CbmRecoUnpack::vAccEvtsSpillStart = {}
private

Storage of spill start accelerator events (Either KickerStart or ExtractionStartSlow)

Definition at line 538 of file CbmRecoUnpack.h.

Referenced by InitSpillFilter(), and Unpack().


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