00001 #ifndef SCANHEADER_H
00002 #define SCANHEADER_H
00003
00004 #include <string>
00005 #include <boost/shared_ptr.hpp>
00006 #include "Sct/Serializable.h"
00007 #include "Sct/Streamable.h"
00008
00009 using namespace std;
00010 using boost::shared_ptr;
00011
00012 class TH1;
00013 class TH2;
00014
00015 namespace SctData {
00016
00017 class ConfigurationVariable;
00018 class DataStatus;
00019
00026 class ScanHeader : public virtual Sct::Serializable {
00027 public:
00028
00029 ScanHeader(unsigned int scanNumber, unsigned int runNumber, string moduleName, const ConfigurationVariable& variable) throw() ;
00030
00031 ScanHeader() throw() ;
00032
00036 virtual ~ScanHeader() throw();
00037
00038
00039 virtual string getClassName() const throw() ;
00040 virtual string getUniqueID() const throw();
00041
00042 static string getUniqueID(unsigned int runNumber, unsigned int scanNumber, const string& moduleName) throw();
00043
00049
00050
00054 unsigned int getScanNumber() const throw() {
00055 return scanNumber;
00056 }
00057
00060 unsigned int getRunNumber() const throw() {
00061 return runNumber;
00062 }
00063
00066 const string& getModuleName() const throw() {
00067 return moduleName;
00068 }
00069
00072 const ConfigurationVariable& getVariable() const throw() {
00073 return *variable;
00074 }
00075
00080 bool operator==(const ScanHeader& scan) const throw() ;
00081
00082
00083 protected:
00084 unsigned int scanNumber;
00085 unsigned int runNumber;
00086 string moduleName;
00087 const ConfigurationVariable* variable;
00088
00089 friend class ScanHeaderIOHelper;
00090 };
00091 }
00092 #endif //#ifndef SCANHEADER_H