00001 #ifndef _VertexRecoManager_H_ 00002 #define _VertexRecoManager_H_ 00003 00004 #include "RecoVertex/ConfigurableVertexReco/interface/AbstractConfReconstructor.h" 00005 #include <map> 00006 #include <string> 00007 00012 class VertexRecoManager { 00013 00014 public: 00015 static VertexRecoManager & Instance(); 00016 void registerReconstructor ( const std::string & name, AbstractConfReconstructor * o, 00017 const std::string & description ); 00018 std::string describe ( const std::string & ); 00019 00020 AbstractConfReconstructor * get ( const std::string & ); 00021 std::map < std::string, AbstractConfReconstructor * > get (); 00022 00023 ~VertexRecoManager(); 00024 VertexRecoManager * clone() const; 00025 00026 private: 00027 VertexRecoManager ( const VertexRecoManager & ); 00028 VertexRecoManager (); 00029 std::map < std::string, AbstractConfReconstructor * > theAbstractConfReconstructors; 00030 std::map < std::string, std::string > theDescription; 00031 }; 00032 00033 #endif // _VertexRecoManager_H_