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

#include <CbmDeviceDigiEventSink.h>

Collaboration diagram for CbmEventTimeslice:
[legend]

Public Member Functions

 CbmEventTimeslice (FairMQParts &parts, bool bDigiEvtInput=false)
 TODO: rename to CbmTsWithEvents.
 
 ~CbmEventTimeslice ()
 
void ExtractSelectedData (bool bExclusiveTrdExtract=true)
 
std::vector< CbmDigiEvent > & GetSelectedData (bool bExclusiveTrdExtract=true)
 

Public Attributes

bool fbDigiEvtInput = false
 Input Type.
 
CbmTsEventHeader fCbmTsEventHeader
 TS information in header.
 
std::vector< CbmBmonDigifvDigiBmon
 Raw data.
 
std::vector< CbmStsDigifvDigiSts
 
std::vector< CbmMuchDigifvDigiMuch
 
std::vector< CbmTrdDigifvDigiTrd
 
std::vector< CbmTofDigifvDigiTof
 
std::vector< CbmRichDigifvDigiRich
 
std::vector< CbmPsdDigifvDigiPsd
 
TimesliceMetaData fTsMetaData
 extra Metadata
 
std::vector< CbmEventfvEvents
 Raw events.
 
std::vector< CbmDigiEventfvDigiEvents
 Digi events.
 

Detailed Description

Definition at line 53 of file CbmDeviceDigiEventSink.h.

Constructor & Destructor Documentation

◆ CbmEventTimeslice()

CbmEventTimeslice::CbmEventTimeslice ( FairMQParts & parts,
bool bDigiEvtInput = false )

TODO: rename to CbmTsWithEvents.

Digi events => Extract selected data from input message

(1) TS header

(2) TS metadata

(3) Events

Raw data + raw events => Extract unpacked data from input message

(1) TS header

(2) Bmon

(3) STS

(4) MUCH

(5) TRD

(6) BmonF

(7) RICH

(8) PSD

(9) TS metadata

(10) Events FIXME: Find out if possible to use only the boost serializer/deserializer

Definition at line 812 of file CbmDeviceDigiEventSink.cxx.

References fbDigiEvtInput, fCbmTsEventHeader, fTsMetaData, fvDigiBmon, fvDigiEvents, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, and fvEvents.

◆ ~CbmEventTimeslice()

CbmEventTimeslice::~CbmEventTimeslice ( )

Member Function Documentation

◆ ExtractSelectedData()

void CbmEventTimeslice::ExtractSelectedData ( bool bExclusiveTrdExtract = true)

Loop on events in input vector

For pure digi based event, we select "continuous slices of digis" => Copy block of [First Digi index, last digi index] with assign(it_start, it_stop) => No data increase for most detectors as we use time window selection Keep TRD1D + TRD2D support as single det, otherwise may lead to holes in the digi sequence! => Need option to keep the loop to avoid adding extra digis if comparison to CbmEvents wanted

Get the proper order for block selection as TRD1D and TRD2D may insert indices in separate loops => Needed to ensure that the start and stop of the block copy do not trigger a vector size exception

for each detector, find the data in the Digi vectors and copy them TODO: Template + loop on list of data types? ==> Bmon

==> STS

==> MUCH

==> TRD + TRD2D

Copy each digi in the event by itself to make sure we skip ones outside their own selection window but inside the selection window of the other TRD subsystem, effectively enforcing differetn windows: [t, t+dt](TRD) = [t, t+dt](TRD1D) + [t, t+dt](TRD2D) => Exclusive but slower

Block copy of all TRD digis, has feature that it may include digis which are not matching the selection window of a given TRD subsystem, effectively making a larger selection window: [t, t+dt](TRD) = [t, t+dt](TRD1D) U [t, t+dt](TRD2D) => Faster but inclusive, will lead to more TRD hits and tracks than expected

==> TOF

==> RICH

==> PSD

Definition at line 970 of file CbmDeviceDigiEventSink.cxx.

References CbmDigiData::fBmon, CbmDigiEvent::fData, CbmBmonDigiData::fDigis, CbmMuchDigiData::fDigis, CbmPsdDigiData::fDigis, CbmRichDigiData::fDigis, CbmStsDigiData::fDigis, CbmTofDigiData::fDigis, CbmTrdDigiData::fDigis, CbmDigiData::fMuch, CbmDigiEvent::fNumber, CbmDigiData::fPsd, CbmDigiData::fRich, CbmDigiData::fSts, CbmDigiEvent::fTime, CbmDigiData::fTof, CbmDigiData::fTrd, fvDigiBmon, fvDigiEvents, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, fvEvents, kBmonDigi, kMuchDigi, kPsdDigi, kRichDigi, kStsDigi, kTofDigi, and kTrdDigi.

Referenced by GetSelectedData().

◆ GetSelectedData()

std::vector< CbmDigiEvent > & CbmEventTimeslice::GetSelectedData ( bool bExclusiveTrdExtract = true)
inline

Member Data Documentation

◆ fbDigiEvtInput

bool CbmEventTimeslice::fbDigiEvtInput = false

Input Type.

Definition at line 67 of file CbmDeviceDigiEventSink.h.

Referenced by CbmEventTimeslice(), and GetSelectedData().

◆ fCbmTsEventHeader

CbmTsEventHeader CbmEventTimeslice::fCbmTsEventHeader

TS information in header.

Definition at line 69 of file CbmDeviceDigiEventSink.h.

Referenced by CbmEventTimeslice(), and CbmDeviceDigiEventSink::PrepareTreeEntry().

◆ fTsMetaData

TimesliceMetaData CbmEventTimeslice::fTsMetaData

◆ fvDigiBmon

std::vector<CbmBmonDigi> CbmEventTimeslice::fvDigiBmon

◆ fvDigiEvents

std::vector<CbmDigiEvent> CbmEventTimeslice::fvDigiEvents

Digi events.

Definition at line 83 of file CbmDeviceDigiEventSink.h.

Referenced by CbmEventTimeslice(), ExtractSelectedData(), GetSelectedData(), and ~CbmEventTimeslice().

◆ fvDigiMuch

std::vector<CbmMuchDigi> CbmEventTimeslice::fvDigiMuch

◆ fvDigiPsd

std::vector<CbmPsdDigi> CbmEventTimeslice::fvDigiPsd

◆ fvDigiRich

std::vector<CbmRichDigi> CbmEventTimeslice::fvDigiRich

◆ fvDigiSts

std::vector<CbmStsDigi> CbmEventTimeslice::fvDigiSts

◆ fvDigiTof

std::vector<CbmTofDigi> CbmEventTimeslice::fvDigiTof

◆ fvDigiTrd

std::vector<CbmTrdDigi> CbmEventTimeslice::fvDigiTrd

◆ fvEvents

std::vector<CbmEvent> CbmEventTimeslice::fvEvents

Raw events.

Definition at line 81 of file CbmDeviceDigiEventSink.h.

Referenced by CbmEventTimeslice(), ExtractSelectedData(), and ~CbmEventTimeslice().


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