DbiDetector Namespace Reference

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 Documentation


Enumeration Type Documentation

Enumerator:
kUnknown 
kNear 
kFar 
kCalDet 
kCalib 
kTestStand 
kMapper 

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;


Function Documentation

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:


Generated on 11 Aug 2013 for SKDatabase by  doxygen 1.6.1