00001 #ifndef Alignment_KalmanAlignmentAlgorithm_SingleTrajectoryUpdator_h 00002 #define Alignment_KalmanAlignmentAlgorithm_SingleTrajectoryUpdator_h 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 00006 #include "Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentUpdator.h" 00007 00010 00011 00012 class CompositeAlignmentParameters; 00013 00014 00015 class SingleTrajectoryUpdator : public KalmanAlignmentUpdator 00016 { 00017 00018 public: 00019 00020 SingleTrajectoryUpdator( const edm::ParameterSet & config ); 00021 virtual ~SingleTrajectoryUpdator( void ); 00022 00024 virtual void process( const ReferenceTrajectoryPtr & trajectory, 00025 AlignmentParameterStore* store, 00026 AlignableNavigator* navigator, 00027 KalmanAlignmentMetricsUpdator* metrics ); 00028 00029 virtual SingleTrajectoryUpdator* clone( void ) const { return new SingleTrajectoryUpdator( *this ); } 00030 00031 private: 00032 00033 bool checkCovariance( const AlgebraicSymMatrix& cov ) const; 00034 00035 unsigned int theMinNumberOfHits; 00036 double theExtraWeight; 00037 double theExternalPredictionWeight; 00038 bool theCovCheckFlag; 00039 }; 00040 00041 00042 #endif