00001 #include "GeneratorModule/GeneratorName.h" 00002 #include <iostream> 00003 00004 GeneratorName 00005 generator_name (const int& index) 00006 { 00007 switch (index) { 00008 case 1000000 : return PYTHIA; 00009 case 2000000 : return HERWIG; 00010 case 3000000 : return ISAJET; 00011 case 4000000 : return SINGLE; 00012 case 5000000 : return HIJING; 00013 case 6000000 : return PHOJET; 00014 case 100000 : return COMPHEP; 00015 case 200000 : return USER; 00016 case 300000 : return ACERMC; 00017 case 400000 : return ALPGEN; 00018 case 10000 : return TAUOLA; 00019 case 20000 : return PHOTOS; 00020 case 30000 : return TAUOLA_PHOTOS; 00021 } 00022 return UNKNOWN; 00023 } 00024 00025 GeneratorName 00026 first_generator (int& index) 00027 { 00028 int gen1 = 1000000*(index/1000000); 00029 return generator_name(gen1); 00030 } 00031 00032 GeneratorName 00033 second_generator (int& index) 00034 { 00035 int gen1 = 1000000*(index/1000000); 00036 int gen2 = index - gen1; 00037 gen2 = 100000*(gen2/100000); 00038 return generator_name(gen2); 00039 } 00040 00041 GeneratorName 00042 third_generator (int& index) 00043 { 00044 int gen1 = 1000000*(index/1000000); 00045 int gen2 = index - gen1; 00046 gen2 = 100000*(gen2/100000); 00047 int gen3 = index - gen1 - gen2; 00048 gen3 = 10000*(gen3/10000); 00049 return generator_name(gen3); 00050 } 00051 00052 int 00053 generator_process (int& index) 00054 { return index%10000; } 00055 00056 void 00057 GeneratorName_print(int& id) 00058 { 00059 std::cout << first_generator(id) << " " 00060 << second_generator(id) << " " 00061 << third_generator(id) << " + " 00062 << generator_process(id); 00063 } 00064 00065 00066 std::string 00067 generator_string (const int& index) 00068 { 00069 switch (index) { 00070 case 1000000 : return "PYTHIA"; 00071 case 2000000 : return "HERWIG"; 00072 case 3000000 : return "ISAJET"; 00073 case 4000000 : return "SINGLE"; 00074 case 5000000 : return "HIJING"; 00075 case 6000000 : return "PHOJET"; 00076 case 100000 : return "COMPHEP"; 00077 case 200000 : return "USER"; 00078 case 300000 : return "ACERMC"; 00079 case 400000 : return "ALPGEN"; 00080 case 10000 : return "TAUOLA"; 00081 case 20000 : return "PHOTOS"; 00082 case 30000 : return "TAUOLA_PHOTOS"; 00083 } 00084 return " "; 00085 } 00086 00087 std::ostream& operator<<(std::ostream& lhs, GeneratorName rhs) { 00088 lhs << generator_string(rhs); 00089 return lhs; 00090 }