CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MTFTrackProducerAlgorithm.h
Go to the documentation of this file.
1 #ifndef MTFTrackProducerAlgorithm_h
2 #define MTFTrackProducerAlgorithm_h
3 
9 
10 class MagneticField;
11 class TrackingGeometry;
12 class TrajectoryFitter;
13 class Trajectory;
21 
22 namespace reco{
23  class Track;
24 }
25 
27 
28  typedef std::pair<Trajectory*, std::pair<reco::Track*,PropagationDirection> > AlgoProduct;
29  typedef std::vector< AlgoProduct > AlgoProductCollection;
32 
33  public:
34 
37 
40 
42  void runWithCandidate(const TrackingGeometry *,
43  const MagneticField *,
44  // const TrackCandidateCollection&,
45  const std::vector<Trajectory>&,
46  const TrajectoryFitter *,
48  const MultiTrackFilterHitCollector* measurementTracker,
50  const reco::BeamSpot&,
51  AlgoProductCollection &) const;
52 
53  private:
55  bool buildTrack(const std::vector<Trajectory>&,
56  AlgoProductCollection& algoResults,
57  float,
58  const reco::BeamSpot&) const;
59 
61  bool fit(const std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface>& hits,
62  const TrajectoryFitter * theFitter,
63  std::vector<Trajectory>& vtraj) const;
64 
65  //calculates the ndof according to the MTF prescription
66  float calculateNdof(const std::vector<Trajectory>& vtraj) const;
67 
68  //creates MultiRecHits out of a KF trajectory
69  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface>
70  collectHits(const std::map<int, std::vector<TrajectoryMeasurement> >& mapvtm,
71  const MultiTrackFilterHitCollector* measurementCollector,
72  int i) const;
73 
74  //updates the hits with the specified annealing factor
75  std::pair<TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface>
76  updateHits(const std::map<int, std::vector<TrajectoryMeasurement> >& mapvtm,
77  const MultiTrackFilterHitCollector* measurementCollector,
78  const SiTrackerMultiRecHitUpdatorMTF* updator,
79  double annealing,
80  const TransientTrackingRecHitBuilder* builder,
81  int i) const;
82 
83  //removes from the trajectory isolated hits with very low weight
84  void filter(const TrajectoryFitter* fitter,
85  std::vector<Trajectory>& input,
86  int minhits, std::vector<Trajectory>& output) const;
87 
89 };
90 
91 #endif
int i
Definition: DBlmapReader.cc:9
float calculateNdof(const std::vector< Trajectory > &vtraj) const
std::pair< Trajectory *, std::pair< reco::Track *, PropagationDirection > > AlgoProduct
void runWithCandidate(const TrackingGeometry *, const MagneticField *, const std::vector< Trajectory > &, const TrajectoryFitter *, const TransientTrackingRecHitBuilder *, const MultiTrackFilterHitCollector *measurementTracker, const SiTrackerMultiRecHitUpdatorMTF *, const reco::BeamSpot &, AlgoProductCollection &) const
Run the Final Fit taking TrackCandidates as input.
MultiTrajectoryMeasurement MTM
std::vector< AlgoProduct > AlgoProductCollection
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > updateHits(const std::map< int, std::vector< TrajectoryMeasurement > > &mapvtm, const MultiTrackFilterHitCollector *measurementCollector, const SiTrackerMultiRecHitUpdatorMTF *updator, double annealing, const TransientTrackingRecHitBuilder *builder, int i) const
tuple input
Definition: collect_tpl.py:10
std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > collectHits(const std::map< int, std::vector< TrajectoryMeasurement > > &mapvtm, const MultiTrackFilterHitCollector *measurementCollector, int i) const
bool buildTrack(const std::vector< Trajectory > &, AlgoProductCollection &algoResults, float, const reco::BeamSpot &) const
Construct Tracks to be put in the event.
bool fit(const std::pair< TransientTrackingRecHit::RecHitContainer, TrajectoryStateOnSurface > &hits, const TrajectoryFitter *theFitter, std::vector< Trajectory > &vtraj) const
accomplishes the fitting-smoothing step for each annealing value
TrajectoryStateOnSurface TSOS
MTFTrackProducerAlgorithm(const edm::ParameterSet &pset)
Constructor.
void filter(const TrajectoryFitter *fitter, std::vector< Trajectory > &input, int minhits, std::vector< Trajectory > &output) const