21#include <RtypesCore.h>
22#include <TStopwatch.h>
57 CbmDaq(Bool_t eventMode = kFALSE);
71 virtual void Exec(Option_t* opt);
75 virtual InitStatus
Init();
136 std::map<ECbmModuleId, TClonesArray*>
fDigis;
180 ULong64_t
FillTimeSlice(Bool_t timeLimit, Double_t fillTime = -1.);
CBM task class for filling digis into time slices.
Int_t fNofTimeSlices
Number of time slices.
Int_t fNofEvents
Number of processed events.
Bool_t IsDaqBufferEmpty() const
Check for empty DAQ buffers.
Double_t fLatency
Maximal time disorder of input data [ns].
std::map< ECbmModuleId, TClonesArray * > fDigis
Stop watch.
Double_t fTimeDigiFirst
Time of first digi.
Int_t fNofDigisIgnored
Number of ignored digis.
CbmDaq(const CbmDaq &)=delete
CbmDaq(Bool_t eventMode=kFALSE)
Constructor.
Bool_t CheckOutput() const
Check the output arrays for being time-sorted.
Int_t fNofTimeSlicesEmpty
Number of empty time slices.
void StartNextTimeSlice()
Start a new time slice in the output tree.
void FillData(CbmDigi *digi)
Copy data (digi) from the DaqBuffer into the output array.
Double_t fTimeSliceLength
Time-slice length [ns].
Double_t fTimeDigiLast
Time of last digi.
Bool_t fIsEventByEvent
Flag for event-by-event mode.
Int_t fNofDigis
Total number of processed digis.
CbmDaq & operator=(const CbmDaq &)=delete
void SetLatency(Double_t time)
Set the DAQ buffer latency.
Double_t fTimeSliceFirst
Start time of first time slice.
CbmTimeSlice * fTimeSlice
Array of registered digitizers.
std::string GetBufferStatus(Bool_t verbose=kFALSE) const
Debug output of DAQ buffer status @value String with status of DAQ buffers.
std::map< Int_t, std::pair< Int_t, Int_t > > fEventRange
MC events for current time slice.
void StoreAllTimeSlices(Bool_t choice=kTRUE)
Store all time-slices.
CbmMCEventList * fEventsCurrent
MC event list (all)
Double_t GetBufferTimeFirst() const
Time of first datum in DAQ buffers @value Minimum time stamp in all DAQ buffers.
void SetTimeSliceLength(Double_t length)
Set the time-slice length.
virtual InitStatus Init()
Initialisation.
virtual void Exec(Option_t *opt)
Task execution.
ULong64_t GetBufferSize() const
Size of DAQ buffers @value Sum of number of data in all DAQ buffers.
Bool_t fStoreEmptySlices
Flag to store also empty time slices.
void PrintCurrentEventRange() const
Double_t fTimeEventPrevious
Time of previous event [ns].
Double_t GetBufferTimeLast() const
Time of last datum in DAQ buffers @value Maximum time stamp in all DAQ buffers.
ULong64_t FillTimeSlice(Bool_t timeLimit, Double_t fillTime=-1.)
Double_t fTimeSliceLast
Stop time of last time slice.
void SetDigitizer(ECbmModuleId system, CbmDigitizeBase *digitizer)
Set the digitizer for a given system.
CbmMCEventList fEventList
Current time slice.
std::map< ECbmModuleId, CbmDigitizeBase * > fDigitizers
Output arrays (digis)
Abstract base class for CBM digitisation tasks.
Container class for MC events with number, file and start time.
Bookkeeping of time-slice content.