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) :
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  {}
64 
67 
69  //std::vector<Trajectory> segments (const TSOS startingState);
70  TempTrajectoryContainer segments (const TSOS startingState);
71 
72 private:
74  void updateTrajectory (TempTrajectory& traj, const TM& tm) const;
75 
77  void updateCandidates (TempTrajectory const& traj, const std::vector<TM>& measurements,
78  TempTrajectoryContainer& candidates);
79 
81  void updateCandidatesWithBestHit (TempTrajectory const& traj, const std::vector<TM>& measurements,
82  TempTrajectoryContainer& candidates);
83 
85  std::vector<TrajectoryMeasurement> redoMeasurements (const TempTrajectory& traj,
86  const DetGroup& detGroup) const;
87 
89  std::vector<TrajectoryMeasurement> unlockedMeasurements (const std::vector<TM>& measurements) const;
90 
92  void lockMeasurement (const TM& measurement);
93 
95  //B.M to be ported later
96  void cleanCandidates (std::vector<TempTrajectory>& candidates) const;
97 
98 // public:
99 
100  std::vector<TempTrajectory> addGroup( TempTrajectory const& traj,
101  std::vector<TrajectoryMeasurementGroup>::const_iterator begin,
102  std::vector<TrajectoryMeasurementGroup>::const_iterator end);
103 
104  void updateWithInvalidHit (TempTrajectory& traj,
105  const std::vector<TMG>& groups,
106  TempTrajectoryContainer& candidates) const;
107 
108 private:
115 // AnalyticalPropagator theGeomPropagator;
117 
121 
122  bool theDbgFlg;
123 };
124 
125 #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
TrajectorySegmentBuilder(const MeasurementTracker *theInputMeasurementTracker, const LayerMeasurements *theInputLayerMeasurements, const DetLayer &layer, const Propagator &propagator, const TrajectoryStateUpdator &updator, const MeasurementEstimator &estimator, bool lockHits, bool bestHitOnly)
constructor from layer and helper objects
#define begin
Definition: vmac.h:31
ConstRecHitContainer theLockedHits
const MeasurementTracker * theMeasurementTracker
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
TrajectoryStateOnSurface TSOS