Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:28:08

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 /*! \class VertexRecoManager
0011  *  Class that manages the vertex reconstruction strategies
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  // _VertexRecoManager_H_