00001 00002 #ifndef __LASPROFILEJUDGE_H 00003 #define __LASPROFILEJUDGE_H 00004 00005 #include <iostream> 00006 #include <utility> 00007 00008 #include "Alignment/LaserAlignment/interface/LASModuleProfile.h" 00009 00010 00015 class LASProfileJudge { 00016 00017 public: 00018 LASProfileJudge(); 00019 bool IsSignalIn( const LASModuleProfile&, double ); 00020 bool JudgeProfile( const LASModuleProfile&, double ); 00021 void EnableZeroFilter( bool ); 00022 void SetOverdriveThreshold( unsigned int ); 00023 00024 private: 00025 double GetNegativity( int ); 00026 bool IsPeaksInProfile( int ); 00027 bool IsNegativePeaksInProfile( int ); 00028 bool IsOverdrive( int ); 00029 00030 LASModuleProfile profile; 00031 std::pair<unsigned int, double> thePeak; 00032 bool isZeroFilter; 00033 unsigned int overdriveThreshold; 00034 00035 }; 00036 00037 #endif