| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SimFlag.cc

Go to the documentation of this file.
00001 #include "Conventions/SimFlag.h"
00002 #include <string>
00003 #include <cstring>
00004 
00005 using namespace SimFlag;
00006 
00007 const char* SimFlag::AsString(SimFlag_t flag)
00008 {
00009   switch(flag) {
00010   case kUnknown: return "Unknown"; break;
00011   case kData:    return "Data"; break;
00012   case kMC:      return "MC"; break;
00013   default:       return "?Unknown?"; break;
00014   }
00015 }
00016 
00017 SimFlag_t SimFlag::FromString(const char* str)
00018 {
00019   if(strncasecmp("Data",str,4)==0) return kData;
00020   if(strncasecmp("MC",str,4)==0) return kMC;
00021   return kUnknown;
00022 }
00023 
00024 
00025 const char* SimFlag::StringFromMask(int mask)
00026 {
00027   if(mask==0) return SimFlag::AsString(SimFlag::kUnknown);
00028   static std::string out;
00029   out="";
00030   int nout = 0;
00031 
00032   for (int i=0; i<32; i++) {
00033      SimFlag::SimFlag_t a = (SimFlag::SimFlag_t)(1<<i);
00034      if (mask & a) {
00035        if(nout > 0) out += ",";
00036        out += SimFlag::AsString(a);
00037        nout++;
00038      }
00039   }
00040   return out.c_str();
00041 }
00042 
00043 int SimFlag::FullMask()
00044 { 
00045   return kData+kMC; 
00046 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:14:47 2011 for Conventions by doxygen 1.4.7