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 
16 class Trajectory;
21 class DetGroup;
22 class DetLayer;
23 class TempTrajectory;
24 
29 
30 private:
31  // short names
36  typedef std::vector<Trajectory> TrajectoryContainer;
37  typedef std::vector<TempTrajectory> TempTrajectoryContainer;
40 
41 public:
42 
44  TrajectorySegmentBuilder (const MeasurementTracker* theInputMeasurementTracker,
45  const LayerMeasurements* theInputLayerMeasurements,
46  const DetLayer& layer,
47  const Propagator& propagator,
50  bool lockHits, bool bestHitOnly) :
51  theMeasurementTracker(theInputMeasurementTracker),
52  theLayerMeasurements(theInputLayerMeasurements),
53  theLayer(layer),
54  theFullPropagator(propagator),
55  theUpdator(updator),
56  theEstimator(estimator),
57  theGeomPropagator(propagator),
58 // theGeomPropagator(propagator.propagationDirection()),
59  theLockHits(lockHits),theBestHitOnly(bestHitOnly)
60  {}
61 
64 
66  //std::vector<Trajectory> segments (const TSOS startingState);
67  TempTrajectoryContainer segments (const TSOS startingState);
68 
69 private:
71  void updateTrajectory (TempTrajectory& traj, const TM& tm) const;
72 
74  void updateCandidates (TempTrajectory& traj, const std::vector<TM>& measurements,
75  TempTrajectoryContainer& candidates);
76 
78  void updateCandidatesWithBestHit (TempTrajectory& traj, const std::vector<TM>& measurements,
79  TempTrajectoryContainer& candidates);
80 
82  std::vector<TrajectoryMeasurement> redoMeasurements (const TempTrajectory& traj,
83  const DetGroup& detGroup) const;
84 
86  std::vector<TrajectoryMeasurement> unlockedMeasurements (const std::vector<TM>& measurements) const;
87 
89  void lockMeasurement (const TM& measurement);
90 
92  //B.M to be ported later
93  void cleanCandidates (std::vector<TempTrajectory>& candidates) const;
94 
95 // public:
96 
97  std::vector<TempTrajectory> addGroup( TempTrajectory& traj,
98  std::vector<TrajectoryMeasurementGroup>::const_iterator begin,
99  std::vector<TrajectoryMeasurementGroup>::const_iterator end);
100 
102  const std::vector<TMG>& groups,
103  TempTrajectoryContainer& candidates) const;
104 
105 private:
112 // AnalyticalPropagator theGeomPropagator;
114 
118 
119  bool theDbgFlg;
120 };
121 
122 #endif
const MeasurementEstimator & theEstimator
void updateCandidatesWithBestHit(TempTrajectory &traj, const std::vector< TM > &measurements, TempTrajectoryContainer &candidates)
creation of a new candidate from a segment and the best hit out of a collection
TrajectoryMeasurementGroup TMG
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< TempTrajectory > TempTrajectoryContainer
void cleanCandidates(std::vector< TempTrajectory > &candidates) const
clean a set of candidates
void updateCandidates(TempTrajectory &traj, const std::vector< TM > &measurements, TempTrajectoryContainer &candidates)
creation of new candidates from a segment and a collection of hits
std::vector< TrajectoryMeasurement > unlockedMeasurements(const std::vector< TM > &measurements) const
get list of unused hits
const LayerMeasurements * theLayerMeasurements
TempTrajectoryContainer segments(const TSOS startingState)
new segments within layer
const TrajectoryStateUpdator & theUpdator
void lockMeasurement(const TM &measurement)
mark a hit as used
std::vector< TrajectoryMeasurement > redoMeasurements(const TempTrajectory &traj, const DetGroup &detGroup) const
retrieve compatible hits from a DetGroup
std::vector< Trajectory > TrajectoryContainer
#define end
Definition: vmac.h:38
std::vector< TempTrajectory > addGroup(TempTrajectory &traj, std::vector< TrajectoryMeasurementGroup >::const_iterator begin, std::vector< TrajectoryMeasurementGroup >::const_iterator end)
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
void updateTrajectory(TempTrajectory &traj, const TM &tm) const
update of a trajectory with a hit
void updateWithInvalidHit(TempTrajectory &traj, const std::vector< TMG > &groups, TempTrajectoryContainer &candidates) const