00001 #ifndef EVENT_LCRUNHEADERIMPL_H
00002 #define EVENT_LCRUNHEADERIMPL_H 1
00003
00004 #include <string>
00005
00006 #include "EVENT/LCIO.h"
00007 #include "EVENT/LCRunHeader.h"
00008 #include "AccessChecked.h"
00009 #include "LCParametersImpl.h"
00010
00011 namespace IMPL {
00012
00018 class LCRunHeaderImpl : public EVENT::LCRunHeader, public AccessChecked {
00019
00020 public:
00021
00022 LCRunHeaderImpl() ;
00023
00025 virtual ~LCRunHeaderImpl() ;
00026
00027 virtual int id() const { return simpleUID() ; }
00028
00031 virtual int getRunNumber() const ;
00032
00035 virtual const std::string & getDetectorName() const ;
00036
00039 virtual const std::string & getDescription() const ;
00040
00044 virtual const std::vector<std::string> * getActiveSubdetectors() const ;
00045
00046
00049 virtual const EVENT::LCParameters & getParameters() const { return _params ; }
00050
00053 virtual EVENT::LCParameters & parameters() { return _params ; }
00054
00055
00056
00057
00060 void setRunNumber( int rn) ;
00061
00064 void setDetectorName(const std::string& dn) ;
00065
00068 void setDescription(const std::string& dsc) ;
00069
00072 void addActiveSubdetector(const std::string& adn) ;
00073
00074
00075 protected:
00076 virtual void setReadOnly( bool readOnly ) ;
00077
00078 protected:
00079
00080 int _runNumber{0} ;
00081 std::string _detectorName{} ;
00082 std::string _description{} ;
00083 std::vector<std::string> _activeSubdetectors{} ;
00084
00085 LCParametersImpl _params{} ;
00086
00087 };
00088 }
00089 #endif