00001 #ifndef __cut_factory_h
00002 #define __cut_factory_h 1
00003
00004 #include <iostream>
00005 #include <string>
00006 #include <stdexcept>
00007 #include <sstream>
00008 #include <map>
00009
00010 #include <NemoCuts/ICut.hh>
00011 #include <NemoCuts/ICutFactory.hh>
00012 #include <NemoCuts/BaseCutFactory.hh>
00013 #include <NemoCuts/CutMgr.hh>
00014
00015 #include <N3AnaBase/cuts/i_ana_event_cut.h>
00016
00017 namespace nemo3 {
00019
00025 class cut_factory : public nemocuts::BaseCutFactory
00026 {
00027
00028 public:
00030 cut_creator_dict_t __creators;
00032 bool is_debug () const;
00034 void set_debug (bool);
00036 void do_register (const cut_creator_t & creator_,
00037 const std::string & cut_id_ = "");
00039 cut_factory (bool preload_ = true);
00041 virtual ~cut_factory ();
00042
00044 virtual nemocuts::ICut * CreateCut (const std::string & cut_id_,
00045 const nemocuts::ICutFactory::cut_properties_t & cut_properties_);
00046
00048 void dump_cuts (std::ostream & out_ = std::clog);
00049
00050 };
00051
00052 }
00053
00054 #endif // __cut_factory_h
00055
00056