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

Task class for associating digis to events. More...

#include <CbmTaskUnpack.h>

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

Classes

struct  Config
 
struct  Monitor
 

Public Member Functions

 CbmTaskUnpack ()
 Constructor.
 
 CbmTaskUnpack (fs::path paramsDir, uint32_t runId)
 Constructor.
 
 CbmTaskUnpack (const CbmTaskUnpack &)=delete
 Copy constructor (disabled)
 
virtual ~CbmTaskUnpack ()
 Destructor.
 
virtual void Exec (Option_t *opt)
 Task execution.
 
virtual void Finish ()
 Finish timeslice.
 
CbmTaskUnpackoperator= (const CbmTaskUnpack &)=delete
 Assignment operator (disabled)
 
void SetMonitor (cbm::Monitor *monitor)
 Set the monitor object.
 
void SetOutputModeCbmrootLike (bool flag=true)
 Set the output file in "as if cbmroot digi file" mode (default is "as if rra")
 

Private Member Functions

virtual InitStatus Init ()
 Task initialisation.
 
template<class Unpacker >
auto RunUnpacker (const std::unique_ptr< Unpacker > &unpacker, const fles::Timeslice &ts, Monitor &monitor) -> cbm::algo::algo_traits::Output_t< Unpacker >
 
template<typename TVecobj >
Bool_t RegisterVector (FairRootManager *ioman, std::vector< TVecobj > *&vec)
 
template<typename TVecobj >
std::enable_if< std::is_member_function_pointer< decltype(&TVecobj::GetTime)>::value, void >::type Timesort (std::vector< TVecobj > *vec=nullptr)
 
 ClassDef (CbmTaskUnpack, 4)
 

Private Attributes

CbmSourceTsfSource = nullptr
 
cbm::Monitor * fMonitor = nullptr
 
std::string fHostname
 
std::unique_ptr< cbm::algo::bmon::UnpackfBmonUnpack
 
std::unique_ptr< cbm::algo::much::UnpackfMuchUnpack
 
std::unique_ptr< cbm::algo::rich::UnpackfRichUnpack
 
std::unique_ptr< cbm::algo::sts::UnpackfStsUnpack
 
std::unique_ptr< cbm::algo::tof::UnpackfTofUnpack
 
std::unique_ptr< cbm::algo::trd::UnpackfTrdUnpack
 
std::unique_ptr< cbm::algo::trd2d::UnpackfTrd2dUnpack
 
size_t fNumTs = 0
 
size_t fNumMs = 0
 
size_t fNumBytes = 0
 
size_t fNumDigis = 0
 
double fTime = 0.
 
CbmDigiTimeslicefDigiTimeslice = nullptr
 Output data if writing root files "as if rra".
 
bool fCbmrootFormatOutput = false
 
CbmTimeSlicefTimeslice = nullptr
 => Time-slice header (old version, class about to be deprecated? one should use only CbmTsEventHeader soon?)
 
CbmTsEventHeaderfTsEventHeader = nullptr
 Time-slice event header.
 
std::vector< CbmBmonDigi > * fBmonDigis = nullptr
 => Branch vectors of Digis
 
std::vector< CbmStsDigi > * fStsDigis = nullptr
 
std::vector< CbmMuchDigi > * fMuchDigis = nullptr
 
std::vector< CbmTrdDigi > * fTrdDigis = nullptr
 
std::vector< CbmTofDigi > * fTofDigis = nullptr
 
std::vector< CbmRichDigi > * fRichDigis = nullptr
 

Detailed Description

Task class for associating digis to events.

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
15.11.2021

Creates objects of class CbmDigiEvent and fills them with digi objects, using the algorithm EventBuilder.

TOFO: The current implementation is for STS only and with a dummy trigger list just to establish the framework integration of algorithm and data interfaces.

Definition at line 59 of file CbmTaskUnpack.h.

Constructor & Destructor Documentation

◆ CbmTaskUnpack() [1/3]

CbmTaskUnpack::CbmTaskUnpack ( )

Constructor.

Definition at line 50 of file CbmTaskUnpack.cxx.

References L_.

◆ CbmTaskUnpack() [2/3]

◆ CbmTaskUnpack() [3/3]

CbmTaskUnpack::CbmTaskUnpack ( const CbmTaskUnpack & )
delete

Copy constructor (disabled)

◆ ~CbmTaskUnpack()

CbmTaskUnpack::~CbmTaskUnpack ( )
virtual

Destructor.

Definition at line 92 of file CbmTaskUnpack.cxx.

References fBmonDigis, fCbmrootFormatOutput, fDigiTimeslice, fMuchDigis, fRichDigis, fStsDigis, fTofDigis, and fTrdDigis.

Member Function Documentation

◆ ClassDef()

CbmTaskUnpack::ClassDef ( CbmTaskUnpack ,
4  )
private

◆ Exec()

◆ Finish()

void CbmTaskUnpack::Finish ( )
virtual

Finish timeslice.

Definition at line 204 of file CbmTaskUnpack.cxx.

References fNumBytes, fNumDigis, fNumMs, fNumTs, and fTime.

◆ Init()

InitStatus CbmTaskUnpack::Init ( )
privatevirtual

◆ operator=()

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

Assignment operator (disabled)

◆ RegisterVector()

template<typename TVecobj >
Bool_t CbmTaskUnpack::RegisterVector ( FairRootManager * ioman,
std::vector< TVecobj > *& vec )
private

Definition at line 222 of file CbmTaskUnpack.cxx.

Referenced by Init().

◆ RunUnpacker()

template<class Unpacker >
auto CbmTaskUnpack::RunUnpacker ( const std::unique_ptr< Unpacker > & unpacker,
const fles::Timeslice & ts,
Monitor & monitor ) -> cbm::algo::algo_traits::Output_t<Unpacker>
private

