00001
00002
00018 #ifndef __N3AnaBase__ana_set_h
00019 #define __N3AnaBase__ana_set_h 1
00020
00021 #include <stdexcept>
00022 #include <iostream>
00023 #include <sstream>
00024 #include <fstream>
00025 #include <string>
00026 #include <vector>
00027 #include <list>
00028
00029 #include <datatools/serialization/serialization.h>
00030 #include <datatools/utils/properties.h>
00031 #include <datatools/utils/i_tree_dump.h>
00032 #include <datatools/utils/i_clear.h>
00033 #include <datatools/utils/i_propinit.h>
00034
00035 #include <N3AnaBase/event/ana_event.h>
00036
00037 namespace nemo3 {
00039 class ana_set :
00040 public datatools::utils::i_tree_dumpable,
00041 public datatools::utils::i_clear,
00042 public datatools::serialization::i_serializable
00043 {
00044
00045 public:
00047 typedef std::list<ana_event> event_col;
00048
00049 public:
00051 bool is_debug () const;
00052
00054 void set_debug (bool);
00055
00057 const datatools::utils::properties & properties () const;
00058
00060 datatools::utils::properties & properties ();
00061
00063 void clear_events ();
00064
00066 event_col & events ();
00067
00069 const event_col & events () const;
00070
00071 public:
00072
00074 ana_set (bool debug_ = false);
00075
00077 virtual ~ana_set ();
00078
00079 private:
00081 bool __debug;
00082 datatools::utils::properties __properties;
00083 event_col __events;
00084
00085 public:
00086
00088 virtual void clear ();
00089
00091 virtual void tree_dump (std::ostream & out_ = std::cerr,
00092 const std::string & title_ = "",
00093 const std::string & indent_ = "",
00094 bool inherit_ = false) const;
00095
00097 static const std::string SERIAL_TAG;
00098
00100 virtual const std::string & get_serial_tag () const;
00101
00102 private:
00103
00105 friend class boost::serialization::access;
00106
00108 template<class Archive>
00109 void serialize (Archive & ar_,
00110 const unsigned int version_)
00111 {
00112 ar_ & boost::serialization::make_nvp ("properties", __properties);
00113 ar_ & boost::serialization::make_nvp ("events", __events);
00114 }
00115
00116 };
00117
00118 }
00119
00120 #endif // __N3AnaBase__ana_set_h
00121
00122