CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
KFTrajectorySmoother.h
Go to the documentation of this file.
1 #ifndef CD_KFTrajectorySmoother_H_
2 #define CD_KFTrajectorySmoother_H_
3 
19 
21 
22 private:
23 
27 
28 public:
29 
30  KFTrajectorySmoother(const Propagator& aPropagator,
31  const TrajectoryStateUpdator& aUpdator,
32  const MeasurementEstimator& aEstimator,
33  float errorRescaling = 100.f,
34  int minHits = 3) :
35  thePropagator(aPropagator.clone()),
36  theUpdator(aUpdator.clone()),
37  theEstimator(aEstimator.clone()),
38  theErrorRescaling(errorRescaling),
39  minHits_(minHits),
40  theGeometry(0){ // to be fixed. Why this first constructor is needed? who is using it? Can it be removed?
41  if(!theGeometry) theGeometry = &dummyGeometry;
42  }
43 
44 
45  KFTrajectorySmoother(const Propagator* aPropagator,
46  const TrajectoryStateUpdator* aUpdator,
47  const MeasurementEstimator* aEstimator,
48  float errorRescaling = 100.f,
49  int minHits = 3,
50  const DetLayerGeometry* detLayerGeometry=0) :
51  thePropagator(aPropagator->clone()),
52  theUpdator(aUpdator->clone()),
53  theEstimator(aEstimator->clone()),
54  theErrorRescaling(errorRescaling),
55  minHits_(minHits),
56  theGeometry(detLayerGeometry){
57  if(!theGeometry) theGeometry = &dummyGeometry;
58  }
59 
60  virtual ~KFTrajectorySmoother();
61 
62  virtual Trajectory trajectory(const Trajectory& aTraj) const;
63 
64  const Propagator* propagator() const {return thePropagator;}
65  const TrajectoryStateUpdator* updator() const {return theUpdator;}
66  const MeasurementEstimator* estimator() const {return theEstimator;}
67 
68  virtual KFTrajectorySmoother* clone() const{
69  return new KFTrajectorySmoother(thePropagator,theUpdator,theEstimator,theErrorRescaling,minHits_,theGeometry);
70  }
71 
72 private:
73  const DetLayerGeometry dummyGeometry;
75  const TrajectoryStateUpdator* theUpdator;
76  const MeasurementEstimator* theEstimator;
77  float theErrorRescaling;
78  int minHits_;
79  const DetLayerGeometry* theGeometry;
80 };
81 
82 #endif //CD_KFTrajectorySmoother_H_
const TrajectoryStateUpdator * updator() const
TrajectoryMeasurement TM
KFTrajectorySmoother(const Propagator &aPropagator, const TrajectoryStateUpdator &aUpdator, const MeasurementEstimator &aEstimator, float errorRescaling=100.f, int minHits=3)
double f[11][100]
KFTrajectorySmoother(const Propagator *aPropagator, const TrajectoryStateUpdator *aUpdator, const MeasurementEstimator *aEstimator, float errorRescaling=100.f, int minHits=3, const DetLayerGeometry *detLayerGeometry=0)
TrajectoryStateOnSurface TSOS
const MeasurementEstimator * estimator() const
virtual KFTrajectorySmoother * clone() const
Propagator * thePropagator
tuple clone
Definition: statics.py:58
FreeTrajectoryState FTS
const Propagator * propagator() const
Unlimited (trivial) bounds.