musrfit  1.9.2
PRunDataHandler.h
Go to the documentation of this file.
1 /***************************************************************************
2 
3  PRunDataHandler.h
4 
5  Author: Andreas Suter
6  e-mail: andreas.suter@psi.ch
7 
8 ***************************************************************************/
9 
10 /***************************************************************************
11  * Copyright (C) 2007-2023 by Andreas Suter *
12  * andreas.suter@psi.ch *
13  * *
14  * This program is free software; you can redistribute it and/or modify *
15  * it under the terms of the GNU General Public License as published by *
16  * the Free Software Foundation; either version 2 of the License, or *
17  * (at your option) any later version. *
18  * *
19  * This program is distributed in the hope that it will be useful, *
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22  * GNU General Public License for more details. *
23  * *
24  * You should have received a copy of the GNU General Public License *
25  * along with this program; if not, write to the *
26  * Free Software Foundation, Inc., *
27  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
28  ***************************************************************************/
29 
30 #ifndef _PRUNDATAHANDLER_H_
31 #define _PRUNDATAHANDLER_H_
32 
33 #include <TString.h>
34 
35 #include "PMusr.h"
36 #include "PMsrHandler.h"
37 
42 {
43  public:
45  PRunDataHandler(TString fileName, const TString fileFormat);
46  PRunDataHandler(TString fileName, const TString fileFormat, const PStringVector dataPath);
47  PRunDataHandler(TString fileName, const TString fileFormat, const TString dataPath, PRawRunData &runData);
48  PRunDataHandler(PAny2ManyInfo *any2ManyInfo);
49  PRunDataHandler(PAny2ManyInfo *any2ManyInfo, const PStringVector dataPath);
50  PRunDataHandler(PMsrHandler *msrInfo);
51  PRunDataHandler(PMsrHandler *msrInfo, const PStringVector dataPath);
52  virtual ~PRunDataHandler();
53 
54  virtual void ReadData();
55  virtual void ConvertData();
56  virtual Bool_t WriteData(TString fileName="");
57 
58  virtual Bool_t IsAllDataAvailable() const { return fAllDataAvailable; }
59  virtual PRawRunData* GetRunData(const TString &runName);
60  virtual PRawRunData* GetRunData(const UInt_t idx=0);
61  virtual Int_t GetNoOfRunData() {return fData.size(); }
62 
63  virtual Bool_t SetRunData(PRawRunData *data, UInt_t idx=0);
64 
65  private:
69 
71  TString fFileFormat;
72  TString fRunName;
73  TString fRunPathName;
75 
76  virtual void Init(const Int_t tag=0);
77  virtual Bool_t ReadFilesMsr();
78  virtual Bool_t ReadWriteFilesList();
79  virtual Bool_t FileAlreadyRead(TString runName);
80  virtual void TestFileName(TString &runName, const TString &ext);
81  virtual Bool_t FileExistsCheck(PMsrRunBlock &runInfo, const UInt_t idx);
82  virtual Bool_t FileExistsCheck(const Bool_t fileName, const Int_t idx);
83  virtual Bool_t FileExistsCheck(const TString fileName);
84  virtual Bool_t ReadRootFile();
85  virtual Bool_t ReadNexusFile();
86  virtual Bool_t ReadWkmFile();
87  virtual Bool_t ReadPsiBinFile();
88  virtual Bool_t ReadMudFile();
89  virtual Bool_t ReadMduAsciiFile();
90  virtual Bool_t ReadAsciiFile();
91  virtual Bool_t ReadDBFile();
92  virtual Bool_t ReadDatFile();
93 
94  virtual Bool_t WriteMusrRootFile(TString fln="");
95  virtual Bool_t WriteRootFile(TString fln="");
96  virtual Bool_t WriteNexusFile(TString fln="");
97  virtual Bool_t WriteWkmFile(TString fln="");
98  virtual Bool_t WritePsiBinFile(TString fln="");
99  virtual Bool_t WriteMudFile(TString fln="");
100  virtual Bool_t WriteAsciiFile(TString fln="");
101 
102  virtual Bool_t StripWhitespace(TString &str);
103  virtual Bool_t IsWhitespace(const Char_t *str);
104  virtual Double_t ToDouble(TString &str, Bool_t &ok);
105  virtual Int_t ToInt(TString &str, Bool_t &ok);
106  virtual Int_t GetDataTagIndex(TString &str, const PStringVector* fLabels);
107 
108  virtual TString GenerateOutputFileName(const TString fileName, const TString extension, Bool_t &ok);
109  virtual TString GetFileName(const TString extension, Bool_t &ok);
110  virtual TString FileNameFromTemplate(TString &fileNameTemplate, Int_t run, TString &year, Bool_t &ok);
111  virtual bool DateToISO8601(std::string inDate, std::string &iso8601Date);
112  virtual void SplitTimeDate(TString timeDate, TString &time, TString &date, Bool_t &ok);
113  virtual TString GetMonth(Int_t month);
114  virtual TString GetYear(Int_t month);
115 };
116 
117 #endif // _PRUNDATAHANDLER_H_
virtual Bool_t StripWhitespace(TString &str)
std::vector< PRawRunData > PRawRunDataList
Definition: PMusr.h:524
virtual ~PRunDataHandler()
virtual Double_t ToDouble(TString &str, Bool_t &ok)
virtual Bool_t ReadWkmFile()
PRawRunDataList fData
keeping all the raw data
virtual void Init(const Int_t tag=0)
virtual Bool_t ReadRootFile()
virtual void TestFileName(TString &runName, const TString &ext)
virtual TString GetYear(Int_t month)
virtual Bool_t WriteMudFile(TString fln="")
virtual TString GenerateOutputFileName(const TString fileName, const TString extension, Bool_t &ok)
virtual TString GetFileName(const TString extension, Bool_t &ok)
virtual Bool_t WriteMusrRootFile(TString fln="")
TString fRunPathName
current path file name
virtual Bool_t ReadFilesMsr()
virtual void SplitTimeDate(TString timeDate, TString &time, TString &date, Bool_t &ok)
TString fRunName
current run name
virtual PRawRunData * GetRunData(const TString &runName)
virtual Bool_t WritePsiBinFile(TString fln="")
virtual Bool_t FileExistsCheck(PMsrRunBlock &runInfo, const UInt_t idx)
virtual TString GetMonth(Int_t month)
virtual Bool_t WriteNexusFile(TString fln="")
Bool_t fAllDataAvailable
flag indicating if all data sets could be read
PAny2ManyInfo * fAny2ManyInfo
pointer to the any2many data structure
virtual Bool_t ReadDatFile()
PStringVector fDataPath
vector containing all the search paths where to look for data files
virtual Bool_t SetRunData(PRawRunData *data, UInt_t idx=0)
virtual bool DateToISO8601(std::string inDate, std::string &iso8601Date)
virtual Bool_t WriteAsciiFile(TString fln="")
virtual Bool_t IsWhitespace(const Char_t *str)
virtual Bool_t ReadMduAsciiFile()
virtual Bool_t WriteData(TString fileName="")
virtual Int_t ToInt(TString &str, Bool_t &ok)
virtual Bool_t ReadAsciiFile()
TString fFileFormat
keeps the file format if explicitly given
virtual Int_t GetNoOfRunData()
virtual Bool_t ReadNexusFile()
virtual Bool_t WriteRootFile(TString fln="")
virtual Bool_t ReadMudFile()
virtual Bool_t ReadPsiBinFile()
virtual Bool_t ReadDBFile()
virtual Bool_t WriteWkmFile(TString fln="")
virtual TString FileNameFromTemplate(TString &fileNameTemplate, Int_t run, TString &year, Bool_t &ok)
virtual Int_t GetDataTagIndex(TString &str, const PStringVector *fLabels)
std::vector< TString > PStringVector
Definition: PMusr.h:214
virtual Bool_t ReadWriteFilesList()
PMsrHandler * fMsrInfo
pointer to the msr-file handler
virtual Bool_t IsAllDataAvailable() const
virtual void ConvertData()
virtual void ReadData()
virtual Bool_t FileAlreadyRead(TString runName)