00001 #include "Conventions/Trigger.h" 00002 #include <string> 00003 #include <cstring> 00004 00005 const char* DayaBay::Trigger::AsString(DayaBay::Trigger::TriggerType_t type) 00006 { 00007 std::string name = ""; 00008 if(kMult & type) name += "Mult "; 00009 if(kESum & type) name += "ESum "; 00010 if(kAD1 & type) name += "AD1 " ; 00011 if(kAD2 & type) name += "AD2 " ; 00012 if(kAD3 & type) name += "AD3 " ; 00013 if(kAD4 & type) name += "AD4 " ; 00014 if(kIWS & type) name += "IWS " ; 00015 if(kOWS & type) name += "OWS " ; 00016 if(kCross & type) name += "Cross "; 00017 if(kRPC2of4 & type) name += "RPC2of4 "; 00018 if(kRPC3of4 & type) name += "RPC3of4 "; 00019 if(kExternal & type) name += "External "; 00020 if(kManual & type) name+= "Manual "; 00021 if(kPeriodic & type) name += "Periodic "; 00022 if(kESumAll & type ) name += "ESumAll "; 00023 if(kESumHigh & type ) name += "ESumHigh "; 00024 if(kESumLow & type ) name += "ESumLow "; 00025 if(kESumADC & type ) name += "ESumAdc "; 00026 if(name.size() == 0 ) return "?Unknown?"; 00027 else return name.c_str(); 00028 return "?Unknown? -- This should never happen"; 00029 } 00030 00031 DayaBay::Trigger::TriggerType_t DayaBay::Trigger::FromString(const char* str) 00032 { 00033 if(strncasecmp("Mult",str,4)==0) return kMult; 00034 if(strncasecmp("ESum",str,4)==0) return kESum; 00035 if(strncasecmp("AD1",str,3)==0) return kAD1; 00036 if(strncasecmp("AD2",str,3)==0) return kAD2; 00037 if(strncasecmp("AD3",str,3)==0) return kAD3; 00038 if(strncasecmp("AD4",str,3)==0) return kAD4; 00039 if(strncasecmp("IWS",str,3)==0) return kIWS; 00040 if(strncasecmp("OWS",str,3)==0) return kOWS; 00041 if(strncasecmp("Cross",str,5)==0) return kCross; 00042 if(strncasecmp("RPC2of4",str,7)==0) return kRPC2of4; 00043 if(strncasecmp("RPC3of4",str,7)==0) return kRPC3of4; 00044 if(strncasecmp("External",str,8)==0) return kExternal; 00045 return kUnknown; 00046 } 00047