15 #ifndef PndMQFileSamplerHits_H_
16 #define PndMQFileSamplerHits_H_
23 #include "TClonesArray.h"
28 #include "TObjString.h"
30 #include "FairMQDevice.h"
31 #include "FairMQLogger.h"
35 #include "baseMQtools.h"
40 #include <boost/thread.hpp>
41 #include <boost/bind.hpp>
42 #include <boost/serialization/access.hpp>
43 #include <boost/archive/binary_oarchive.hpp>
44 #include <boost/serialization/vector.hpp>
60 InputFile = FairMQDevice::Last,
69 , fHasBoostSerialization(false)
70 , fInputFileName(inputFileName)
73 gSystem->ResetSignal(kSigInterrupt);
74 gSystem->ResetSignal(kSigTermination);
77 using namespace baseMQ::tools::resolve;
79 if (is_same<boost::archive::binary_oarchive, boost::archive::binary_oarchive>::value)
81 if (has_BoostSerialization<
PndSdsHit,
void(boost::archive::binary_oarchive&,
const unsigned int)>::value == 1)
83 fHasBoostSerialization =
true;
93 if (fHitVector.size() > 0)
101 fInputFileName = fileName;
106 fInput =
new TClonesArray(
"PndSdsHit");
108 fInFile =
new TFile(fInputFileName.c_str(),
"read");
109 fTree = (TTree*)fInFile->Get(
"pndsim");
110 fTree->SetBranchAddress(
"Output", &fInput);
113 template <
class Archive>
124 fInputFileName = value;
127 FairMQDevice::SetProperty(key, value);
137 return fInputFileName;
139 return FairMQDevice::GetProperty(key, default_);
153 #ifndef __CINT__ // for BOOST serialization
154 friend class boost::serialization::access;
158 #endif // for BOOST serialization
virtual void SetFileName(std::string fileName)
std::string fInputFileName
void serialize(Archive &ar, const unsigned int version)
vector< vector< PndSdsHit > > fHitVector
virtual void InitInputFile()
void SetProperty(const int key, const std::string &value)
std::string GetProperty(const int key, const std::string &default_)
PndMQFileSamplerHits(std::string inputFileName="")
virtual ~PndMQFileSamplerHits()
bool fHasBoostSerialization