CMS 3D CMS Logo

GsfTrajectorySmoother.h

Go to the documentation of this file.
00001 #ifndef GsfTrajectorySmoother_H_
00002 #define GsfTrajectorySmoother_H_
00003 
00004 #include "TrackingTools/PatternTools/interface/TrajectorySmoother.h"
00005 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
00006 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00008 #include "TrackingTools/PatternTools/interface/MeasurementEstimator.h"
00009 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
00010 #include "TrackingTools/GsfTracking/interface/GsfPropagatorWithMaterial.h"
00011 #include "TrackingTools/GsfTools/interface/GsfPropagatorAdapter.h"
00012 #include "TrackingTools/GsfTracking/interface/FullConvolutionWithMaterial.h"
00013 
00014 class MultiTrajectoryStateMerger;
00015 
00020 class GsfTrajectorySmoother : public TrajectorySmoother {
00021 
00022 private:
00023 
00024   typedef TrajectoryStateOnSurface TSOS;
00025   typedef TrajectoryMeasurement TM;
00026 
00027 public:
00028 
00032   GsfTrajectorySmoother(const GsfPropagatorWithMaterial& aPropagator,
00033                         const TrajectoryStateUpdator& aUpdator,
00034                         const MeasurementEstimator& aEstimator,
00035                         const MultiTrajectoryStateMerger& merger,
00036                         float errorRescaling,
00037                         const bool materialBeforeUpdate = true);
00038 
00039   virtual ~GsfTrajectorySmoother();
00040 
00041   virtual std::vector<Trajectory> trajectories(const Trajectory& aTraj) const;
00045   const Propagator* propagator() const {
00046     if ( thePropagator) return thePropagator;
00047     else  return theGeomPropagator;
00048   }
00049   const TrajectoryStateUpdator* updator() const {return theUpdator;}
00050   const MeasurementEstimator* estimator() const {return theEstimator;}
00051 
00052   virtual GsfTrajectorySmoother* clone() const
00053   {
00054     return new GsfTrajectorySmoother(*thePropagator,*theUpdator,*theEstimator,
00055                                      *theMerger,theErrorRescaling,theMatBeforeUpdate);
00056   }
00057 
00058 private:
00059   GsfPropagatorWithMaterial* thePropagator;
00060   const GsfPropagatorAdapter* theGeomPropagator;
00061   const FullConvolutionWithMaterial* theConvolutor;
00062   const TrajectoryStateUpdator* theUpdator;
00063   const MeasurementEstimator* theEstimator;
00064   const MultiTrajectoryStateMerger* theMerger;
00065   
00066   bool theTiming;
00067   bool theMatBeforeUpdate;
00068   float theErrorRescaling;
00069 };
00070 
00071 #endif //TR_GsfTrajectorySmoother_H_

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