CMS 3D CMS Logo

TrajectorySegmentBuilder.h
Go to the documentation of this file.
1 #ifndef TrajectorySegmentBuilder_H
2 #define TrajectorySegmentBuilder_H
3 
4 //B.M. #include "CommonDet/DetUtilities/interface/DetExceptions.h"
7 //B.M.#include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
13 #include <vector>
14 
16 
17 
20 class Trajectory;
25 class DetGroup;
26 class DetLayer;
27 class TempTrajectory;
28 
33 
34 private:
35  // short names
40  typedef std::vector<Trajectory> TrajectoryContainer;
41  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
44 
45 public:
46 
48  TrajectorySegmentBuilder (const LayerMeasurements* theInputLayerMeasurements,
49  const DetLayer& layer,
50  const Propagator& propagator,
53  bool lockHits, bool bestHitOnly, int maxCand) :
54  theLayerMeasurements(theInputLayerMeasurements),
55  theLayer(layer),
56  theFullPropagator(propagator),
57  theUpdator(updator),
58  theEstimator(estimator),
59  theGeomPropagator(propagator),
60 // theGeomPropagator(propagator.propagationDirection()),
61  theLockHits(lockHits),theBestHitOnly(bestHitOnly),theMaxCand(maxCand)
62  {}
63 
66 
68  //std::vector<Trajectory> segments (const TSOS startingState);
69  TempTrajectoryContainer segments (const TSOS startingState);
70 
71 private:
73  void updateTrajectory (TempTrajectory& traj, TM tm) const;
74 
76  void updateCandidates (TempTrajectory const& traj, const std::vector<TM>& measurements,
77  TempTrajectoryContainer& candidates);
78 
80  void updateCandidatesWithBestHit (TempTrajectory const& traj, TM measurements,
81  TempTrajectoryContainer& candidates);
82 
84  std::vector<TrajectoryMeasurement> redoMeasurements (const TempTrajectory& traj,
85  const DetGroup& detGroup) const;
86 
88  std::vector<TrajectoryMeasurement> unlockedMeasurements (const std::vector<TM>& measurements) const;
89 
91  void lockMeasurement (const TM& measurement);
92 
94  //B.M to be ported later
95  void cleanCandidates (std::vector<TempTrajectory>& candidates) const;
96 
97 // public:
98 
99  std::vector<TempTrajectory> addGroup( TempTrajectory const& traj,
100  std::vector<TrajectoryMeasurementGroup>::const_iterator begin,
101  std::vector<TrajectoryMeasurementGroup>::const_iterator end);
102 
103  void updateWithInvalidHit (TempTrajectory& traj,
104  const std::vector<TMG>& groups,
105  TempTrajectoryContainer& candidates) const;
106 
107 private:
113 // AnalyticalPropagator theGeomPropagator;
115 
119  ConstRecHitContainer theLockedHits;
120 
121  bool theDbgFlg;
122 };
123 
124 #endif
const MeasurementEstimator & theEstimator
TrajectoryMeasurementGroup TMG
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< TempTrajectory > TempTrajectoryContainer
const LayerMeasurements * theLayerMeasurements
const TrajectoryStateUpdator & theUpdator
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
std::vector< Trajectory > TrajectoryContainer
#define end
Definition: vmac.h:39
std::vector< ConstRecHitPointer > ConstRecHitContainer
#define dso_internal
#define begin
Definition: vmac.h:32
ConstRecHitContainer theLockedHits
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
TrajectoryStateOnSurface TSOS
TrajectorySegmentBuilder(const LayerMeasurements *theInputLayerMeasurements, const DetLayer &layer, const Propagator &propagator, const TrajectoryStateUpdator &updator, const MeasurementEstimator &estimator, bool lockHits, bool bestHitOnly, int maxCand)
constructor from layer and helper objects