24 #include "TObjString.h" 47 GO4TRACE((15,
"TGo4MbsFile::TGo4MbsFile()",__LINE__, __FILE__));
59 GO4TRACE((15,
"TGo4MbsFile::TGo4MbsFile(const char *)",__LINE__, __FILE__));
78 GO4TRACE((15,
"TGo4MbsFile::TGo4MbsFile(TGo4MbsFileParameter*)",__LINE__, __FILE__));
95 GO4TRACE((15,
"TGo4MbsFile::~TGo4MbsFile()",__LINE__, __FILE__));
103 if (!name || !*name)
return;
107 bool read_multi =
false;
116 }
else if(fname.Contains(
"*") || fname.Contains(
"?")) {
122 SetErrMess(TString::Format(
"No lmd file with mask %s", GetName()).Data());
129 lst->SetOwner(kFALSE);
134 }
else if (!isonly) {
150 std::ifstream ff(fname.Data());
153 SetErrMess(TString::Format(
"Error opening multiple file:%s", fname.Data()).Data());
174 SetName(
"LmdFilesSelection");
184 GO4TRACE((12,
"TGo4MbsFile::NextEvent()",__LINE__, __FILE__));
254 GO4TRACE((12,
"TGo4MbsFile::Close()",__LINE__, __FILE__));
268 GO4TRACE((12,
"TGo4MbsFile::Open()",__LINE__, __FILE__));
305 const char *command =
nullptr;
306 const char *rem1 =
nullptr;
307 const char *rem2 =
nullptr;
320 nextline = obj->GetName();
327 rem1 = strstr(nextline.Data(),
"!");
328 rem2 = strstr(nextline.Data(),
"#");
329 command = strstr(nextline.Data(),
"@");
330 if(command && !(rem1 && rem1 < command) && !(rem2 && rem2 < command)) {
336 gROOT->ProcessLineSync(command);
338 }
while(nextline.IsNull() || rem1 || rem2 || command);
339 convs = sscanf(nextline.Data(),
"%s %s %lu %lu %lu",nextfile,nexttag,
349 if(!strcmp(nexttag,
"0") || !strcmp(nexttag,
""))
389 const_cast<char *>(tagfile),
391 (Char_t**) headptr, 0);
424 fname.ReplaceAll(
".lmd",4,
"_ASF",4);
427 TString asfname = fname+
".root";
428 std::cout <<
"Setting autosavefile to name " << asfname << std::endl;
static const char * fgcLMDSUF
const char * GetCurrentFileName() const
const char * GetTagName() const
s_evt_channel * fxInputChannel
Int_t GetCreateStatus() const
static void Info(const char *text,...) GO4_PRINTF_ARGS
void SetCreateStatus(Int_t status)
void SetAutoSaveFile(const char *filename=nullptr, Bool_t overwrite=kFALSE, Int_t compression=5)
INTS4 f_evt_error(INTS4 l_error, CHARS *pc_dest, INTS4 l_out)
const char * GetTagName() const
Bool_t IsAutoSaveFileChange() const
void SetNewInputFile(Bool_t on=kTRUE)
static const char * fgcNOTAGFILE
static void Debug(const char *text,...) GO4_PRINTF_ARGS
INTS4 f_evt_get_tagnext(s_evt_channel *ps_chan, INTS4 l_skip, INTS4 **pl_event)
void SetErrMess(const char *txt)
void Message(Int_t prio, const char *text,...)
Int_t NumMoreFiles() const
Bool_t ClearObjects(const char *name)
void SetInputFileName(const char *fname)
INTS4 f_evt_get_tagopen(s_evt_channel *ps_chan, CHARS *pc_tag, CHARS *pc_lmd, CHARS **ps_head, INTS4 l_prihe)
const char * GetCurrentTagName() const
void AddFileName(const char *name, const char *tagname=nullptr, bool isonly=kFALSE)
Int_t NextEvent() override
void SetEventStatus(Int_t status)
static TList * ProducesFilesList(const char *mask)
const char * GetActiveName() const override
Int_t NewFileAction(Bool_t dosave=kTRUE)
static TGo4Analysis * Instance()
INTS4 f_evt_get_tagclose(s_evt_channel *ps_chan)
static const char * fgcFILELISTSUF
Int_t GetEventStatus() const
const char * GetMoreName(Int_t n) const