00001 #ifndef Alignment_KalmanAlignmentAlgorithm_SingleMetricsUpdator_h 00002 #define Alignment_KalmanAlignmentAlgorithm_SingleMetricsUpdator_h 00003 00004 #include "Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentMetricsUpdator.h" 00005 #include "Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentMetricsCalculator.h" 00006 00007 #include <set> 00008 00009 00010 class SimpleMetricsUpdator : public KalmanAlignmentMetricsUpdator 00011 { 00012 00013 public: 00014 00015 SimpleMetricsUpdator( const edm::ParameterSet & config ); 00016 00017 virtual ~SimpleMetricsUpdator( void ) {} 00018 00019 virtual void update( const std::vector< Alignable* > & alignables ); 00020 00021 virtual const std::vector< Alignable* > additionalAlignables( const std::vector< Alignable* > & alignables ); 00022 00023 virtual const std::map< Alignable*, short int > additionalAlignablesWithDistances( const std::vector< Alignable* > & alignables ); 00024 00025 virtual const std::vector< Alignable* > alignables( void ) const { return theMetricsCalculator.alignables(); } 00026 00027 private: 00028 00029 bool additionalSelectionCriterion( Alignable* const& referenceAli, 00030 Alignable* const& additionalAli, 00031 short int metricalDist ) const; 00032 00033 KalmanAlignmentMetricsCalculator theMetricsCalculator; 00034 00035 std::vector< unsigned int > theExcludedSubdetIds; 00036 00037 bool theASCFlag; 00038 double theMinDeltaPerp; 00039 double theMaxDeltaPerp; 00040 double theMinDeltaZ; 00041 double theMaxDeltaZ; 00042 double theGeomDist; 00043 short int theMetricalThreshold; 00044 00045 }; 00046 00047 00048 #endif