CMS 3D CMS Logo

CkfTrajectoryBuilder.h
Go to the documentation of this file.
1 #ifndef CkfTrajectoryBuilder_H
2 #define CkfTrajectoryBuilder_H
3 
4 #include <vector>
5 
6 class Propagator;
9 class TrajectorySeed;
11 class TrajectoryFilter;
12 
17 
21 
23 
27 
28 #include <map>
29 #include <boost/unordered_map.hpp>
30 
32 class TrajectoryFilter;
33 
35 
36 public:
37 
38  typedef std::vector<Trajectory> TrajectoryContainer;
39  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
40 
42  CkfTrajectoryBuilder(const edm::ParameterSet& conf, std::unique_ptr<TrajectoryFilter> filter);
43 
44  ~CkfTrajectoryBuilder() override {}
45 
47  TrajectoryContainer trajectories(const TrajectorySeed& seed) const override;
49  void trajectories(const TrajectorySeed& seed, TrajectoryContainer &ret) const override;
50 
51  // new interface returning the start Trajectory...
53  TrajectoryContainer &ret,
54  unsigned int& nCandPerSeed,
55  const TrajectoryFilter*) const override;
56 
57 
58  void rebuildTrajectories(TempTrajectory const& startingTraj, const TrajectorySeed&,
59  TrajectoryContainer& result) const override {}
60 
62  // virtual void setEvent(const edm::Event& event) const;
63 
64 
65 
66  protected:
67  int theMaxCand;
73 
74 
75  protected:
76  void setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) override;
77 
78  virtual void findCompatibleMeasurements(const TrajectorySeed&seed, const TempTrajectory& traj, std::vector<TrajectoryMeasurement> & result) const;
79 
80  unsigned int limitedCandidates(const TrajectorySeed&seed, TempTrajectory& startingTraj, TrajectoryContainer& result) const;
81  unsigned int limitedCandidates(const boost::shared_ptr<const TrajectorySeed> & sharedSeed, TempTrajectoryContainer &candidates, TrajectoryContainer& result) const;
82 
83  void updateTrajectory( TempTrajectory& traj, TM && tm) const;
84 
85  /*
86  //not mature for integration.
87  bool theSharedSeedCheck;
88  std::string theUniqueName;
89  void rememberSeedAndTrajectories(const TrajectorySeed& seed,TrajectoryContainer &result) const;
90  bool seedAlreadyUsed(const TrajectorySeed& seed,TempTrajectoryContainer &candidates) const;
91  bool sharedSeed(const TrajectorySeed& seed1,const TrajectorySeed& seed2) const;
92  // mutable TempTrajectoryContainer theCachedTrajectories;
93  typedef boost::unordered_multimap<uint32_t,TempTrajectory> SharedTrajectory;
94  mutable SharedTrajectory theCachedTrajectories;
95  */
96 };
97 
98 #endif
std::vector< Trajectory > TrajectoryContainer
TrajectoryContainer trajectories(const TrajectorySeed &seed) const override
trajectories building starting from a seed
CkfTrajectoryBuilder(const edm::ParameterSet &conf, edm::ConsumesCollector &iC)
std::vector< TempTrajectory > TempTrajectoryContainer
int iEvent
Definition: GenABIO.cc:224
void rebuildTrajectories(TempTrajectory const &startingTraj, const TrajectorySeed &, TrajectoryContainer &result) const override
unsigned int limitedCandidates(const TrajectorySeed &seed, TempTrajectory &startingTraj, TrajectoryContainer &result) const
TempTrajectory buildTrajectories(const TrajectorySeed &, TrajectoryContainer &ret, unsigned int &nCandPerSeed, const TrajectoryFilter *) const override
virtual void findCompatibleMeasurements(const TrajectorySeed &seed, const TempTrajectory &traj, std::vector< TrajectoryMeasurement > &result) const
void updateTrajectory(TempTrajectory &traj, TM &&tm) const
void setEvent_(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
int theMaxCand
set Event for the internal MeasurementTracker data member