00001 #ifndef KFSwitching1DUpdator_H_ 00002 #define KFSwitching1DUpdator_H_ 00003 00013 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h" 00014 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h" 00015 #include "TrackingTools/KalmanUpdators/interface/KFStrip1DUpdator.h" 00016 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h" 00017 00018 class KFSwitching1DUpdator : public TrajectoryStateUpdator { 00019 00020 private: 00021 typedef TrajectoryStateOnSurface TSOS; 00022 00023 public: 00024 00025 KFSwitching1DUpdator() : theLocalUpdator(new KFUpdator()), 00026 theStripUpdator(new KFStrip1DUpdator()) {} 00027 00028 ~KFSwitching1DUpdator() {} 00029 00031 virtual TSOS update(const TSOS& aTsos, const TransientTrackingRecHit& aHit) const; 00032 00033 virtual KFSwitching1DUpdator * clone() const 00034 { 00035 return new KFSwitching1DUpdator(*this); 00036 } 00037 00038 private: 00040 const KFUpdator& localUpdator() const {return *theLocalUpdator;} 00042 const KFStrip1DUpdator& stripUpdator() const {return *theStripUpdator;} 00043 00044 private: 00045 DeepCopyPointerByClone<const KFUpdator> theLocalUpdator; 00046 DeepCopyPointerByClone<const KFStrip1DUpdator> theStripUpdator; 00047 00048 }; 00049 00050 #endif// KFSwitching1DUpdator_H_