CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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"
12 #include <vector>
13 
15 
16 
19 class Trajectory;
24 class DetGroup;
25 class DetLayer;
26 class TempTrajectory;
27 
32 
33 private:
34  // short names
39  typedef std::vector<Trajectory> TrajectoryContainer;
40  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
43 
44 public:
45 
47  TrajectorySegmentBuilder (const MeasurementTracker* theInputMeasurementTracker,
48  const LayerMeasurements* theInputLayerMeasurements,
49  const DetLayer& layer,
50  const Propagator& propagator,
51  const TrajectoryStateUpdator& updator,
52  const MeasurementEstimator& estimator,
53  bool lockHits, bool bestHitOnly, int maxSegments ) :
54  theMeasurementTracker(theInputMeasurementTracker),
55  theLayerMeasurements(theInputLayerMeasurements),
56  theLayer(layer),
57  theFullPropagator(propagator),
58  theUpdator(updator),
59  theEstimator(estimator),
60  theGeomPropagator(propagator),
61 // theGeomPropagator(propagator.propagationDirection()),
62  theLockHits(lockHits),theBestHitOnly(bestHitOnly),
63  theMaxSegments(maxSegments)
64  {}
65 
68 
70  //std::vector<Trajectory> segments (const TSOS startingState);
71  TempTrajectoryContainer segments (const TSOS startingState);
72 
73 private:
75  void updateTrajectory (TempTrajectory& traj, const TM& tm) const;
76 
78  void updateCandidates (TempTrajectory& traj, const std::vector<TM>& measurements,
79  TempTrajectoryContainer& candidates);
80 
82  void updateCandidatesWithBestHit (TempTrajectory& traj, const std::vector<TM>& measurements,
83  TempTrajectoryContainer& candidates);
84 
86  std::vector<TrajectoryMeasurement> redoMeasurements (const TempTrajectory& traj,
87  const DetGroup& detGroup) const;
88 
90  std::vector<TrajectoryMeasurement> unlockedMeasurements (const std::vector<TM>& measurements) const;
91 
93  void lockMeasurement (const TM& measurement);
94 
96  //B.M to be ported later
97  void cleanCandidates (std::vector<TempTrajectory>& candidates) const;
98 
99 // public:
100 
101  std::vector<TempTrajectory> addGroup( TempTrajectory& traj,
102  std::vector<TrajectoryMeasurementGroup>::const_iterator begin,
103  std::vector<TrajectoryMeasurementGroup>::const_iterator end);
104 
105  void updateWithInvalidHit (TempTrajectory& traj,
106  const std::vector<TMG>& groups,
107  TempTrajectoryContainer& candidates) const;
108 
109 private:
116 // AnalyticalPropagator theGeomPropagator;
118 
122 
124 
125  bool theDbgFlg;
126 };
127 
128 #endif
const MeasurementEstimator & theEstimator
TrajectoryMeasurementGroup TMG
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< TempTrajectory > TempTrajectoryContainer
const LayerMeasurements * theLayerMeasurements
const TrajectoryStateUpdator & theUpdator
std::vector< Trajectory > TrajectoryContainer
#define dso_internal
Definition: Visibility.h:13
#define end
Definition: vmac.h:38
std::vector< ConstRecHitPointer > ConstRecHitContainer
#define begin
Definition: vmac.h:31
ConstRecHitContainer theLockedHits
const MeasurementTracker * theMeasurementTracker
TrajectorySegmentBuilder(const MeasurementTracker *theInputMeasurementTracker, const LayerMeasurements *theInputLayerMeasurements, const DetLayer &layer, const Propagator &propagator, const TrajectoryStateUpdator &updator, const MeasurementEstimator &estimator, bool lockHits, bool bestHitOnly, int maxSegments)
constructor from layer and helper objects
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
TrajectoryStateOnSurface TSOS