00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00014
00015 #include <TString.h>
00016 #include "Util/UtilMCFlag.h"
00017 #include "MessageService/MsgService.h"
00018
00019 CVSID("$Id: UtilMCFlag.cxx,v 1.2 2008/06/12 19:52:10 rhatcher Exp $");
00020
00021
00022
00023
00024
00025 const char* UtilMCFlag::AsString(ECut cut) {
00026
00027
00028
00029 switch ( cut ) {
00030
00031 case kCUTGAM:
00032 return "CUTGAM";
00033 case kCUTELE:
00034 return "CUTELE";
00035 case kCUTNEU:
00036 return "CUTNEU";
00037 case kCUTHAD:
00038 return "CUTHAD";
00039 case kCUTMUO:
00040 return "CUTMUO";
00041 case kBCUTE:
00042 return "BCUTE";
00043 case kBCUTM:
00044 return "BCUTM";
00045 case kDCUTE:
00046 return "DCUTE";
00047 case kDCUTM:
00048 return "DCUTM";
00049 case kPPCUTM:
00050 return "PPCUTM";
00051 case kTOFMAX:
00052 return "TOFMAX";
00053 case kUnknownCut:
00054 return "UnknownCut";
00055 default:
00056 MSG("UtilMCFlag",Msg::kWarning)
00057 << "UtilMCFlag::AsString called with unknown cut " << (int)cut << endl;
00058 return "UnknownCut";
00059 }
00060
00061 }
00062
00063
00064 UtilMCFlag::ECut UtilMCFlag::GetCut(const char* cut) {
00065
00066
00067
00068 TString tmpstr(cut);
00069 tmpstr.ToLower();
00070 if ( strcmp(tmpstr.Data(),"cutgam") == 0 ) return UtilMCFlag::kCUTGAM;
00071 else if ( strcmp(tmpstr.Data(),"cutele") == 0 ) return UtilMCFlag::kCUTELE;
00072 else if ( strcmp(tmpstr.Data(),"cutneu") == 0 ) return UtilMCFlag::kCUTNEU;
00073 else if ( strcmp(tmpstr.Data(),"cuthad") == 0 ) return UtilMCFlag::kCUTHAD;
00074 else if ( strcmp(tmpstr.Data(),"cutmuo") == 0 ) return UtilMCFlag::kCUTMUO;
00075 else if ( strcmp(tmpstr.Data(),"bcute") == 0 ) return UtilMCFlag::kBCUTE;
00076 else if ( strcmp(tmpstr.Data(),"bcutm") == 0 ) return UtilMCFlag::kBCUTM;
00077 else if ( strcmp(tmpstr.Data(),"dcute") == 0 ) return UtilMCFlag::kDCUTE;
00078 else if ( strcmp(tmpstr.Data(),"dcutm") == 0 ) return UtilMCFlag::kDCUTM;
00079 else if ( strcmp(tmpstr.Data(),"ppcutm") == 0 ) return UtilMCFlag::kPPCUTM;
00080 else if ( strcmp(tmpstr.Data(),"tofmax") == 0 ) return UtilMCFlag::kTOFMAX;
00081 return kUnknownCut;
00082
00083 }
00084
00085
00086 const char* UtilMCFlag::AsString(EProcess process) {
00087
00088
00089
00090 switch ( process ) {
00091
00092 case kANNI:
00093 return "ANNI";
00094 case kBREM:
00095 return "BREM";
00096 case kCOMP:
00097 return "COMP";
00098 case kDCAY:
00099 return "DCAY";
00100 case kDRAY:
00101 return "DRAY";
00102 case kHADR:
00103 return "HADR";
00104 case kLOSS:
00105 return "LOSS";
00106 case kMULS:
00107 return "MULS";
00108 case kMUNU:
00109 return "MUNU";
00110 case kPAIR:
00111 return "PAIR";
00112 case kPFIS:
00113 return "PFIS";
00114 case kPHOT:
00115 return "PHOT";
00116 case kUnknownProcess:
00117 return "UnknownProcess";
00118 default:
00119 MSG("UtilMCFlag",Msg::kWarning)
00120 << "UtilMCFlag::AsString called with unknown process " << (int)process
00121 << endl;
00122 return "UnknownProcess";
00123 }
00124
00125 }
00126
00127
00128 UtilMCFlag::EProcess UtilMCFlag::GetProcess(const char* process) {
00129
00130
00131
00132 TString tmpstr(process);
00133 tmpstr.ToLower();
00134 if ( strcmp(tmpstr.Data(),"anni") == 0 ) return UtilMCFlag::kANNI;
00135 else if ( strcmp(tmpstr.Data(),"brem") == 0 ) return UtilMCFlag::kBREM;
00136 else if ( strcmp(tmpstr.Data(),"comp") == 0 ) return UtilMCFlag::kCOMP;
00137 else if ( strcmp(tmpstr.Data(),"dcay") == 0 ) return UtilMCFlag::kDCAY;
00138 else if ( strcmp(tmpstr.Data(),"dray") == 0 ) return UtilMCFlag::kDRAY;
00139 else if ( strcmp(tmpstr.Data(),"hadr") == 0 ) return UtilMCFlag::kHADR;
00140 else if ( strcmp(tmpstr.Data(),"loss") == 0 ) return UtilMCFlag::kLOSS;
00141 else if ( strcmp(tmpstr.Data(),"muls") == 0 ) return UtilMCFlag::kMULS;
00142 else if ( strcmp(tmpstr.Data(),"munu") == 0 ) return UtilMCFlag::kMUNU;
00143 else if ( strcmp(tmpstr.Data(),"pair") == 0 ) return UtilMCFlag::kPAIR;
00144 else if ( strcmp(tmpstr.Data(),"pfis") == 0 ) return UtilMCFlag::kPFIS;
00145 else if ( strcmp(tmpstr.Data(),"phot") == 0 ) return UtilMCFlag::kPHOT;
00146
00147 return kUnknownProcess;
00148
00149 }
00150
00151
00152 const char* UtilMCFlag::AsString(ETracking tracking) {
00153
00154
00155
00156 switch ( tracking ) {
00157
00158 case kISVOL:
00159 return "ISVOL";
00160 case kIFIELD:
00161 return "IFIELD";
00162 case kFIELDM:
00163 return "FIELDM";
00164 case kTMAXFD:
00165 return "TMAXFD";
00166 case kSTEMAX:
00167 return "STEMAX";
00168 case kDEEMAX:
00169 return "DEEMAX";
00170 case kEPSIL:
00171 return "EPSIL";
00172 case kSTMIN:
00173 return "STMIN";
00174 case kUnknownTracking:
00175 return "UnknownTracking";
00176 default:
00177 MSG("UtilMCFlag",Msg::kWarning)
00178 << "UtilMCFlag::AsString called with unknown tracking parameter "
00179 << (int)tracking << endl;
00180 return "UnknownTracking";
00181 }
00182
00183 }
00184
00185
00186 UtilMCFlag::ETracking UtilMCFlag::GetTracking(const char* tracking) {
00187
00188
00189
00190 TString tmpstr(tracking);
00191 tmpstr.ToLower();
00192 if ( strcmp(tmpstr.Data(),"isvol") == 0 ) return kISVOL;
00193 else if ( strcmp(tmpstr.Data(),"ifield") == 0 ) return kIFIELD;
00194 else if ( strcmp(tmpstr.Data(),"fieldm" ) == 0 ) return kFIELDM;
00195 else if ( strcmp(tmpstr.Data(),"tmaxfd" ) == 0 ) return kTMAXFD;
00196 else if ( strcmp(tmpstr.Data(),"stemax" ) == 0 ) return kSTEMAX;
00197 else if ( strcmp(tmpstr.Data(),"deemax" ) == 0 ) return kDEEMAX;
00198 else if ( strcmp(tmpstr.Data(),"epsil" ) == 0 ) return kEPSIL;
00199 else if ( strcmp(tmpstr.Data(),"stmin" ) == 0 ) return kSTMIN;
00200 return kUnknownTracking;
00201
00202 }