CMS 3D CMS Logo

TrajectorySeed.h
Go to the documentation of this file.
1 #ifndef DATAFORMATS_TRAJECTORYSEED_TRAJECTORYSEED_h
2 #define DATAFORMATS_TRAJECTORYSEED_TRAJECTORYSEED_h
3 
8 #include <utility>
9 #include <algorithm>
10 
18 public:
20  typedef recHitContainer::const_iterator const_iterator;
21  typedef std::pair<const_iterator, const_iterator> range;
22 
24  virtual ~TrajectorySeed() {}
25 
26  TrajectorySeed(PTrajectoryStateOnDet const& ptsos, recHitContainer const& rh, PropagationDirection dir)
27  : hits_(rh), tsos_(ptsos), dir_(dir) {}
28 
30  : hits_(std::move(rh)), tsos_(ptsos), dir_(dir) {}
31 
32  void swap(PTrajectoryStateOnDet& ptsos, recHitContainer& rh, PropagationDirection& dir) noexcept {
33  hits_.swap(rh);
34  std::swap(tsos_, ptsos);
35  std::swap(dir_, dir);
36  }
37 
39  hits_.swap(rh.hits_);
40  std::swap(tsos_, rh.tsos_);
41  std::swap(dir_, rh.dir_);
42  }
43 
44  TrajectorySeed(TrajectorySeed const& o) = default;
45 
46  TrajectorySeed& operator=(TrajectorySeed const& o) = default;
47 
48  TrajectorySeed(TrajectorySeed&& o) noexcept = default;
49 
51 
52  range recHits() const { return std::make_pair(hits_.begin(), hits_.end()); }
53  unsigned int nHits() const { return hits_.size(); }
54  PropagationDirection direction() const { return dir_; }
55  PTrajectoryStateOnDet const& startingState() const { return tsos_; }
56 
57  virtual TrajectorySeed* clone() const { return new TrajectorySeed(*this); }
58 
59 private:
63 };
64 
65 inline void swap(TrajectorySeed& rh, TrajectorySeed& lh) noexcept { rh.swap(lh); }
66 
68 
69 #endif
PropagationDirection direction() const
std::pair< const_iterator, const_iterator > range
virtual TrajectorySeed * clone() const
edm::OwnVector< TrackingRecHit > recHitContainer
size_type size() const
Definition: OwnVector.h:300
TrajectorySeed & operator=(TrajectorySeed const &o)=default
PropagationDirection dir_
PropagationDirection
bool int lh
Definition: SIMDVec.h:20
iterator begin()
Definition: OwnVector.h:280
TrajectorySeed(PTrajectoryStateOnDet const &ptsos, recHitContainer const &rh, PropagationDirection dir)
recHitContainer::const_iterator const_iterator
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
void swap(TrajectorySeed &rh)
TrajectorySeed(PTrajectoryStateOnDet const &ptsos, recHitContainer &&rh, PropagationDirection dir)
virtual ~TrajectorySeed()
#define noexcept
iterator end()
Definition: OwnVector.h:285
PTrajectoryStateOnDet const & startingState() const
void swap(PTrajectoryStateOnDet &ptsos, recHitContainer &rh, PropagationDirection &dir)
TrajectorySeed BasicTrajectorySeed
range recHits() const
unsigned int nHits() const
PTrajectoryStateOnDet tsos_
edm::OwnVector< TrackingRecHit > hits_
void swap(OwnVector< T, P > &other)
Definition: OwnVector.h:512
def move(src, dest)
Definition: eostools.py:511