/
MkFitInputWrapper.h
44 lines (36 loc) · 1.41 KB
/
MkFitInputWrapper.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef RecoTracker_MkFit_MkFitInputWrapper_h
#define RecoTracker_MkFit_MkFitInputWrapper_h
#include "RecoTracker/MkFit/interface/MkFitIndexLayer.h"
#include <memory>
#include <vector>
namespace mkfit {
class Hit;
class Track;
class LayerNumberConverter;
using HitVec = std::vector<Hit>;
using TrackVec = std::vector<Track>;
} // namespace mkfit
class MkFitInputWrapper {
public:
MkFitInputWrapper();
MkFitInputWrapper(MkFitIndexLayer&& indexLayers,
std::vector<mkfit::HitVec>&& hits,
mkfit::TrackVec&& seeds,
mkfit::LayerNumberConverter&& lnc);
~MkFitInputWrapper();
MkFitInputWrapper(MkFitInputWrapper const&) = delete;
MkFitInputWrapper& operator=(MkFitInputWrapper const&) = delete;
MkFitInputWrapper(MkFitInputWrapper&&) = default;
MkFitInputWrapper& operator=(MkFitInputWrapper&&) = default;
MkFitIndexLayer const& indexLayers() const { return indexLayers_; }
mkfit::TrackVec const& seeds() const { return *seeds_; }
std::vector<mkfit::HitVec> const& hits() const { return hits_; }
mkfit::LayerNumberConverter const& layerNumberConverter() const { return *lnc_; }
unsigned int nlayers() const;
private:
MkFitIndexLayer indexLayers_;
std::vector<mkfit::HitVec> hits_;
std::unique_ptr<mkfit::TrackVec> seeds_; // for pimpl pattern
std::unique_ptr<mkfit::LayerNumberConverter> lnc_; // for pimpl pattern
};
#endif