4 #include "KVMFMDataFileReader.h"
7 #include "MFMXmlFileHeaderFrame.h"
47 std::string actions_dir =
gEnv->
GetValue(
"KVMFMDataFileReader.ActionsDirectory",
"");
48 if (actions_dir !=
"") SetActionsDirectory(actions_dir);
49 std::string actions_expname =
gEnv->
GetValue(
"KVMFMDataFileReader.ActionsExpName",
"");
50 if (actions_expname !=
"") SetActionsExpName(actions_expname);
51 if (!ReadNextFrame()) {
52 Error(
"KVMFMDataFileReader",
"Cannot read file %s", filepath);
56 if (GetFrameReadType() != MFM_XML_FILE_HEADER_FRAME_TYPE) {
57 Warning(
"KVMFMDataFileReader",
"First frame in file is not MFM_XML_FILE_HEADER_FRAME_TYPE: type is %s",
58 GetFrameReadTypeSymbol().c_str());
61 GetFrameRead().Print();
62 fRunInfos.SetValue(
"ExperimentName", GetFrameRead<MFMXmlFileHeaderFrame>().GetExperimentName());
63 fRunInfos.SetValue(
"FileName", GetFrameRead<MFMXmlFileHeaderFrame>().
GetFileName());
64 fRunInfos.SetValue(
"FileCreationTime", GetFrameRead<MFMXmlFileHeaderFrame>().GetFileCreationTime());
65 fRunInfos.SetValue(
"RunNumber", GetFrameRead<MFMXmlFileHeaderFrame>().GetRunNumber());
66 fRunInfos.SetValue(
"RunIndex", GetFrameRead<MFMXmlFileHeaderFrame>().GetRunIndex());
67 fRunInfos.SetValue(
"RunStartTime", GetFrameRead<MFMXmlFileHeaderFrame>().GetRunStartTime());
79 ::Info(
"KVMFMDataFileReader::Open",
"Opening file %s...", fp.
Data());
83 ::Warning(
"KVMFMDataFileReader::Open",
"Failed to open file %s...", fp.
Data());
100 GetFrameLibrary().SetEbyedatActionsDirectory(
d);
117 GetFrameLibrary().SetEbyedatExpName(
e);
142 return GetFrameLibrary().GetLastEbyedatActionsFile().c_str();
157 #ifndef MESYTEC_DATA_BUFFER_READER_NO_DEFINE_SETUP
158 mesytec::experimental_setup
exp;
159 exp.read_crate_map(crate);
160 exp.read_detector_correspondence(channels);
164 MTEC_bufrdr.read_detector_correspondence(channels);
R__EXTERN TSystem * gSystem
void Warning(const char *method, const char *msgfmt,...) const override
Read MFM format acquisition data.
KVMFMDataFileReader(const Char_t *filepath, ULong64_t bufsize=512)
void SetActionsExpName(const string &)
void SetActionsDirectory(const string &)
TString GetPathToLastEbyedatActionsFile()
Returns full path to last ACTIONS file used to decode Ebyedat parameters.
Int_t GetRunNumberReadFromFile() const override
void InitialiseMesytecConfig(const std::string &crate, const std::string &channels)
static KVMFMDataFileReader * Open(const Char_t *filepath, Option_t *="")
mesytec::buffer_reader MTEC_bufrdr
Int_t GetIntValue(const Char_t *name) const
Abstract base class for reading raw (DAQ) data.
KVNameValueList fRunInfos
informations on run extracted from file
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void Info(const char *method, const char *msgfmt,...) const
const char * Data() const
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual char * ExpandPathName(const char *path)
unsigned long long ULong64_t
RVec< PromoteType< T > > exp(const RVec< T > &v)