00001
00002
00003
00004
00013
00014 #include <fstream>
00015 #include <iostream>
00016 #include <cstdlib>
00017
00018 #include "HepPID/ParticleIDTranslations.hh"
00019 #include "HepPID/ParticleName.hh"
00020 #include "HepPID/Version.hh"
00021
00022 extern "C" {
00023
00024 void list_herwig_init_ ( int * nevt );
00025 void list_herwig_end_ ( );
00026 void get_list_size_ ( int * );
00027 void get_herwig_name_( int * ihwg, int * id, char *name );
00028 }
00029
00030 int main()
00031 {
00032 int nevt=20;
00033 int i, j, iend, isize;
00034 int hid, id;
00035 char cname[10];
00036 std::string hname;
00037 std::string pn;
00038 static char outfile[] = "examListHerwig.out";
00039 std::string title = "HepPID listing of Herwig translations";
00040
00041
00042 list_herwig_init_ ( & nevt );
00043
00044
00045 std::ofstream os( outfile );
00046 if( !os ) {
00047 std::cout << "error opening output file" << std::endl;
00048 exit(1);
00049 }
00050 HepPID::writeVersion(os);
00051
00052 get_list_size_( & isize );
00053 os << " " << title << std::endl;
00054 os << " number of Herwig particles: " << isize << std::endl;
00055
00056 for( i=1, iend=isize+1; i<iend; ++i ) {
00057
00058 for( j=0; j<10; ++j) { cname[j] = '\0'; }
00059 get_herwig_name_( & i, & hid, cname );
00060 hname = std::string( cname );
00061 id = HepPID::translateHerwigtoPDT( hid );
00062 pn = HepPID::particleName( id );
00063 os << "Herwig: ";
00064 os.width(7);
00065 os << i ;
00066 os.width(12);
00067 os << hid << " " << hname;
00068 os << " HepPID: " ;
00069 os.width(12);
00070 os << id << " " << pn << std::endl;
00071 }
00072
00073 list_herwig_end_();
00074
00075 return 0;
00076 }
00077