00001 #ifndef PHOKHARA__H
00002 #define PHOKHARA__H
00003
00004 #include "cfortran/cfortran.h"
00005 #include <string.h>
00006
00007
00008 typedef struct { double r, i; } COMPLEX16;
00009
00010
00011 extern "C" struct {
00012 double pi,gev2nbarn,gev2pbarn,alpha,me,mmu,mpi,mpi0,Sp,mp;
00013 double ebeam,ver_s,rmass[10],momenta[4][15];
00014 COMPLEX16 cvac_s;
00015 double mnt,mKp,mKn;
00016 COMPLEX16 cvac_s_pi, cvac_s_phi;
00017 double mlamb;
00018 } ctes_;
00019
00020
00021
00022 extern "C" struct
00023 {
00024 double Emin,gmin,phot1cut,phot2cut,pi1cut,pi2cut;
00025 double piphcut,accecut,q2min,w,q2_max_c,q2_min_c;
00026 } cuts_;
00027
00028
00029
00030 extern "C" struct
00031 {
00032 double m_phi0_Kp,g_phi0_Kp,m_phi1_Kp,g_phi1_Kp;
00033 double m_om0_Kp,g_om0_Kp,m_om1_Kp,g_om1_Kp,m_om2_Kp,g_om2_Kp;
00034 double m_rho0_Kp,g_rho0_Kp,m_rho1_Kp,g_rho1_Kp,m_rho2_Kp,g_rho2_Kp;
00035 } mass_gamm_Kp_;
00036
00037
00038
00039 extern "C" struct
00040 {
00041 double m_rho0_pion,g_rho0_pion,m_rho1_pion;
00042 double g_rho1_pion,m_rho2_pion,g_rho2_pion,m_rho3_pion,g_rho3_pion;
00043 double m_om0_pion,g_om0_pion;
00044 } mass_gamm_pion_;
00045
00046
00047
00048 extern "C" struct
00049 {
00050 double alpha_lamb, ratio_lamb;
00051 } lambda_par_;
00052
00053
00054
00055 typedef struct{char val[20];} titledef;
00056
00057 extern "C" struct
00058 {
00059 DOUBLE_PRECISION xlow[20], xup[20];
00060 int bins[20];
00061 titledef title[20];
00062 } histo_;
00063
00064
00065
00066 extern "C" struct
00067 {
00068 DOUBLE_PRECISION Mmax[2], gross[2], klein[2], tr[2], count[2];
00069 int iprint;
00070 } maxima_;
00071
00072
00073
00074 extern "C" struct
00075 {
00076 int nlo, pion, fsr, fsrnlo, ivac, FF_pion, f0_model, FF_kaon, narr_res;
00077 } flags_;
00078
00079
00080 PROTOCCALLSFSUB2(RLXDINIT,rlxdinit,INT,INT)
00081 #define RLXDINIT(LUXURY,SEED) CCALLSFSUB2(RLXDINIT,rlxdinit,INT,INT,LUXURY,SEED)
00082
00083 PROTOCCALLSFSUB1(RLXDRESETF,rlxdresetf,INTV)
00084 #define RLXDRESETF(SEED) CCALLSFSUB1(RLXDRESETF,rlxdresetf,INTV, SEED)
00085
00086 PROTOCCALLSFSUB0(INPUT,input)
00087 #define INPUT() CCALLSFSUB0(INPUT,input)
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 PROTOCCALLSFSUB2(RANLXDF,ranlxdf,DOUBLEV,INT)
00102 #define RANLXDF(AR, VAL) CCALLSFSUB2(RANLXDF,ranlxdf,DOUBLEV, INT, AR, VAL)
00103
00104 PROTOCCALLSFSUB7(GEN_1PH,gen_1ph,INT, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE)
00105 #define GEN_1PH(I,QQMIN,QQMAX,COS1MIN,COS1MAX,COS3MIN,COS3MAX) CCALLSFSUB7(GEN_1PH,gen_1ph,INT, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE,I,QQMIN,QQMAX,COS1MIN,COS1MAX,COS3MIN,COS3MAX)
00106
00107 PROTOCCALLSFSUB8(GEN_2PH,gen_2ph,INT, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE)
00108 #define GEN_2PH(I,QQMIN,COS1MIN,COS1MAX,COS2MIN,COS2MAX,COS3MIN,COS3MAX) CCALLSFSUB8(GEN_2PH,gen_2ph,INT, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE, PDOUBLE,I,QQMIN,COS1MIN,COS1MAX,COS2MIN,COS2MAX,COS3MIN,COS3MAX)
00109
00110 #endif