All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
include/N3AnaBase/event/ana_set.h
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 } // end of namespace nemo3
00119 
00120 #endif // __N3AnaBase__ana_set_h
00121 
00122 // end of ana_set.h