C++ Interface to Tauola
EWtables.h
1#include <complex>
2using std::complex;
3
4extern "C" {
5 /** */
6 // void initwk_(int *IDE, int *IDF, double *SVAR);
7
8 /** passes initialization to fortran, possibly to be re-written to C rather soon */
9 void initwkswdelt_(int *mode, int *ID, int *finID, double *SS, double *SWeff, double *DeltSQ,double *DeltV, double * Gmu, double *alfinv, double *AMZi, double *GAMMZi, int *keyGSW, double *ReGSW1, double *ImGSW1, double *ReGSW2, double *ImGSW2, double *ReGSW3, double *ImGSW3,double * ReGSW4, double *ImGSW4, double *ReGSW6, double *ImGSW6 );
10
11 /**
12C THIS ROUTINE PROVIDES effective BORN CROSS SECTION i.e. with EW. form factors.
13C IT HAS THE SAME STRUCTURE AS FUNTIS AND FUNTIH, THUS CAN BE USED AS SIMPLER
14C above comment undeline link with conventions stretching from KOLAZ times.
15C EXAMPLE OF THE METHOD APPLIED THERE
16C INPUT PARAMETERS ARE: SVAR -- transfer
17C COSTHE -- cosine of angle between tau+ and 1st beam
18C TA,TB -- helicity states of tau+ tau-
19C */
20 double t_bornew_(int *MODE, int *KEYGSW, double *SVAR, double *COSTHE, double *TA, double *TB);
21}
22
23namespace TauSpinner {
24
25/** routine initializes parameters and form-factors for t_bornnew_
26 checking first it is necessary
27 */
28int initEWff(int ID,double S,double cost,int key);
29
30/** reads in tables with electroweak formfactors
31 to be executed from main program of the user */
32int initTables(char* mumu, char* downdown, char* upup);
33
34//int testit(); // obsolete prepared to be removed, or to be left
35 // commented out for ``panic tests''.
36
37
38 /** provides electroweak form-factor for input of (int FLAV, int NO, double s, double costhe) */
39complex<double> EWFACT(int FLAV, int NO, double s, double costhe);
40
41 /** provides info flag if tables were initialized */
42int CheckinitTables();
43
44/** returns QCD factor as interpolated from electroweak table for s.
45 Also for given FLAV and NO, may be called from user main program */
46double QCDFACT(int FLAV, int NO, double s);
47
48/** returns Z mass as stored in header of electroweak table for FLAV
49 may be called from user main program */
50double Amz(int FLAV);
51
52/** returns Z widtd as stored in header of electroweak table for FLAV
53 may be called from user main program */
54double Gamz(int FLAV);
55
56/** returns sin^2theta_W^eff as stored in header of electroweak table for FLAV
57 may be called from user main program */
58double sin2W(int FLAV);
59
60/**
61 Calculates Born cross-section summed over final taus spins.
62 Input parameters:
63 incoming flavour ID
64 invariant mass^2 SS
65 scattering angle costhe
66 effective weingber SWeff
67 anomalous contributions DeltSQ, DeltV
68 Fermi coupling Gmu
69 alphaqed^-1 alfinv
70 elecroweak init. switch non standard keyGSW
71 may be called from user main program
72 */
73double sigbornswdelt(int mode, int ID, double SS, double costhe, double SWeff, double DeltSQ, double DeltV, double Gmu, double alfinv, double AMZ0, double GAM0, int keyGSW);
74
75/**
76 As sigbornswdelt, but subtracts negative spin contrib (for A_pol) calculation
77 */
78double AsNbornswdelt(int mode, int ID, double SS, double costhe, double SWeff, double DeltSQ, double DeltV, double Gmu, double alfinv, double AMZ0, double GAM0, int keyGSW);
79
80/** Routine to pass user initialized parameters to be used by electroweak Born.
81 Internally called, but may be available for user tests as well
82 (this may be not the best thing to do)
83 takes parameters from the local storage,
84 change m_status to 1 (which means that parameters
85 were taken for internal use) */
86void ExtraEWparamsGet( double *AMZi, double *GAM, double *SWeff, double *alfinv, double *DeltSQ, double *DeltV, double *Gmu,int *keyGSW);
87
88
89/** Routine for user initialization of electroweak Born.
90 Reads inparameters to the local storage
91 change m_status to 0 (that means parameters, need to be
92 passed to internal storage) */
93void ExtraEWparamsSet( double AMZi, double GAM, double SWeff, double alfinv, double DeltSQ, double DeltV, double Gmu,int keyGSW);
94
95
96/** returns m_status of user initialization of electroweak Born.
97 may be safely used by main program */
98int ExtraEWparams();
99
100}
void ExtraEWparamsGet(double *AMZi, double *GAM, double *SWeff, double *alfinv, double *DeltSQ, double *DeltV, double *Gmu, int *keyGSW)
Definition: EWtables.cxx:526
double sin2W(int FLAV)
Definition: EWtables.cxx:452
int initTables(char *mumu, char *downdown, char *upup)
Definition: EWtables.cxx:50
int CheckinitTables()
Definition: EWtables.cxx:45
double Amz(int FLAV)
Definition: EWtables.cxx:424
double Gamz(int FLAV)
Definition: EWtables.cxx:438
int ExtraEWparams()
Definition: EWtables.cxx:557
void ExtraEWparamsSet(double AMZi, double GAM, double SWeff, double alfinv, double DeltSQ, double DeltV, double Gmu, int keyGSW)
Definition: EWtables.cxx:544
complex< double > EWFACT(int FLAV, int NO, double s, double costhe)
Definition: EWtables.cxx:355
double AsNbornswdelt(int mode, int ID, double SS, double costhe, double SWeff, double DeltSQ, double DeltV, double Gmu, double alfinv, double AMZ0, double GAM0, int keyGSW)
Definition: EWtables.cxx:732
double sigbornswdelt(int mode, int ID, double SS, double costhe, double SWeff, double DeltSQ, double DeltV, double Gmu, double alfinv, double AMZ0, double GAM0, int keyGSW)
Definition: EWtables.cxx:690
int initEWff(int ID, double S, double cost, int key)
Definition: EWtables.cxx:563
double QCDFACT(int FLAV, int NO, double s)
Definition: EWtables.cxx:466