Definition at line 328 of file CbmTaskUnpack.cxx.

Referenced by Exec().

◆ SetMonitor()

void CbmTaskUnpack::SetMonitor ( cbm::Monitor * monitor)
inline

Set the monitor object.

Definition at line 102 of file CbmTaskUnpack.h.

References fMonitor.

◆ SetOutputModeCbmrootLike()

void CbmTaskUnpack::SetOutputModeCbmrootLike ( bool flag = true)
inline

Set the output file in "as if cbmroot digi file" mode (default is "as if rra")

Definition at line 106 of file CbmTaskUnpack.h.

References fCbmrootFormatOutput.

◆ Timesort()

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

Definition at line 158 of file CbmTaskUnpack.h.

Referenced by Exec().

Member Data Documentation

◆ fBmonDigis

std::vector<CbmBmonDigi>* CbmTaskUnpack::fBmonDigis = nullptr
private

=> Branch vectors of Digis

Definition at line 142 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fBmonUnpack

std::unique_ptr<cbm::algo::bmon::Unpack> CbmTaskUnpack::fBmonUnpack
private

Definition at line 119 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fCbmrootFormatOutput

bool CbmTaskUnpack::fCbmrootFormatOutput = false
private

Output data if writing root file "as if cbmroot digi file" Flag controlling the output mode

Definition at line 136 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), SetOutputModeCbmrootLike(), and ~CbmTaskUnpack().

◆ fDigiTimeslice

CbmDigiTimeslice* CbmTaskUnpack::fDigiTimeslice = nullptr
private

Output data if writing root files "as if rra".

Definition at line 132 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fHostname

std::string CbmTaskUnpack::fHostname
private

Definition at line 116 of file CbmTaskUnpack.h.

Referenced by Exec(), and Init().

◆ fMonitor

cbm::Monitor* CbmTaskUnpack::fMonitor = nullptr
private

Definition at line 115 of file CbmTaskUnpack.h.

Referenced by Exec(), and SetMonitor().

◆ fMuchDigis

std::vector<CbmMuchDigi>* CbmTaskUnpack::fMuchDigis = nullptr
private

Definition at line 144 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fMuchUnpack

std::unique_ptr<cbm::algo::much::Unpack> CbmTaskUnpack::fMuchUnpack
private

Definition at line 120 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fNumBytes

size_t CbmTaskUnpack::fNumBytes = 0
private

Definition at line 129 of file CbmTaskUnpack.h.

Referenced by Exec(), and Finish().

◆ fNumDigis

size_t CbmTaskUnpack::fNumDigis = 0
private

Definition at line 130 of file CbmTaskUnpack.h.

Referenced by Exec(), and Finish().

◆ fNumMs

size_t CbmTaskUnpack::fNumMs = 0
private

Definition at line 128 of file CbmTaskUnpack.h.

Referenced by Exec(), and Finish().

◆ fNumTs

size_t CbmTaskUnpack::fNumTs = 0
private

Definition at line 127 of file CbmTaskUnpack.h.

Referenced by Exec(), and Finish().

◆ fRichDigis

std::vector<CbmRichDigi>* CbmTaskUnpack::fRichDigis = nullptr
private

Definition at line 147 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fRichUnpack

std::unique_ptr<cbm::algo::rich::Unpack> CbmTaskUnpack::fRichUnpack
private

Definition at line 121 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fSource

CbmSourceTs* CbmTaskUnpack::fSource = nullptr
private

Definition at line 114 of file CbmTaskUnpack.h.

Referenced by Exec(), and Init().

◆ fStsDigis

std::vector<CbmStsDigi>* CbmTaskUnpack::fStsDigis = nullptr
private

Definition at line 143 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fStsUnpack

std::unique_ptr<cbm::algo::sts::Unpack> CbmTaskUnpack::fStsUnpack
private

Definition at line 122 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fTime

double CbmTaskUnpack::fTime = 0.
private

Definition at line 131 of file CbmTaskUnpack.h.

Referenced by Exec(), and Finish().

◆ fTimeslice

CbmTimeSlice* CbmTaskUnpack::fTimeslice = nullptr
private

=> Time-slice header (old version, class about to be deprecated? one should use only CbmTsEventHeader soon?)

Definition at line 138 of file CbmTaskUnpack.h.

Referenced by Exec(), and Init().

◆ fTofDigis

std::vector<CbmTofDigi>* CbmTaskUnpack::fTofDigis = nullptr
private

Definition at line 146 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fTofUnpack

std::unique_ptr<cbm::algo::tof::Unpack> CbmTaskUnpack::fTofUnpack
private

Definition at line 123 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fTrd2dUnpack

std::unique_ptr<cbm::algo::trd2d::Unpack> CbmTaskUnpack::fTrd2dUnpack
private

Definition at line 125 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fTrdDigis

std::vector<CbmTrdDigi>* CbmTaskUnpack::fTrdDigis = nullptr
private

Definition at line 145 of file CbmTaskUnpack.h.

Referenced by Exec(), Init(), and ~CbmTaskUnpack().

◆ fTrdUnpack

std::unique_ptr<cbm::algo::trd::Unpack> CbmTaskUnpack::fTrdUnpack
private

Definition at line 124 of file CbmTaskUnpack.h.

Referenced by CbmTaskUnpack(), and Exec().

◆ fTsEventHeader

CbmTsEventHeader* CbmTaskUnpack::fTsEventHeader = nullptr
private

Time-slice event header.

Definition at line 140 of file CbmTaskUnpack.h.

Referenced by Exec(), and Init().


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