#include <PndMQFileSinkHits.h>
Definition at line 55 of file PndMQFileSinkHits.h.
PndMQFileSinkHits::PndMQFileSinkHits |
( |
std::string |
outputFileName = "FilesSinkHits.root" | ) |
|
|
inline |
Definition at line 58 of file PndMQFileSinkHits.h.
67 gSystem->ResetSignal(kSigInterrupt);
68 gSystem->ResetSignal(kSigTermination);
71 using namespace baseMQ::tools::resolve;
73 if (is_same<boost::archive::binary_iarchive, boost::archive::binary_iarchive>::value || is_same<boost::archive::binary_iarchive, boost::archive::text_iarchive>::value)
75 if (has_BoostSerialization<
PndSdsHit,
void(boost::archive::binary_iarchive&,
const unsigned int)>::value == 1)
std::string fOutputFileName
vector< vector< PndSdsHit > > fHitVector
bool fHasBoostSerialization
virtual PndMQFileSinkHits::~PndMQFileSinkHits |
( |
| ) |
|
|
inlinevirtual |
virtual void PndMQFileSinkHits::InitOutputFile |
( |
TString |
defaultId = "100" | ) |
|
|
inlinevirtual |
Definition at line 98 of file PndMQFileSinkHits.h.
References fOutFile.
Referenced by main().
100 fOutput =
new TClonesArray(
"PndSdsHit");
102 std::stringstream ss;
107 fOutFile =
new TFile(ss.str().c_str(),
"recreate");
108 fTree =
new TTree(
"pndsim",
"Test output");
109 fTree->Branch(
"Output",
"TClonesArray", &
fOutput, 64000, 99);
std::string fOutputFileName
void PndMQFileSinkHits::Run |
( |
| ) |
|
|
protectedvirtual |
Definition at line 12 of file PndMQFileSinkHits.cxx.
References fHasBoostSerialization, fHitVector, fOutFile, fOutput, fTree, i, status, and PndMQStatus::STOP.
19 FairMQChannel& dataInChannel = fChannels.at(
"data-in").at(0);
21 while (CheckCurrentState(RUNNING))
23 std::unique_ptr<FairMQMessage> header(fTransportFactory->CreateMessage());
24 std::unique_ptr<FairMQMessage> msg(fTransportFactory->CreateMessage());
25 if (dataInChannel.Receive(header) > 0)
27 int status = *(
static_cast<int*
>(header->GetData()));
29 if (dataInChannel.ExpectsAnotherPart())
32 if (dataInChannel.Receive(msg)) {
33 string msgStr(static_cast<char*>(msg->GetData()), msg->GetSize());
34 istringstream ibuffer(msgStr);
35 boost::archive::binary_iarchive InputArchive(ibuffer);
41 catch (boost::archive::archive_exception& e)
43 LOG(ERROR) << e.what();
48 bool dataAboveTimeThreshold =
false;
49 double timeStampThreshold = 0;
52 int numData = eventIter.size();
53 for (Int_t
i = 0;
i < numData; ++
i)
55 if (eventIter[
i].GetTimeStamp() > timeStampThreshold){
57 dataAboveTimeThreshold =
true;
61 if (dataAboveTimeThreshold){
64 LOG(ERROR) <<
"PndMQFileSinkHits::Run(): No Output array!";
71 if (receivedMsgs % 1000 == 0 && myHit != 0){
72 LOG(INFO) << receivedMsgs <<
" : " << myHit->GetTimeStamp();
77 LOG(INFO) <<
"STOP-Signal Received!";
79 LOG(INFO) <<
"AutoSave called!";
86 if (fHitVector.size() > 0)
92 LOG(INFO) <<
"I've received " << receivedMsgs <<
" messages!";
96 LOG(ERROR) <<
" Boost Serialization not ok";
vector< vector< PndSdsHit > > fHitVector
bool fHasBoostSerialization
template<class Archive >
void PndMQFileSinkHits::serialize |
( |
Archive & |
ar, |
|
|
const unsigned int |
version |
|
) |
| |
|
inline |
virtual void PndMQFileSinkHits::SetFileName |
( |
std::string |
fileName | ) |
|
|
inlinevirtual |
friend class boost::serialization::access |
|
friend |
TList* PndMQFileSinkHits::fBranchNameList |
|
private |
bool PndMQFileSinkHits::fHasBoostSerialization |
|
private |
vector<vector<PndSdsHit> > PndMQFileSinkHits::fHitVector |
|
private |
TFile* PndMQFileSinkHits::fOutFile |
|
private |
TClonesArray* PndMQFileSinkHits::fOutput |
|
private |
std::string PndMQFileSinkHits::fOutputFileName |
|
private |
TTree* PndMQFileSinkHits::fTree |
|
private |
The documentation for this class was generated from the following files: