C++InterfacetoTauola
TauSpinner/include/TauSpinner/Tauola_wrapper.h
1 #ifndef _TAUOLA_WRAPPER_
2 #define _TAUOLA_WRAPPER_
3 /**
4  Wrapper for tauola routines calculating tau polarimetric vector HH.
5  Note that order of input 4-vectors matters and must be prepared
6  accordingly to choice in FORTRAN version of TAUOLA.
7  For details see documentation of old TAUOLA fortran.
8 
9  Methods available for some decay modes only.
10 */
11 
12 #include "Tauola/f_Variables.h"
13 
14 namespace TauSpinner {
15 
16 extern "C" {
17  void dam2pi_(int *MNUM, float *PT, float *PN, float *PIM1, float *PIM2, float *AMPLIT, float *HH);
18 
19  void dam4pi_(int *MNUM, float *PT, float *PN, float *PIM1, float *PIM2, float *PIZ, float *PIPL,
20  float *AMPLIT, float *HH);
21 
22  void damppk_(int *MNUM, float *PT, float *PN, float *PIM1, float *PIM2, float *PIPL,
23  float *AMPLIT, float *HH);
24 
25  void dampry_(int *ITDKRC, double *XK0DEC, double *XK, double *XA, double *QP, double *XN,
26  double *AMPLIT, double *HV);
27 
28  void initwk_(int *IDE, int *IDF, double *SVAR);
29 
30  void initwkswdelt_(int *IDE, int *IDF, double *SVAR, double *SWSQ, double *DeltSQ, double *DeltV, double *GMU, double *ALFINV, int *KEYGSW,
31  double *ReGSW1, double *ImGSW1, double *ReGSW2, double *ImGSW2,
32  double *ReGSW3, double *ImGSW3, double *ReGSW4, double *ImGSW4, double *ReGSW6, double *ImGSW6);
33 
34  void initwksw_(int *IDE, int *IDF, double *SVAR, double *SWSQ, double *ALFINV, int *KEYGSW,
35  double *ReGSW1, double *ImGSW1, double *ReGSW2, double *ImGSW2,
36  double *ReGSW3, double *ImGSW3, double *ReGSW4, double *ImGSW4, double *ReGSW6, double *ImGSW6);
37 
38  double t_born_(int *MODE, double *SVAR, double *COSTHE, double *TA, double *TB);
39  double t_bornz_(int *MODE, double *SVAR, double *COSTHE, double *TA, double *TB);
40  double t_bornpho_(int *MODE, double *SVAR, double *COSTHE, double *TA, double *TB);
41 
42  void dipolgammarij_(int *iqed, double *E, double *theta, double *A, double *B, double R[4][4]);
43  // void dipolqq_(int *iqed, double *E, double *theta, int *channel, double *Amz0, double *Gamz0, double *sin2W0, double GSWr[7], double GSWi[7], double R[4][4]);
44  void dipolqq_(int *iqed, double *E, double *theta, int *channel, double *Amz0, double *Gamz0, double *sin2W0, double *alphaQED, double *ReA0, double *ImA0, double *ReB, double *ImB, double *ReX, double *ImX, double *ReY, double *ImY, double GSWr[7], double GSWi[7], double R[4][4]);
45 
46  // COMMON /CHANOPT/ used to switch between pi- pi- pi+ and pi0 pi0 pi-
47  // in RChL currents
48  extern "C" struct CHANOPT {
49  int JJ;
50  } chanopt_;
51 
52 }
53 
54 } // namespace TauSpinner
55 #endif