CbmRoot
|
#include <CbmDeviceDigiEventSink.h>
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< CbmBmonDigi > | fvDigiBmon |
Raw data. | |
std::vector< CbmStsDigi > | fvDigiSts |
std::vector< CbmMuchDigi > | fvDigiMuch |
std::vector< CbmTrdDigi > | fvDigiTrd |
std::vector< CbmTofDigi > | fvDigiTof |
std::vector< CbmRichDigi > | fvDigiRich |
std::vector< CbmPsdDigi > | fvDigiPsd |
TimesliceMetaData | fTsMetaData |
extra Metadata | |
std::vector< CbmEvent > | fvEvents |
Raw events. | |
std::vector< CbmDigiEvent > | fvDigiEvents |
Digi events. | |
Definition at line 53 of file CbmDeviceDigiEventSink.h.
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 | ( | ) |
Definition at line 957 of file CbmDeviceDigiEventSink.cxx.
References fvDigiBmon, fvDigiEvents, fvDigiMuch, fvDigiPsd, fvDigiRich, fvDigiSts, fvDigiTof, fvDigiTrd, and fvEvents.
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().
|
inline |
Definition at line 60 of file CbmDeviceDigiEventSink.h.
References ExtractSelectedData(), fbDigiEvtInput, and fvDigiEvents.
Referenced by CbmDeviceDigiEventSink::PrepareTreeEntry().
bool CbmEventTimeslice::fbDigiEvtInput = false |
Input Type.
Definition at line 67 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), and GetSelectedData().
CbmTsEventHeader CbmEventTimeslice::fCbmTsEventHeader |
TS information in header.
Definition at line 69 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), and CbmDeviceDigiEventSink::PrepareTreeEntry().
TimesliceMetaData CbmEventTimeslice::fTsMetaData |
extra Metadata
Definition at line 79 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), CbmDeviceDigiEventSink::HandleData(), and CbmDeviceDigiEventSink::PrepareTreeEntry().
std::vector<CbmBmonDigi> CbmEventTimeslice::fvDigiBmon |
Raw data.
Definition at line 71 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmDigiEvent> CbmEventTimeslice::fvDigiEvents |
Digi events.
Definition at line 83 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), GetSelectedData(), and ~CbmEventTimeslice().
std::vector<CbmMuchDigi> CbmEventTimeslice::fvDigiMuch |
Definition at line 73 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmPsdDigi> CbmEventTimeslice::fvDigiPsd |
Definition at line 77 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmRichDigi> CbmEventTimeslice::fvDigiRich |
Definition at line 76 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmStsDigi> CbmEventTimeslice::fvDigiSts |
Definition at line 72 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmTofDigi> CbmEventTimeslice::fvDigiTof |
Definition at line 75 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmTrdDigi> CbmEventTimeslice::fvDigiTrd |
Definition at line 74 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), CbmDeviceDigiEventSink::PrepareTreeEntry(), and ~CbmEventTimeslice().
std::vector<CbmEvent> CbmEventTimeslice::fvEvents |
Raw events.
Definition at line 81 of file CbmDeviceDigiEventSink.h.
Referenced by CbmEventTimeslice(), ExtractSelectedData(), and ~CbmEventTimeslice().