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