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 
19 class Trajectory;
24 class DetGroup;
25 class DetLayer;
26 class TempTrajectory;
27 
32 private:
33  // short names
38  typedef std::vector<Trajectory> TrajectoryContainer;
39  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
42 
43 public:
45  TrajectorySegmentBuilder(const LayerMeasurements* theInputLayerMeasurements,
46  const DetLayer& layer,
47  const Propagator& propagator,
50  bool lockHits,
51  bool bestHitOnly,
52  int maxCand)
53  : theLayerMeasurements(theInputLayerMeasurements),
54  theLayer(layer),
55  theFullPropagator(propagator),
56  theUpdator(updator),
57  theEstimator(estimator),
58  theGeomPropagator(propagator),
59  // theGeomPropagator(propagator.propagationDirection()),
60  theLockHits(lockHits),
61  theBestHitOnly(bestHitOnly),
62  theMaxCand(maxCand) {}
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,
77  const std::vector<TM>& measurements,
78  TempTrajectoryContainer& candidates);
79 
81  void updateCandidatesWithBestHit(TempTrajectory const& traj, TM measurements, TempTrajectoryContainer& candidates);
82 
84  std::vector<TrajectoryMeasurement> redoMeasurements(const TempTrajectory& traj, const DetGroup& detGroup) const;
85 
87  std::vector<TrajectoryMeasurement> unlockedMeasurements(const std::vector<TM>& measurements) const;
88 
90  void lockMeasurement(const TM& measurement);
91 
93  //B.M to be ported later
94  void cleanCandidates(std::vector<TempTrajectory>& candidates) const;
95 
96  // public:
97 
98  std::vector<TempTrajectory> addGroup(TempTrajectory const& traj,
99  std::vector<TrajectoryMeasurementGroup>::const_iterator begin,
100  std::vector<TrajectoryMeasurementGroup>::const_iterator end);
101 
102  void updateWithInvalidHit(TempTrajectory& traj,
103  const std::vector<TMG>& groups,
104  TempTrajectoryContainer& candidates) const;
105 
106 private:
112  // AnalyticalPropagator theGeomPropagator;
114 
119 
120  bool theDbgFlg;
121 };
122 
123 #endif
const MeasurementEstimator & theEstimator
TrajectoryMeasurementGroup TMG
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< TempTrajectory > TempTrajectoryContainer
const LayerMeasurements * theLayerMeasurements
const TrajectoryStateUpdator & theUpdator
constexpr std::array< uint8_t, layerIndexSize > layer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
std::vector< Trajectory > TrajectoryContainer
#define dso_internal
Definition: Visibility.h:13
std::vector< ConstRecHitPointer > ConstRecHitContainer
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