CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/TrackingTools/KalmanUpdators/interface/KFSwitching1DUpdator.h

Go to the documentation of this file.
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 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 
00020 class KFSwitching1DUpdator : public TrajectoryStateUpdator {
00021 
00022 private:
00023   typedef TrajectoryStateOnSurface TSOS;
00024   
00025 public:
00026 
00027   KFSwitching1DUpdator(const edm::ParameterSet * pset=0) : theLocalUpdator(new KFUpdator()),
00028                            theStripUpdator(new KFStrip1DUpdator()) {
00029     if (pset){
00030       theDoEndCap=pset->getParameter<bool>("doEndCap");
00031     }
00032     else
00033       {
00034         theDoEndCap=false;
00035       }
00036   }
00037 
00038   ~KFSwitching1DUpdator() {}
00039 
00041   virtual TSOS update(const TSOS& aTsos, const TransientTrackingRecHit& aHit) const;
00042 
00043   virtual KFSwitching1DUpdator * clone() const 
00044   {
00045     return new KFSwitching1DUpdator(*this);
00046   }
00047 
00048 private:
00050   const KFUpdator& localUpdator() const {return *theLocalUpdator;}
00052   const KFStrip1DUpdator& stripUpdator() const {return *theStripUpdator;}
00053 
00054 private:
00055   DeepCopyPointerByClone<const KFUpdator> theLocalUpdator;
00056   DeepCopyPointerByClone<const KFStrip1DUpdator> theStripUpdator;
00057 
00058   bool theDoEndCap;
00059 };
00060 
00061 #endif// KFSwitching1DUpdator_H_