CbmRoot
Loading...
Searching...
No Matches
CbmDevBuildEvents.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Facility for Antiproton and Ion Research in Europe, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Dominik Smith[committer] */
4
12#ifndef CBMDEVICEEVENTBUILDER_H_
13#define CBMDEVICEEVENTBUILDER_H_
14
16#include "EventBuilder.h"
17
19#include "FairMQDevice.h"
20
22#include "Rtypes.h"
23#include "TObjArray.h"
24
26#include <vector>
27
28class FairRunOnline;
29class FairRootManager;
30
31class TClonesArray;
33
34class CbmDevBuildEvents : public FairMQDevice {
35 public:
37 virtual ~CbmDevBuildEvents();
38
39 protected:
40 virtual void InitTask();
41 bool HandleData(FairMQParts&, int);
42
43 private:
44 Bool_t fbFinishDone = false;
45
48 std::string fsChannelNameDataInput = "trigger";
49 std::string fsChannelNameDataOutput = "events";
50
52 std::vector<std::string> fsAllowedChannels = {fsChannelNameDataInput};
53
55 uint64_t fulNumMessages = 0;
56 // uint64_t fulTsCounter = 0;
57
59 std::unique_ptr<cbm::algo::evbuild::EventBuilder> fEvbuildAlgo;
60
62 std::string fsOutputFileName = "";
63 FairRunOnline* fpRun = nullptr;
64 FairRootManager* fpFairRootMgr = nullptr;
65 std::vector<CbmDigiEvent>* fEventsSelOut = nullptr; // output container of CbmDigiEvents
66 TClonesArray* fTimeSliceMetaDataArrayOut = nullptr; // output container of meta data
67
68 bool IsChannelNameAllowed(std::string channelName);
69 bool SendEvents(const std::vector<CbmDigiEvent>& vEvents, const TimesliceMetaData* tsMetaData);
70
71 // Get detector type from string containing name
72 ECbmModuleId GetDetectorId(std::string detName);
73
74 void DumpTreeEntry();
75 void Finish();
76};
77
78#endif /* CBMDEVICEEVENTBUILDER_H_ */
ECbmModuleId
Definition CbmDefs.h:39
std::string fsChannelNameDataInput
Keep track of whether the Finish was already called.
FairRunOnline * fpRun
virtual void InitTask()
std::vector< CbmDigiEvent > * fEventsSelOut
ECbmModuleId GetDetectorId(std::string detName)
std::string fsChannelNameDataOutput
uint64_t fulNumMessages
Statistics & first TS rejection.
bool SendEvents(const std::vector< CbmDigiEvent > &vEvents, const TimesliceMetaData *tsMetaData)
FairRootManager * fpFairRootMgr
bool HandleData(FairMQParts &, int)
bool IsChannelNameAllowed(std::string channelName)
std::unique_ptr< cbm::algo::evbuild::EventBuilder > fEvbuildAlgo
Processing algos.
TClonesArray * fTimeSliceMetaDataArrayOut
std::string fsOutputFileName
Data storage.
std::vector< std::string > fsAllowedChannels
List of MQ channels names.