CMS 3D CMS Logo

GsfTrajectoryFitter.h

Go to the documentation of this file.
00001 #ifndef GsfTrajectoryFitter_H_
00002 #define GsfTrajectoryFitter_H_
00003 
00004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00005 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00006 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
00007 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00008 #include "TrackingTools/PatternTools/interface/TrajectoryFitter.h"
00009 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
00010 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00011 
00012 #include <vector>
00013 
00014 class MultiTrajectoryStateMerger;
00015 
00019 class GsfTrajectoryFitter : public TrajectoryFitter {
00020 
00021 private:
00022   typedef TrajectoryStateOnSurface TSOS;
00023   typedef TrajectoryMeasurement TM;
00024 
00025 public:
00026 
00030   GsfTrajectoryFitter(const Propagator& aPropagator,
00031                       const TrajectoryStateUpdator& aUpdator,
00032                       const MeasurementEstimator& aEstimator,
00033                       const MultiTrajectoryStateMerger& aMerger);
00034   
00035   virtual ~GsfTrajectoryFitter(); 
00036   
00037   virtual std::vector<Trajectory> fit(const Trajectory& aTraj) const;
00038   virtual std::vector<Trajectory> fit(const TrajectorySeed& aSeed,
00039                                       const RecHitContainer& hits) const;
00040   virtual std::vector<Trajectory> fit(const TrajectorySeed& aSeed,
00041                                       const RecHitContainer& hits, 
00042                                       const TSOS& firstPredTsos) const;
00043 
00044   const Propagator* propagator() const {return thePropagator;}
00045   const TrajectoryStateUpdator* updator() const {return theUpdator;}
00046   const MeasurementEstimator* estimator() const {return theEstimator;}
00047   const MultiTrajectoryStateMerger* merger() const {return theMerger;}
00048   
00049   virtual GsfTrajectoryFitter* clone() const
00050   {
00051     return new GsfTrajectoryFitter(*thePropagator,*theUpdator,*theEstimator,*theMerger);
00052   }
00053 
00054 private:
00055   const Propagator* thePropagator;
00056   const TrajectoryStateUpdator* theUpdator;
00057   const MeasurementEstimator* theEstimator;
00058   const MultiTrajectoryStateMerger* theMerger;
00059 
00060   bool theTiming;
00061 };
00062 
00063 #endif //TR_GsfTrajectoryFitter_H_

Generated on Tue Jun 9 17:48:21 2009 for CMSSW by  doxygen 1.5.4