CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Alignment/KalmanAlignmentAlgorithm/plugins/SimpleMetricsUpdator.h

Go to the documentation of this file.
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