|
CbmRoot
|
Main steering class for unpacking in cbmroot. More...
#include <CbmRecoUnpack.h>
Public Member Functions | |
| CbmRecoUnpack () | |
| Constructor. | |
| ~CbmRecoUnpack () | |
| Destructor. | |
| CbmRecoUnpack (const CbmRecoUnpack &)=delete | |
| Copy constructor - not implemented. | |
| CbmRecoUnpack & | operator= (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 = {} |
| CbmTimeSlice * | fTimeSlice |
| CbmTimeslice object, mostly redundant with the TsEventHeader, needed by L1 to switch timeslice mode. | |
| std::shared_ptr< CbmMuchUnpackConfig > | fMuchConfig = nullptr |
| Current time slice. | |
| std::shared_ptr< CbmPsdUnpackConfig > | fPsdConfig = nullptr |
| Configuration of the Psd unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmRichUnpackConfig > | fRichConfig = nullptr |
| Configuration of the Rich unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmStsUnpackConfig > | fStsConfig = nullptr |
| Configuration of the Sts unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmTofUnpackConfig > | fTofConfig = nullptr |
| Configuration of the Tof unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmTrdUnpackConfig > | fTrd1DConfig = nullptr |
| Configuration of the Trd unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmTrdUnpackFaspConfig > | fTrd2DConfig = nullptr |
| Configuration of the Trd unpacker. Provides the configured algorithm. | |
| std::shared_ptr< CbmBmonUnpackConfig > | fBmonConfig = nullptr |
| Configuration of the Bmon unpacker. Provides the configured algorithm. | |
| CbmTsEventHeader * | fCbmTsEventHeader = 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< AccTimingEvent > | vAccEvtsSpillStart = {} |
| Storage of spill start accelerator events (Either KickerStart or ExtractionStartSlow) | |
| std::vector< AccTimingEvent > | vAccEvtsSpillEnd = {} |
| 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. | |
Main steering class for unpacking in cbmroot.
This class runs the unpackers for each input time-slice component.
Definition at line 60 of file CbmRecoUnpack.h.
|
private |
Definition at line 206 of file CbmRecoUnpack.h.
| CbmRecoUnpack::CbmRecoUnpack | ( | ) |
Constructor.
Definition at line 41 of file CbmRecoUnpack.cxx.
Referenced by CbmRecoUnpack(), ClassDef(), and operator=().
| 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.
|
delete |
Copy constructor - not implemented.
References CbmRecoUnpack().
|
inline |
Enable filtering of the digis using a user define window around the spill start. Requires a full time sorting.
| sAccEvtTimingFileIn | Full path to the text file containing the Accelerator Timing Events |
| dWinStart | Start time of filtering window relative to Spill Start (Kicker/Extraction start event) |
| dWinStart | Stop time of filtering window relative to Spill Start (Kicker/Extraction start event) |
| iSpillStartDelay | Delay of real start of the spill relative to SpillStart Event |
| ulTsDurationNs | Duration of TS in nanoseconds (mCBM default = 128 ms = 128 000 000 ns) |
| bMoniFindPeak | Flag 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.
|
private |
References CbmRecoUnpack().
| void CbmRecoUnpack::Finish | ( | ) |
Actions at the end of the run.
Definition at line 54 of file CbmRecoUnpack.cxx.
References fBmonConfig, fDataSizeMapCurrSec, fDoPerfProf, fMoniCurrrentHostname, fMoniJobId, fMonitor, fMonitorSecCurrentTs, fMuchConfig, fNameMapPerTs, fPsdConfig, fPublishProfMoni, fPubMoniProcTime, fRichConfig, fStsConfig, fTofConfig, fTrd1DConfig, fTrd2DConfig, performanceProfiling(), and WriteHistograms().
| 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().
|
inlineprivatevirtual |
Initialise the parameter containers requested by the algorithm.
Definition at line 313 of file CbmRecoUnpack.h.
Referenced by Init().
|
private |
Init the performance profiling maps for a given unpacker.
| subsystem | Subsystem as assigned during readout |
| name | Name 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().
|
private |
Digi time relative to spill stop, per detector.
Init the Spill filter: input file loading and general spill monitoring histograms
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().
|
private |
Init the Spill filter monitoring histograms for a given system.
| subsystem | Subsystem as assigned during readout |
| name | Name of the unpacker |
Definition at line 326 of file CbmRecoUnpack.cxx.
References bSpillFilterMoniFindPeak, dSpillFilterWinStart, dSpillFilterWinStop, fhDigiSpillFilterStartPerDet, fhDigiSpillFilterStopPerDet, fhDigiSpillStartDistPerDet, and fhDigiSpillStopDistPerDet.
Referenced by Init().
|
delete |
Assignment operator - not implemented.
References CbmRecoUnpack().
|
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().
|
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().
|
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().
| 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.
|
inline |
Set the Debug Printout Flag.
| value |
Definition at line 90 of file CbmRecoUnpack.h.
References fDoDebugPrints.
|
inline |
(De)Activate the performance profiling based on histograms
| value |
Definition at line 97 of file CbmRecoUnpack.h.
References fDoPerfProf.
|
inline |
(De)Activate the performance profiling based on histograms for each TS
| value |
Definition at line 104 of file CbmRecoUnpack.h.
References fDoPerfProf, and fDoPerfProfPerTs.
|
inline |
Enable/disable the data output. If On, data unpacked and monitored but neither sorted nor written to disk.
| value |
Definition at line 176 of file CbmRecoUnpack.h.
References bMonitoringOnly.
|
inline |
Set the performance profiling Output Filename.
| value |
Definition at line 135 of file CbmRecoUnpack.h.
References fOutfilename.
|
inline |
(De)Activate the publication of performance profiling data to monitoring DB
| value |
Definition at line 115 of file CbmRecoUnpack.h.
References fDoPerfProf, fDoPerfProfPerTs, fMoniJobId, fPublishProfMoni, fPubMoniProcTime, and fUriPublishProfMoni.
|
inline |
Enable/disable a full time sorting. If off, time sorting happens per link/FLIM source.
| value |
Definition at line 145 of file CbmRecoUnpack.h.
References bOutputFullTimeSorting.
|
inline |
Set the Bmon Unpack Config.
| config |
Definition at line 200 of file CbmRecoUnpack.h.
References fBmonConfig.
|
inline |
Set the Much Unpack Config.
| config |
Definition at line 179 of file CbmRecoUnpack.h.
References fMuchConfig.
|
inline |
Set the Psd Unpack Config.
| config |
Definition at line 182 of file CbmRecoUnpack.h.
References fPsdConfig.
|
inline |
Set the Rich Unpack Config.
| config |
Definition at line 185 of file CbmRecoUnpack.h.
References fRichConfig.
|
inline |
Set the Sts Unpack Config.
| config |
Definition at line 188 of file CbmRecoUnpack.h.
References fStsConfig.
|
inline |
Set the Tof Unpack Config.
| config |
Definition at line 191 of file CbmRecoUnpack.h.
References fTofConfig.
|
inline |
Set the Trd Unpack Config.
| config |
Definition at line 194 of file CbmRecoUnpack.h.
References fTrd1DConfig.
|
inline |
Set the Trd2D Unpack Config.
| config |
Definition at line 197 of file CbmRecoUnpack.h.
References fTrd2DConfig.
|
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().
|
inlineprivate |
Definition at line 588 of file CbmRecoUnpack.h.
|
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.
|
inlineprivate |
Sort a vector timewise vector type has to provide GetTime()
Definition at line 338 of file CbmRecoUnpack.h.
|
inlineprivate |
Definition at line 346 of file CbmRecoUnpack.h.
|
inlineprivate |
Definition at line 355 of file CbmRecoUnpack.h.
| 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.
|
inlineprivate |
Template for the unpacking call of a given algorithm.
| TAlgo | Algorithm to be called |
| TOutput | Output element types |
| TOptoutputs | Optional output element types |
| ts | Timeslice |
| icomp | Component number |
| algo | Algorithm to be used for this component |
| outtargetvec | Target vector for the output elements |
| optoutputvecs | Target vectors for optional outputs |
Definition at line 377 of file CbmRecoUnpack.h.
References bMonitoringOnly, bOutputFullTimeSorting, fDataSizeMap, fDataSizeMapPerTs, fDoPerfProf, fDoPerfProfPerTs, fNameMap, fNameMapPerTs, fTimeMap, fTimeMapPerTs, and timesort().
Referenced by Unpack().
|
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().
|
private |
Flag to Enable/disable the output completely.
Definition at line 513 of file CbmRecoUnpack.h.
Referenced by SetMonitoringOnly(), Unpack(), and unpack().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
private |
Pointer to the Timeslice start time used to write it to the output tree.
Definition at line 504 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), Reset(), and Unpack().
|
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().
|
private |
Definition at line 261 of file CbmRecoUnpack.h.
Referenced by Finish(), initPerformanceMaps(), and performanceProfilingPerTs().
|
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().
|
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().
|
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().
|
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().
|
private |
Definition at line 248 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().
|
private |
Processing time per TS.
Definition at line 250 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().
|
private |
Digi time relative to spill stop.
Definition at line 555 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill stop, per detector.
Definition at line 559 of file CbmRecoUnpack.h.
Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill start.
Definition at line 556 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill start, per detector.
Definition at line 560 of file CbmRecoUnpack.h.
Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().
|
private |
Monitoring histograms for the spill digi filter.
Definition at line 553 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill stop.
Definition at line 557 of file CbmRecoUnpack.h.
Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill start.
Definition at line 554 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and WriteHistograms().
|
private |
Digi time relative to spill start, per detector.
Definition at line 558 of file CbmRecoUnpack.h.
Referenced by initSpillFilterMonitoring(), SpillFilter(), and WriteHistograms().
|
private |
Processing time per TS.
Definition at line 249 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().
|
private |
Plotting time per TS.
Definition at line 251 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().
|
private |
ratio of selected digi vs TS in run
Definition at line 255 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and WriteHistograms().
|
private |
The application's monitoring object.
Definition at line 258 of file CbmRecoUnpack.h.
Referenced by Finish(), Init(), and performanceProfilingPerTs().
|
private |
Definition at line 259 of file CbmRecoUnpack.h.
Referenced by Finish(), Init(), performanceProfilingPerTs(), and SetPublishProfMoni().
|
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().
|
private |
Definition at line 260 of file CbmRecoUnpack.h.
Referenced by Finish(), and performanceProfilingPerTs().
|
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().
|
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().
|
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().
|
private |
Name of the performance profiling output file.
Definition at line 507 of file CbmRecoUnpack.h.
Referenced by SetOutputFilename(), and WriteHistograms().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
private |
Definition at line 247 of file CbmRecoUnpack.h.
Referenced by Init(), performanceProfilingPerTs(), and Unpack().
|
private |
CbmTimeslice object, mostly redundant with the TsEventHeader, needed by L1 to switch timeslice mode.
Definition at line 474 of file CbmRecoUnpack.h.
|
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().
|
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().
|
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().
|
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().
|
private |
Plotting time per TS.
Definition at line 252 of file CbmRecoUnpack.h.
Referenced by initPerformanceMaps(), performanceProfilingPerTs(), and WriteHistograms().
|
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().
|
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().
|
private |
Definition at line 246 of file CbmRecoUnpack.h.
Referenced by performanceProfiling(), and WriteHistograms().
|
private |
Definition at line 244 of file CbmRecoUnpack.h.
Referenced by performanceProfiling(), and WriteHistograms().
|
private |
Definition at line 245 of file CbmRecoUnpack.h.
Referenced by performanceProfiling(), and WriteHistograms().
|
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().
|
private |
Current spill start Event.
Definition at line 544 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and Unpack().
|
private |
Current spill stop Event.
Definition at line 547 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), SpillFilter(), and Unpack().
|
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().
|
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().
|
private |
Index of the current spill in current run.
Definition at line 550 of file CbmRecoUnpack.h.
Referenced by SpillFilter(), and Unpack().
|
private |
Storage of spill end accelerator events (ExtractionEnd or ExtractionSlowStop)
Definition at line 541 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), and Unpack().
|
private |
Storage of spill start accelerator events (Either KickerStart or ExtractionStartSlow)
Definition at line 538 of file CbmRecoUnpack.h.
Referenced by InitSpillFilter(), and Unpack().