C++InterfacetoTauola
include/TauSpinner/vbfdistr.h
1 #include "TauSpinner/SimpleParticle.h"
2 #include <vector>
3 using std::vector;
4 
5 namespace TauSpinner {
6 extern "C" {
7  extern struct {
8  double sqrt__as;
9  double g__exp__2;
10  double conjg__ckm3x3;
11  double ckm3x3;
12  double lamws__exp__2;
13  double lamws__exp__3;
14  double mz__exp__2;
15  double mz__exp__4;
16  double sqrt__2;
17  double mh__exp__2;
18  double aew;
19  double sqrt__aew;
20  double ee;
21  double mw__exp__2;
22  double sw2;
23  double cw;
24  double sqrt__sw2;
25  double sw;
26  double g1;
27  double gw;
28  double vev;
29  double vev__exp__2;
30  double lam;
31  double yb;
32  double yt;
33  double ytau;
34  double muh;
35  double ee__exp__2;
36  double sw__exp__2;
37  double cw__exp__2;
38  double aewm1;
39  double gf;
40  double as;
41  double lamws;
42  double aws;
43  double rhows;
44  double etaws;
45  double ymb;
46  double ymt;
47  double ymtau;
48  } params_r_;
49 
50  extern struct {
51  int icp; //tau pdg id
52  } cpstatus_;
53 }
54 /** vbf amplitudes re-initialization (after chanche of alpha_s */
55  extern "C" { extern void vbf_reinit_(int *key);}
56 
57 /** Choses variant for vbf amplitudes initializations reference and modified*/
58  extern "C" { extern void vbfinit_(int *ref, int *variant);}
59 
60 /** Definition of REAL*8 FUNCTION VBDISTR(I1,I2,I3,I4,H1,H2,P,KEY) from VBF_UD.f */
61 extern "C" double vbfdistr_(int *I1, int *I2, int *I3, int *I4, int *H1, int *H2, double P[6][4], int *KEY);
62 
63 /** Wrapper to VBDISTR and entry point for vbfdistrModif*/
64 double vbfdistr(int I1, int I2, int I3, int I4, int H1, int H2, SimpleParticle &p1, SimpleParticle &p2, SimpleParticle &tau1, SimpleParticle &tau2, int KEY);
65 
66 
67 /** set option for QCD initialization */
68 void setPDFOpt(int QCDdefault, int QCDvariant);
69 
70 /** Set vbfdistrModif function. Function arguments as of vbfdistr(), last one would be its result*/
71 void set_vbfdistrModif(double (*function)(int, int, int, int, int, int, double[6][4], int, double) );
72 
73 /** Set alphasModif function. Function arguments as of alphas() */
74  void set_alphasModif(void (*function)(double, int, int) );
75 
76 /** Get VBF ME2
77  Returns array W[2][2] */
78 void getME2VBF(SimpleParticle &p3, SimpleParticle &p4, SimpleParticle &sp_X,SimpleParticle &tau1, SimpleParticle &tau2, double (&W)[2][2], int KEY);
79 
80 double calculateWeightFromParticlesVBF(SimpleParticle &p3, SimpleParticle &p4,SimpleParticle &sp_X, SimpleParticle &sp_tau1, SimpleParticle &sp_tau2, vector<SimpleParticle> &sp_tau1_daughters, vector<SimpleParticle> &sp_tau2_daughters);
81 
82 } // namespace TauSpinner
void setPDFOpt(int QCDdefault, int QCDvariant)
Definition: vbfdistr.cxx:51
void vbf_reinit_(int *key)
void getME2VBF(SimpleParticle &p3, SimpleParticle &p4, SimpleParticle &sp_X, SimpleParticle &tau1, SimpleParticle &tau2, double(&W)[2][2], int KEY)
Definition: vbfdistr.cxx:118
void set_alphasModif(void(*function)(double, int, int))
Set vbfdistrModif function.
Definition: vbfdistr.cxx:33
double vbfdistr(int I1, int I2, int I3, int I4, int H1, int H2, SimpleParticle &p1, SimpleParticle &p2, SimpleParticle &tau1, SimpleParticle &tau2, int KEY)
void set_vbfdistrModif(double(*function)(int, int, int, int, int, int, double[6][4], int, double))
Set vbfdistrModif function.
Definition: vbfdistr.cxx:46
void vbfinit_(int *ref, int *variant)
double vbfdistr_(int *I1, int *I2, int *I3, int *I4, int *H1, int *H2, double P[6][4], int *KEY)