CMS 3D CMS Logo

MkFitInputWrapper.h
Go to the documentation of this file.
1 #ifndef RecoTracker_MkFit_MkFitInputWrapper_h
2 #define RecoTracker_MkFit_MkFitInputWrapper_h
3 
5 
6 #include <memory>
7 #include <vector>
8 
9 namespace mkfit {
10  class Hit;
11  class Track;
12  class LayerNumberConverter;
13  using HitVec = std::vector<Hit>;
14  using TrackVec = std::vector<Track>;
15 } // namespace mkfit
16 
18 public:
20  MkFitInputWrapper(MkFitHitIndexMap&& hitIndexMap,
21  std::vector<mkfit::HitVec>&& hits,
22  mkfit::TrackVec&& seeds,
23  mkfit::LayerNumberConverter&& lnc);
25 
26  MkFitInputWrapper(MkFitInputWrapper const&) = delete;
27  MkFitInputWrapper& operator=(MkFitInputWrapper const&) = delete;
30 
31  MkFitHitIndexMap const& hitIndexMap() const { return hitIndexMap_; }
32  mkfit::TrackVec const& seeds() const { return *seeds_; }
33  std::vector<mkfit::HitVec> const& hits() const { return hits_; }
34  mkfit::LayerNumberConverter const& layerNumberConverter() const { return *lnc_; }
35  unsigned int nlayers() const;
36 
37 private:
39  std::vector<mkfit::HitVec> hits_;
40  std::unique_ptr<mkfit::TrackVec> seeds_; // for pimpl pattern
41  std::unique_ptr<mkfit::LayerNumberConverter> lnc_; // for pimpl pattern
42 };
43 
44 #endif
std::unique_ptr< mkfit::TrackVec > seeds_
std::vector< Hit > HitVec
mkfit::LayerNumberConverter const & layerNumberConverter() const
std::vector< mkfit::HitVec > const & hits() const
mkfit::TrackVec const & seeds() const
MkFitHitIndexMap hitIndexMap_
MkFitHitIndexMap const & hitIndexMap() const
std::vector< Track > TrackVec
std::vector< mkfit::HitVec > hits_
std::unique_ptr< mkfit::LayerNumberConverter > lnc_