Go to the documentation of this file.00001 #ifndef gen_HijingPythiaWrapper_h
00002 #define gen_HijingPythiaWrapper_h
00003
00004 #include "GeneratorInterface/Pythia6Interface/interface/Pythia6Service.h"
00005 #include "HepMC/PythiaWrapper6_4.h"
00006
00007 #include "CLHEP/Random/RandomEngine.h"
00008
00009 extern "C"
00010 {
00011 void py1ent_(int& ip, int& kf, double& pe, double& the, double& phi);
00012 double pymass_(int& );
00013 void pyexec_();
00014 int pycomp_(int& );
00015 void pyglfr_();
00016 void pyglrhad_();
00017 void pystlfr_();
00018 void pystrhad_();
00019 void pygive_(const char*, int );
00020 void pydecy_( int& ip ) ;
00021 void pyrobo_( int&, int&, double&, double&, double&, double&, double& );
00022
00023 void txgive_(const char*, int );
00024 void txgive_init_(void);
00025
00026 static bool call_pygive(const std::string &line)
00027 {
00028 int numWarn = pydat1.mstu[26];
00029 int numErr = pydat1.mstu[22];
00030
00031 pygive_(line.c_str(), line.length());
00032
00033 return pydat1.mstu[26] == numWarn &&
00034 pydat1.mstu[22] == numErr;
00035 }
00036 }
00037
00038 #define PYCOMP pycomp_
00039 extern "C" {
00040 int PYCOMP(int& length);
00041 }
00042
00043 #define LUGIVE pygive_
00044 extern "C" {
00045 void LUGIVE(const char*,int length);
00046 }
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 float ranff_(unsigned int *iseed)
00057 {
00058 (*iseed) = (69069 * (*iseed) + 1) & 0xffffffffUL;
00059 return (*iseed) / 4294967296.0;
00060 }
00061
00062
00063 CLHEP::HepRandomEngine* hijRandomEngine;
00064
00065 extern "C"
00066 {
00067 float gen::hijran_(int *idummy)
00068 {
00069 return hijRandomEngine->flat();
00070 }
00071 }
00072
00073
00074
00075
00076 extern "C" {
00077 float ran_(unsigned int* iseed){
00078 return hijRandomEngine->flat();
00079
00080
00081 }
00082 }
00083
00084 extern "C" {
00085 float rlu_(unsigned int* iseed){
00086 return hijRandomEngine->flat();
00087
00088
00089 }
00090 }
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 #endif