Typedefs | |
typedef enum DbiDetector::EDetector | Detector_t |
Enumerations | |
enum | EDetector { kUnknown = 0x00, kNear = 0x01, kFar = 0x02, kCalDet = 0x04, kCalib = 0x04, kTestStand = 0x08, kMapper = 0x10 } |
Functions | |
Int_t | FullMask () |
const Char_t * | AsString (Detector_t detector) |
DbiDetector::Detector_t | CharToEnum (Char_t c) |
Char_t * | MaskToString (Int_t mask) |
DbiDetector::Detector_t | StringToEnum (const Char_t *chars, Int_t maxChar=0) |
Int_t | StringToMask (const Char_t *chars, Int_t maxChar=0) |
typedef enum DbiDetector::EDetector DbiDetector::Detector_t |
Definition at line 27 of file DbiDetector.hxx.
00027 { 00028 kUnknown = 0x00, 00029 kNear = 0x01, 00030 kFar = 0x02, 00031 kCalDet = 0x04, 00032 kCalib = 0x04, 00033 kTestStand = 0x08, 00034 kMapper = 0x10 00035 } Detector_t;
const Char_t * DbiDetector::AsString | ( | Detector_t | detector | ) |
Definition at line 13 of file DbiDetector.cxx.
References kCalDet, kFar, kMapper, kNear, kTestStand, and kUnknown.
Referenced by TVldContext::AsString(), MaskToString(), TDbiSimFlagAssociation::Print(), and TDbiTableMetaData::SetFromSql().
00014 { 00015 switch (detector) { 00016 case kUnknown: return "Unknown"; break; 00017 case kNear: return "Near"; break; 00018 case kFar: return "Far"; break; 00019 case kCalDet: return "CalDet"; break; 00020 case kTestStand: return "TestStand"; break; 00021 case kMapper: return "Mapper"; break; 00022 default: return "?Unknown?"; break; 00023 } 00024 }
DbiDetector::Detector_t DbiDetector::CharToEnum | ( | Char_t | c | ) |
Definition at line 27 of file DbiDetector.cxx.
References kCalDet, kFar, kMapper, kNear, kTestStand, and kUnknown.
00028 { 00029 switch(c) { 00030 case 'N': 00031 case 'n': 00032 case '1': 00033 case 0x01: 00034 return kNear; 00035 case 'F': 00036 case 'f': 00037 case '2': 00038 case 0x02: 00039 return kFar; 00040 case 'C': 00041 case 'c': 00042 case '4': 00043 case 0x04: 00044 return kCalDet; 00045 case 'T': 00046 case 't': 00047 case '8': 00048 case 0x08: 00049 return kTestStand; 00050 case 'M': 00051 case 'm': 00052 case 0x10: 00053 return kMapper; 00054 default: 00055 return kUnknown; 00056 } 00057 }
Int_t DbiDetector::FullMask | ( | ) |
Definition at line 8 of file DbiDetector.cxx.
References kCalib, kFar, kMapper, kNear, and kTestStand.
Referenced by MaskToString(), and TDbiLogEntry::Recreate().
00009 { 00010 return kNear|kFar|kCalib|kTestStand|kMapper; 00011 }
Char_t * DbiDetector::MaskToString | ( | Int_t | mask | ) |
Definition at line 60 of file DbiDetector.cxx.
References AsString(), and FullMask().
Referenced by TVldRange::AsString().
00061 { 00062 // Return a mask of Detector as a string 00063 // 00064 // Result is a pointer to a statically allocated string. 00065 // User should copy this into their own buffer before calling 00066 // this method again. 00067 00068 static Char_t newstring[255] = ""; 00069 00070 Char_t* ptr = newstring; // start at the beginning 00071 00072 *ptr = 0; // start with nothing 00073 Int_t fullmask = DbiDetector::FullMask(); 00074 00075 for (Int_t i=0; i<32; i++) { 00076 DbiDetector::Detector_t adet = (DbiDetector::Detector_t)(1<<i); 00077 if (mask & adet & fullmask) { 00078 const Char_t* toadd = DbiDetector::AsString(adet); 00079 if (ptr != newstring) *ptr++ = ','; 00080 strcpy(ptr,toadd); 00081 ptr += strlen(toadd); 00082 } 00083 } 00084 *ptr++ = 0; // ensure trailing 0 00085 00086 return newstring; 00087 }
DbiDetector::Detector_t DbiDetector::StringToEnum | ( | const Char_t * | chars, | |
Int_t | maxChar = 0 | |||
) |
Definition at line 90 of file DbiDetector.cxx.
References kCalib, kFar, kMapper, kNear, kTestStand, kUnknown, and StringToMask().
Referenced by TDbiSimFlagAssociation::Set().
00091 { 00092 // convert a set of chars to a valid enum 00093 00094 Int_t mask = DbiDetector::StringToMask(chars,maxChar); 00095 00096 switch (mask) { 00097 case kUnknown: return kUnknown; break; 00098 case kNear: return kNear; break; 00099 case kFar: return kFar; break; 00100 case kCalib: return kCalib; break; 00101 case kTestStand: return kTestStand; break; 00102 case kMapper: return kMapper; break; 00103 default: return kUnknown; break; 00104 } 00105 00106 }
Int_t DbiDetector::StringToMask | ( | const Char_t * | chars, | |
Int_t | maxChar = 0 | |||
) |
Definition at line 109 of file DbiDetector.cxx.
References kCalib, kFar, kMapper, kNear, and kTestStand.
Referenced by StringToEnum().
00110 { 00111 // convert a set of chars to a mask of enum's 00112 // simple tests for unique characters: {n,f,c,t,m} 00113 00114 Int_t mask = 0; 00115 00116 TString thestring(chars); 00117 if (maxChar>0 && maxChar<thestring.Length()) thestring.Resize(maxChar); 00118 00119 thestring.ToLower(); 00120 if (thestring.Contains("n")) mask |= kNear; 00121 if (thestring.Contains("f")) mask |= kFar; 00122 if (thestring.Contains("c")) mask |= kCalib; 00123 // For the unusual case of TestStand require something more than 00124 // just the first char. Sue K. points out that passing "CalDet" 00125 // (as opposed to "Calib") triggers kTestStand if we don't 00126 // make this additional requirement. 00127 //if (thestring.Contains("t")) mask |= kTestStand; 00128 if (thestring.Contains("test")) mask |= kTestStand; 00129 if (thestring.Contains("m")) mask |= kMapper; 00130 00131 00132 00133 return mask; 00134 }