12#ifndef CBMMCPOINTSOURCE_H_
13#define CBMMCPOINTSOURCE_H_
17#include "FairMQDevice.h"
19#include "TClonesArray.h"
21#include <boost/archive/binary_oarchive.hpp>
27#include <boost/serialization/vector.hpp>
63 Int_t entries = arr->GetEntriesFast();
65 T* point =
static_cast<T*
>(arr->At(0));
66 LOG(info) <<
"Entries in TCA for data type " << point->GetName() <<
": " << entries;
68 for (
int i = 0; i < entries; ++i) {
69 T* point =
static_cast<T*
>(arr->At(i));
79 Int_t entries = arr->GetEntriesFast();
81 T* point =
static_cast<T*
>(arr->At(0));
82 LOG(info) <<
"Entries in TCA for data type " << point->GetName() <<
": " << entries;
84 for (
int i = 0; i < entries; ++i) {
85 T* point =
static_cast<T*
>(arr->At(i));
86 vec.emplace_back(*point);
97 Int_t entries = arr->GetEntriesFast();
99 T* point =
static_cast<T*
>(arr->At(0));
100 LOG(info) <<
"Entries in TCA for data type " << point->GetName() <<
": " << entries;
102 for (
int iEntries = 0; iEntries < entries; ++iEntries) {
103 T* point =
static_cast<T*
>(arr->At(iEntries));
104 vec.emplace_back(*point);
108 std::stringstream oss;
109 boost::archive::binary_oarchive oa(oss);
111 std::string* strMsg =
new std::string(oss.str());
114 FairMQMessagePtr msg(NewMessage(
115 const_cast<char*
>(strMsg->c_str()),
117 [](
void* ,
void*
object) { delete static_cast<std::string*>(object); },
130 LOG(error) <<
"Problem sending data";
137 std::chrono::steady_clock::time_point
fTime {};
139 std::vector<std::string>
fAllowedChannels = {
"MvdPoint",
"StsPoint",
"RichPoint",
"MuchPoint",
140 "Trdpoint",
"TofPoint",
"PsdPoint"};
CbmMCPointSource()=default
virtual bool ConditionalRun()
void PrintMCPoint(TClonesArray *arr)
std::chrono::steady_clock::time_point fTime
bool ConvertAndSend(TClonesArray *arr, int i)
std::vector< T > Convert(TClonesArray *arr)
std::vector< std::string > fInputFileList
List of input files.
virtual ~CbmMCPointSource()
void ConnectChannelIfNeeded(int, std::string, std::string, FairRootManager *)
std::vector< int > fComponentsToSend
std::vector< TClonesArray * > fArrays
std::vector< std::vector< std::string > > fChannelsToSend
std::vector< std::string > fAllowedChannels