CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KFFittingSmoother.h
Go to the documentation of this file.
1 #ifndef CD_KFFittingSmoother_H_
2 #define CD_KFFittingSmoother_H_
3 
18 
20 
21 public:
24  const TrajectorySmoother& aSmoother,
25  double estimateCut = -1,
26  double logPixelProbabilityCut = -16.0,
27  int minNumberOfHits = 5,
28  bool rejectTracks = false,
29  bool BreakTrajWith2ConsecutiveMissing = false,
30  bool NoInvalidHitsBeginEnd = false) :
31  theFitter(aFitter.clone()),
32  theSmoother(aSmoother.clone()),
33  theEstimateCut(estimateCut),
34 
35  // ggiurgiu@fnal.gov
36  theLogPixelProbabilityCut( logPixelProbabilityCut ),
37 
38  theMinNumberOfHits(minNumberOfHits),
39  rejectTracksFlag(rejectTracks),
40  breakTrajWith2ConsecutiveMissing(BreakTrajWith2ConsecutiveMissing),
41  noInvalidHitsBeginEnd(NoInvalidHitsBeginEnd) {}
42 
43  virtual ~KFFittingSmoother();
44 
45  virtual std::vector<Trajectory> fit(const Trajectory& t) const;
46  virtual std::vector<Trajectory> fit(const TrajectorySeed& aSeed,
47  const RecHitContainer& hits,
48  const TrajectoryStateOnSurface& firstPredTsos) const;
49  virtual std::vector<Trajectory> fit(const TrajectorySeed& aSeed,
50  const RecHitContainer& hits) const;
51 
52  const TrajectoryFitter* fitter() const {return theFitter;}
53  const TrajectorySmoother* smoother() const {return theSmoother;}
54 
60  }
61 
62 private:
63 
67 
68  double theLogPixelProbabilityCut; // ggiurgiu@fnal.gov
69 
74 
75  void smoothingStep(std::vector<Trajectory>& fitted, std::vector<Trajectory> & smoothed) const;
77 
79  bool checkForNans(const Trajectory &theTraj) const;
80 
81 };
82 
83 #endif //CD_KFFittingSmoother_H_
double theLogPixelProbabilityCut
virtual std::vector< Trajectory > fit(const Trajectory &t) const
TrajectoryStateWithArbitraryError tsosWithError
const TrajectorySmoother * smoother() const
bool checkForNans(const Trajectory &theTraj) const
Method to check that the trajectory has no NaN in the states and chi2.
bool breakTrajWith2ConsecutiveMissing
const TrajectorySmoother * theSmoother
void smoothingStep(std::vector< Trajectory > &fitted, std::vector< Trajectory > &smoothed) const
virtual ~KFFittingSmoother()
const TrajectoryFitter * theFitter
const TrajectoryFitter * fitter() const
KFFittingSmoother * clone() const
KFFittingSmoother(const TrajectoryFitter &aFitter, const TrajectorySmoother &aSmoother, double estimateCut=-1, double logPixelProbabilityCut=-16.0, int minNumberOfHits=5, bool rejectTracks=false, bool BreakTrajWith2ConsecutiveMissing=false, bool NoInvalidHitsBeginEnd=false)
constructor with predefined fitter and smoother and propagator
Trajectory::RecHitContainer RecHitContainer