00001 #ifndef SMS_H 00002 #define SMS_H 00003 00004 #include <cmath> 00005 #include <cstdlib> 00006 #include <vector> 00007 #include <algorithm> 00008 #include <iostream> 00009 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00010 00016 class SMS 00017 { 00018 public: 00019 enum SMSType { None = 0, 00020 Interpolate = 1, 00021 Iterate = 2, 00022 Weighted = 4 }; 00029 SMS ( SMSType tp = (SMSType) (Interpolate | Iterate | Weighted), float q=0.5 ); 00030 00031 GlobalPoint location ( const std::vector < GlobalPoint > & ) const; 00032 GlobalPoint location ( const std::vector < std::pair < GlobalPoint, float > > & ) const; 00033 00034 private: 00035 SMSType theType; 00036 float theRatio; 00037 00038 }; 00039 00040 #endif /* def SMS */