CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Alignment/KalmanAlignmentAlgorithm/interface/CurrentAlignmentKFUpdator.h

Go to the documentation of this file.
00001 #ifndef Alignment_KalmanAlignmentAlgorithm_CurrentAlignmentKFUpdator_h
00002 #define Alignment_KalmanAlignmentAlgorithm_CurrentAlignmentKFUpdator_h
00003 
00007 
00008 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
00009 
00010 #include "Alignment/CommonAlignment/interface/AlignableNavigator.h"
00011 
00012 class AlignmentParameters;
00013 
00014 class CurrentAlignmentKFUpdator : public TrajectoryStateUpdator
00015 {
00016 
00017 public:
00018 
00019   CurrentAlignmentKFUpdator( void ) : theAlignableNavigator( 0 ) {}
00020   CurrentAlignmentKFUpdator( AlignableNavigator* navigator ) : theAlignableNavigator( navigator ) {}
00021   ~CurrentAlignmentKFUpdator( void ) {}
00022 
00023   template <unsigned int D>
00024   TrajectoryStateOnSurface update( const TrajectoryStateOnSurface &, const TransientTrackingRecHit & ) const;
00025 
00026   TrajectoryStateOnSurface update( const TrajectoryStateOnSurface &, const TransientTrackingRecHit & ) const;
00027 
00028   virtual CurrentAlignmentKFUpdator * clone( void ) const { return new CurrentAlignmentKFUpdator( *this ); }
00029 
00030 private:
00031 
00032   template <unsigned int D>
00033   void includeCurrentAlignmentEstimate( const TransientTrackingRecHit & aRecHit,
00034                                         const TrajectoryStateOnSurface & tsos,
00035                                         typename AlgebraicROOTObject<D>::Vector & vecR,
00036                                         typename AlgebraicROOTObject<D>::SymMatrix & matV ) const;
00037 
00038   AlignmentParameters* getAlignmentParameters( const AlignableDetOrUnitPtr alignableDet ) const;
00039   AlignmentParameters* getHigherLevelParameters( const Alignable* aAlignable ) const;
00040 
00041   AlignableNavigator* theAlignableNavigator;
00042 
00043 };
00044 
00045 #endif