00001 #include "Conventions/DetectorType.h"
00002 #include <cctype>
00003 #include <string>
00004 #include <algorithm>
00005
00006 using namespace std;
00007 using namespace DetectorType;
00008
00009 const char* DetectorType::AsString(DetectorType_t site)
00010 {
00011 switch(site) {
00012 case kUnknown:
00013 return "Unknown"; break;
00014 case kAntiNu:
00015 return "AntiNu"; break;
00016 case kIWS:
00017 return "InnerWaterShield"; break;
00018 case kOWS:
00019 return "OuterWaterShield"; break;
00020 case kRPC:
00021 return "RPC"; break;
00022 default:
00023 return "?Unknown?"; break;
00024 }
00025 }
00026
00027 DetectorType_t DetectorType::FromString(const char* str)
00028 {
00029 string s = str;
00030 std::transform(s.begin(),s.end(),s.begin(),::tolower);
00031
00032 if (s.find("antinu") != string::npos) return kAntiNu;
00033 if (s.find("innerwatershield") != string::npos) return kIWS;
00034 if (s.find("outerwatershield") != string::npos) return kOWS;
00035 if (s.find("rpc") != string::npos) return kRPC;
00036 return kUnknown;
00037 }