27 #ifndef PndMQFileSamplerHits_H_ 28 #define PndMQFileSamplerHits_H_ 35 #include "TClonesArray.h" 40 #include "TObjString.h" 42 #include "FairMQDevice.h" 43 #include "FairMQLogger.h" 47 #include "baseMQtools.h" 52 #include <boost/thread.hpp> 53 #include <boost/bind.hpp> 54 #include <boost/serialization/access.hpp> 55 #include <boost/archive/binary_oarchive.hpp> 56 #include <boost/serialization/vector.hpp> 69 enum { InputFile = FairMQDevice::Last, Last };
72 : fInFile(nullptr), fTree(nullptr), fInput(nullptr), fHitVector(), fHasBoostSerialization(false), fInputFileName(inputFileName), fBranchNameList(0)
74 gSystem->ResetSignal(kSigInterrupt);
75 gSystem->ResetSignal(kSigTermination);
78 using namespace baseMQ::tools::resolve;
80 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) {
82 fHasBoostSerialization =
true;
92 if (fHitVector.size() > 0) {
97 virtual void SetFileName(std::string fileName) { fInputFileName = fileName; }
101 fInput =
new TClonesArray(
"PndSdsHit");
103 fInFile =
new TFile(fInputFileName.c_str(),
"read");
104 fTree = (TTree *)fInFile->Get(
"pndsim");
105 fTree->SetBranchAddress(
"Output", &fInput);
108 template <
class Archive>
117 case InputFile: fInputFileName = value;
break;
118 default: FairMQDevice::SetProperty(key, value);
break;
122 std::string
GetProperty(
const int key,
const std::string &default_ )
125 case InputFile:
return fInputFileName;
126 default:
return FairMQDevice::GetProperty(key, default_);
136 TClonesArray *fInput;
137 TList *fBranchNameList;
138 std::string fInputFileName;
140 #ifndef __CINT__ // for BOOST serialization 141 friend class boost::serialization::access;
143 vector<vector<PndSdsHit>> fHitVector;
144 bool fHasBoostSerialization;
145 #endif // for BOOST serialization virtual void SetFileName(std::string fileName)
void serialize(Archive &ar, const unsigned int version)
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()