Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /*! \class VertexFitterManager
0012  *  Class that manages the vertex reconstruction strategies
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  // _VertexFitterManager_H_