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 }