00001 #include "Conventions/PulseType.h"
00002 #include <cctype>
00003 #include <string>
00004 #include <algorithm>
00005
00006 using namespace std;
00007 using namespace PulseType;
00008
00009 const char* PulseType::AsString(PulseType_t pulse)
00010 {
00011 switch(pulse) {
00012 case kUnknown:
00013 return "Unknown"; break;
00014 case kPmtHit:
00015 return "PmtHit"; break;
00016 case kPrePulse:
00017 return "PrePulse"; break;
00018 case kAfterPulse:
00019 return "AfterPulse"; break;
00020 case kDarkPulse:
00021 return "DarkPulse"; break;
00022 default:
00023 return "?Unknown?"; break;
00024 }
00025 }
00026
00027 PulseType_t PulseType::FromString(const char* str)
00028 {
00029 string s = str;
00030 std::transform(s.begin(),s.end(),s.begin(),::tolower);
00031
00032 if (s.find("pmthit") != string::npos) return kPmtHit;
00033 if (s.find("prepulse") != string::npos) return kPrePulse;
00034 if (s.find("afterpulse") != string::npos) return kAfterPulse;
00035 if (s.find("darkpulse") != string::npos) return kDarkPulse;
00036 return kUnknown;
00037 }