Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:14

0001 #ifndef _MultiVertexReconstructor_H_
0002 #define _MultiVertexReconstructor_H_
0003 
0004 #include "RecoVertex/VertexPrimitives/interface/VertexReconstructor.h"
0005 #include "RecoVertex/MultiVertexFit/interface/MultiVertexFitter.h"
0006 #include "RecoVertex/MultiVertexFit/interface/DefaultMVFAnnealing.h"
0007 
0008 /**
0009  *  Class that wraps the MultiVertexFitter, together with
0010  *  a user-supplied VertexReconstructor into a VertexReconstructor.
0011  */
0012 class MultiVertexReconstructor : public VertexReconstructor {
0013 public:
0014   MultiVertexReconstructor(const VertexReconstructor &,
0015                            const AnnealingSchedule &s = DefaultMVFAnnealing(),
0016                            float revive = -1.);
0017   MultiVertexReconstructor(const MultiVertexReconstructor &);
0018   ~MultiVertexReconstructor() override;
0019 
0020   std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &,
0021                                         const reco::BeamSpot &) const override;
0022   std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &) const override;
0023   std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &,
0024                                         const std::vector<reco::TransientTrack> &primaries) const;
0025 
0026   std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &,
0027                                         const std::vector<reco::TransientTrack> &primaries,
0028                                         const reco::BeamSpot &spot) const override;
0029 
0030   VertexReconstructor *reconstructor() const;
0031 
0032   MultiVertexReconstructor *clone() const override;
0033 
0034 private:
0035   VertexReconstructor *theOldReconstructor;
0036   mutable MultiVertexFitter theFitter;
0037 };
0038 
0039 #endif