00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021
00022 #include "Conventions/BeamType.h"
00023 #include <string>
00024
00025 const Char_t* BeamType::AsString(BeamType::BeamType_t b) {
00026
00027 switch (b) {
00028 case kL000z200i: return "L000z200i";
00029 case kL010z185i: return "L010z185i";
00030 case kL050z200i: return "L050z200i";
00031 case kL100z200i: return "L100z200i";
00032 case kL200z200i: return "L200z200i";
00033 case kL250z200i: return "L250z200i";
00034 case kL010z000i: return "L010z000i";
00035 case kL010z170i: return "L010z170i";
00036 case kL010z200i: return "L010z200i";
00037 case kL010z185i_lowintensity: return "L010z185i_lowint";
00038 case kL010z185i_lowi: return "L010z185i_lowi";
00039 case kL010z185i_medi: return "L010z185i_medi";
00040 case kL150z200i: return "L150z200i";
00041
00042 case kL010z185i_i124: return "L010z185i_i124";
00043 case kL010z185i_i191: return "L010z185i_i191";
00044 case kL010z185i_i213: return "L010z185i_i213";
00045 case kL010z185i_i224: return "L010z185i_i224";
00046 case kL010z185i_i232: return "L010z185i_i232";
00047 case kL010z185i_i243: return "L010z185i_i243";
00048 case kL010z185i_i257: return "L010z185i_i257";
00049 case kL010z185i_i282: return "L010z185i_i282";
00050 case kL010z185i_i303: return "L010z185i_i303";
00051 case kL010z185i_i324: return "L010z185i_i324";
00052
00053 case kL010z000i_i209: return "L010z000i_i209";
00054 case kL010z000i_i225: return "L010z000i_i225";
00055 case kL010z000i_i232: return "L010z000i_i232";
00056 case kL010z000i_i259: return "L010z000i_i259";
00057 case kL010z000i_i300: return "L010z000i_i300";
00058 case kL010z000i_i317: return "L010z000i_i317";
00059 case kL010z000i_i326: return "L010z000i_i326";
00060 case kL010z000i_i380: return "L010z000i_i380";
00061
00062 case kL250z200i_i100: return "L250z200i_i100";
00063 case kL250z200i_i114: return "L250z200i_i114";
00064 case kL250z200i_i130: return "L250z200i_i130";
00065 case kL250z200i_i152: return "L250z200i_i152";
00066 case kL250z200i_i165: return "L250z200i_i165";
00067 case kL250z200i_i194: return "L250z200i_i194";
00068 case kL250z200i_i232: return "L250z200i_i232";
00069
00070 case kL010z185i_rev: return "L010z185i_rev";
00071
00072
00073
00074
00075
00076
00077
00078 case kInverseE: return "1/E flux"; break;
00079 case kUnknown: return "Unknown"; break;
00080 case kUser: return "User specific flux"; break;
00081 default: return "!?Bad Value Passed?!"; break;
00082 }
00083 }
00084
00085 const Char_t* BeamType::AsTag(BeamType::BeamType_t b) {
00086 switch (b) {
00087 case kLE: return "z_000"; break;
00088 case k010: return "z_010"; break;
00089 case k050: return "z_050"; break;
00090 case k100: return "z_100"; break;
00091 case k200: return "z_200"; break;
00092 case k250: return "z_250"; break;
00093 case kInverseE: return "inv_e"; break;
00094 case kUnknown: return "unkn"; break;
00095 case kUser: return "user"; break;
00096 default: return "???"; break;
00097 }
00098 }
00099
00100 BeamType::BeamType_t BeamType::TagToEnum(const Char_t* cs) {
00101 BeamType::BeamType_t b=kUnknown;
00102 std::string s=cs;
00103
00104
00105 if (s=="L000z200i") b = kL000z200i;
00106 else if (s=="L010z185i") b = kL010z185i;
00107 else if (s=="L050z200i") b = kL050z200i;
00108 else if (s=="L100z200i") b = kL100z200i;
00109 else if (s=="L200z200i") b = kL200z200i;
00110 else if (s=="L250z200i") b = kL250z200i;
00111 else if (s=="L010z000i") b = kL010z000i;
00112 else if (s=="L010z170i") b = kL010z170i;
00113 else if (s=="L010z200i") b = kL010z200i;
00114 else if (s=="L010z185i_lowint") b = kL010z185i_lowintensity;
00115 else if (s=="L010z185i_lowi") b = kL010z185i_lowi;
00116 else if (s=="L010z185i_medi") b = kL010z185i_medi;
00117 else if (s=="L150z200i") b = kL150z200i;
00118
00119 else if (s=="L010z185i_i124") b = kL010z185i_i124;
00120 else if (s=="L010z185i_i191") b = kL010z185i_i191;
00121 else if (s=="L010z185i_i213") b = kL010z185i_i213;
00122 else if (s=="L010z185i_i224") b = kL010z185i_i224;
00123 else if (s=="L010z185i_i232") b = kL010z185i_i232;
00124 else if (s=="L010z185i_i243") b = kL010z185i_i243;
00125 else if (s=="L010z185i_i257") b = kL010z185i_i257;
00126 else if (s=="L010z185i_i282") b = kL010z185i_i282;
00127 else if (s=="L010z185i_i303") b = kL010z185i_i303;
00128 else if (s=="L010z185i_i324") b = kL010z185i_i324;
00129
00130 else if (s=="L010z000i_i209") b = kL010z000i_i209;
00131 else if (s=="L010z000i_i225") b = kL010z000i_i225;
00132 else if (s=="L010z000i_i232") b = kL010z000i_i232;
00133 else if (s=="L010z000i_i259") b = kL010z000i_i259;
00134 else if (s=="L010z000i_i300") b = kL010z000i_i300;
00135 else if (s=="L010z000i_i317") b = kL010z000i_i317;
00136 else if (s=="L010z000i_i326") b = kL010z000i_i326;
00137 else if (s=="L010z000i_i380") b = kL010z000i_i380;
00138
00139 else if (s=="L250z200i_i100") b = kL250z200i_i100;
00140 else if (s=="L250z200i_i114") b = kL250z200i_i114;
00141 else if (s=="L250z200i_i130") b = kL250z200i_i130;
00142 else if (s=="L250z200i_i152") b = kL250z200i_i152;
00143 else if (s=="L250z200i_i165") b = kL250z200i_i165;
00144 else if (s=="L250z200i_i194") b = kL250z200i_i194;
00145 else if (s=="L250z200i_i232") b = kL250z200i_i232;
00146
00147 else if (s=="L010z185i_rev") b = kL010z185i_rev;
00148
00149
00150 else if (s=="z_000") b=kLE;
00151 else if (s=="z_010") b=k010;
00152 else if (s=="z_050") b=k050;
00153 else if (s=="z_100") b=k100;
00154 else if (s=="z_200") b=k200;
00155 else if (s=="z_250") b=k250;
00156 else if (s=="inv_e") b=kInverseE;
00157 else if (s=="user") b=kUser;
00158 else b=kUnknown;
00159
00160 return b;
00161
00162 }
00163
00164 BeamType::BeamType_t BeamType::FromBeamMon(unsigned int i) {
00165 BeamType::BeamType_t result=BeamType::kUnknown;
00166 switch (i) {
00167 case 1:
00168 result=BeamType::kLE;
00169 break;
00170 case 4:
00171 result=BeamType::kME;
00172 break;
00173 case 5:
00174 result=BeamType::kHE;
00175 break;
00176 default:
00177 break;
00178 }
00179 return result;
00180 }
00181
00182 BeamType::BeamType_t BeamType::FromZarko(unsigned int izarko) {
00183 switch (izarko) {
00184 case 1: return kL000z200i;
00185 case 2: return kL010z185i;
00186 case 3: return kL100z200i;
00187 case 4: return kL250z200i;
00188 case 5: return kL010z185i_lowintensity;
00189 case 6: return kL010z170i;
00190 case 7: return kL010z200i;
00191 case 8: return kL010z000i;
00192 case 9: return kL150z200i;
00193 case 10: return kL010z185i_lowi;
00194 case 11: return kL010z185i_medi;
00195 default: return kUnknown;
00196 }
00197 }
00198
00199 Int_t BeamType::ToZarko(BeamType::BeamType_t b) {
00200
00201 for (int itry=BeamType::kUnknown; itry < BeamType::kEndOfList; itry++) {
00202
00203 if ( b == BeamType::FromZarko(itry) )
00204 return itry;
00205 else if ( itry >= (Int_t)(BeamType::kL010z185i_i124) &&
00206 itry <= (Int_t)(BeamType::kL010z185i_i324) &&
00207 b == (BeamType_t)itry )
00208 return ToZarko(BeamType::kL010z185i);
00209 else if ( itry >= (Int_t)(BeamType::kL010z000i_i209) &&
00210 itry <= (Int_t)(BeamType::kL010z000i_i380) &&
00211 b == (BeamType_t)itry )
00212 return ToZarko(BeamType::kL010z000i);
00213 else if ( itry >= (Int_t)(BeamType::kL250z200i_i100) &&
00214 itry <= (Int_t)(BeamType::kL250z200i_i232) &&
00215 b == (BeamType_t)itry )
00216 return ToZarko(BeamType::kL250z200i);
00217 else continue;
00218
00219 }
00220
00221 return -1;
00222 }