File indexing completed on 2024-04-06 12:29:06
0001 #ifndef _VertexRecoManager_H_
0002 #define _VertexRecoManager_H_
0003
0004 #include "RecoVertex/ConfigurableVertexReco/interface/AbstractConfReconstructor.h"
0005 #include <map>
0006 #include <string>
0007 #include <functional>
0008 #include <memory>
0009
0010
0011
0012
0013
0014 class VertexRecoManager {
0015 public:
0016 static VertexRecoManager &Instance();
0017 void registerReconstructor(const std::string &name,
0018 std::function<AbstractConfReconstructor *()> o,
0019 const std::string &description);
0020 std::string describe(const std::string &) const;
0021
0022 std::unique_ptr<AbstractConfReconstructor> get(const std::string &) const;
0023 std::vector<std::string> getNames() const;
0024
0025 ~VertexRecoManager();
0026 VertexRecoManager *clone() const;
0027
0028 private:
0029 VertexRecoManager(const VertexRecoManager &);
0030 VertexRecoManager();
0031 std::map<std::string, std::function<AbstractConfReconstructor *()> > theAbstractConfReconstructors;
0032 std::map<std::string, std::string> theDescription;
0033 };
0034
0035 #endif