00001
00013 #ifndef _INIT_STATE_H_
00014 #define _INIT_STATE_H_
00015
00016 #ifndef ROOT_Rtypes
00017 #if !defined(__CINT__) || defined(__MAKECINT__)
00018 #include "Rtypes.h"
00019 #endif
00020 #endif
00021
00022 typedef enum init_state_enum {
00023
00024 e_vp = 1,
00025 e_vn,
00026 e_vbp,
00027 e_vbn,
00028 e_vN,
00029 e_vbN,
00030 e_vA,
00031 e_vbA,
00032 e_undefined_init_state
00033
00034 } init_state_t;
00035
00036 namespace init_state {
00037
00038 inline const char * as_string(init_state_t initial_state)
00039 {
00040 switch(initial_state) {
00041 case e_vp: return "v + p"; break;
00042 case e_vn: return "v + n"; break;
00043 case e_vN: return "v + N"; break;
00044 case e_vA: return "v + A"; break;
00045 case e_vbp: return "v_bar + p"; break;
00046 case e_vbn: return "v_bar + n"; break;
00047 case e_vbN: return "v_bar + N"; break;
00048 case e_vbA: return "v_bar + A"; break;
00049
00050 case e_undefined_init_state:
00051 default:
00052 return "unknown initial state"; break;
00053 }
00054 return "bad initial state";
00055 }
00056
00057 inline init_state_t get_init_state_from_code(int code)
00058 {
00059 if (code == 1) return e_vp;
00060 else if (code == 2) return e_vn;
00061 else if (code == 5) return e_vN;
00062 else if (code == 6) return e_vA;
00063 else if (code == 3) return e_vbp;
00064 else if (code == 4) return e_vbn;
00065 else if (code == 7) return e_vbN;
00066 else if (code == 8) return e_vbA;
00067 else return e_undefined_init_state;
00068 }
00069
00070 }
00071
00072 #endif
00073