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