Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

UtilMCFlag.cxx

Go to the documentation of this file.
00001 
00002 //
00003 // UtilMCFlag
00004 //
00005 // Package: Util
00006 //
00007 // S. Kasahara 01/2008
00008 //
00009 // Purpose: Utility methods and enumerated types for purposes of 
00010 //          interpreting MC flags used in configuring the MINOS VMC
00011 //          Monte Carlo.
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 // Definition of methods 
00022 // *********************
00023 
00024 //_____________________________________________________________________________
00025 const char* UtilMCFlag::AsString(ECut cut) {
00026   //  Purpose:  Convert enumerated mc cut to a cut string.
00027   //  If unknown, return "UnknownCut".
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   }//end of switch
00060 
00061 }
00062 
00063 //_____________________________________________________________________________
00064 UtilMCFlag::ECut UtilMCFlag::GetCut(const char* cut) {
00065   // Purpose: Convert text string cut to an enumerated code.
00066   // Return kUnknownCut if unknown
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   //  Purpose:  Convert enumerated mc process to a process string.
00088   //  If unknown process, return "UnknownProcess".
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   } //end of switch
00124 
00125 }
00126 
00127 //_____________________________________________________________________________
00128 UtilMCFlag::EProcess UtilMCFlag::GetProcess(const char* process) {
00129   // Purpose: Convert text string process to an enumerated code.
00130   // If no match, return kUnknownProcess.
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   //  Purpose:  Convert enumerated tracking parameter to a tracking string.
00154   //  If unknown tracking parameter, return "UnknownTracking".
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   } //end of switch
00182 
00183 }
00184 
00185 //_____________________________________________________________________________
00186 UtilMCFlag::ETracking UtilMCFlag::GetTracking(const char* tracking) {
00187   // Purpose: Convert text string tracking parameter to an enumerated code.
00188   // If no match, return kUnknownTracking.
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 }

Generated on Mon Feb 15 11:07:50 2010 for loon by  doxygen 1.3.9.1