C++ Interface to Tauola
vbfdistr.h
1#include "TauSpinner/SimpleParticle.h"
2#include <vector>
3using std::vector;
4
5namespace TauSpinner {
6extern "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 */
61extern "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*/
64double 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 */
68void setPDFOpt(int QCDdefault, int QCDvariant);
69
70/** Set vbfdistrModif function. Function arguments as of vbfdistr(), last one would be its result*/
71void 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] */
78void getME2VBF(SimpleParticle &p3, SimpleParticle &p4, SimpleParticle &sp_X,SimpleParticle &tau1, SimpleParticle &tau2, double (&W)[2][2], int KEY);
79
80double 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
double vbfdistr_(int *I1, int *I2, int *I3, int *I4, int *H1, int *H2, double P[6][4], 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 setPDFOpt(int QCDdefault, int QCDvariant)
Definition: vbfdistr.cxx:51
void vbfinit_(int *ref, int *variant)
void set_alphasModif(void(*function)(double, int, int))
Set vbfdistrModif function.
Definition: vbfdistr.cxx:33
void vbf_reinit_(int *key)
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 getME2VBF(SimpleParticle &p3, SimpleParticle &p4, SimpleParticle &sp_X, SimpleParticle &tau1, SimpleParticle &tau2, double(&W)[2][2], int KEY)
Definition: vbfdistr.cxx:118