All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
include/N3AnaBase/cuts/cut_factory.h
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 }//end of namespace nemo3
00053 
00054 #endif //  __cut_factory_h
00055 
00056 // end of cut_factory.h