C++InterfacetoTauola
TauSpinner/include/TauSpinner/nonSM.h
1 #ifndef _TAU_SPINNER_NONSM_H_
2 #define _TAU_SPINNER_NONSM_H_
3 #include "TauSpinner/tau_reweight_lib.h"
4 
5 namespace TauSpinner {
6 
7 /** Default nonSM function
8 
9  Always returns 1.0. Prints warnings if used with key!=0 */
10 double default_nonSM_bornZ(int ID, double S, double cost, int H1, int H2, int key);
11 
12 /** Default nonSMH function
13 
14  Always returns 1.0. Prints warnings if used with key!=0 */
15 double default_nonSM_bornH(int ID, double S, double cost, int H1, int H2, int key);
16 
17 /** nonSM born
18 
19  Switches between nonSM born for Z and H depending on 'IfHiggs' flag
20  (global variable of TauSpinner namespace) */
21 double nonSM_born(int ID, double S, double cost, int H1, int H2, int key);
22 
23 /** Set nonSM function
24 
25  Set function for user-defined born, including new physics
26  This function must be of format:
27 
28  double fun(int ID, double S, double cost, int H1, int H2, int key)
29 
30  Where: ID -- 1 for down-type qqbar, 2 for up-type qqbar
31  S -- cm qqbar energy^2
32  cost -- cosTheta (scattering angle of tau- with respect to quark)
33  H1,H2 -- spin state of first, second tau
34  key -- 1 when new effect is added, 0 Standard Model
35 
36  If set to NULL, default function will be used. */
37 int set_nonSM_born( double (*fun)(int, double, double, int, int, int) );
38 
39 
40 /** Set nonSMH function
41 
42  Set function for user-defined born, including new physics
43  This function must be of format:
44 
45  double fun(int ID, double S, double cost, int H1, int H2, int key)
46 
47  Where: ID -- 0 for glu-glu, 1 for down-type qqbar, 2 for up-type qqbar (may be dummy)
48  S -- cm qqbar energy^2
49  cost -- cosTheta (scattering angle of tau- with respect to gluon/quark)
50  H1,H2 -- spin state of first, second tau
51  key -- 1 when new effect is added, 0 Standard Model
52 
53  If set to NULL, default function will be used. */
54 int set_nonSM_bornH( double (*fun)(int, double, double, int, int, int) );
55 
56 
57 /** plzap2
58 
59  This function calculates probability for the helicity +1 +1 configuration
60  of taus for given Z/gamma transfer and COSTH0 cosine of scattering angle.
61 
62  This is the copy of plzap0 using 'nonSM_born' instead
63  of 't_born' when switch for nonSM is turned on. */
64 double plzap2(int ide, int idf, double svar, double costhe);
65 
66 
67 /** plweight
68 
69  This function calculates ratio of cross section if switch nonSM2
70  contribution is turned on. There are two options possible. One which
71  change costhe distribution only and the one changing x-section as well */
72 double plweight(int ide, double svar, double costhe);
73 
74 
75 /** plnorm
76 
77  This function calculates ratio of integrated cross section if nonSMN
78  is turned on. We integrate distr over cos-theta, assuming that distr is
79  polynomial of the 4-th order in cos-theta (at most) */
80 double plnorm(int ide, double svar);
81 
82 
83 /** Calculate nonSM sig and polarization for Higgs
84 
85  Used only if nonSM2=1
86 
87  Input: S - virtuality of H (note that S may not be ivariant of tau pair
88  only, extra photons could contribute)
89  tau1,tau2 - tau pair
90  Returns: corrX2, polX2
91  TauSpinner::WTnonSM */
92 void nonSMHcorrPol(double S, SimpleParticle &tau1, SimpleParticle &tau2,
93  double *corrX2, double *polX2);
94 
95 } // namespace TauSpinner
96 #endif
double default_nonSM_bornZ(int ID, double S, double cost, int H1, int H2, int key)
Definition: nonSM.cxx:33
double plzap2(int ide, int idf, double svar, double costhe)
Definition: nonSM.cxx:125
int set_nonSM_bornH(double(*fun)(int, double, double, int, int, int))
Definition: nonSM.cxx:116
double default_nonSM_bornH(int ID, double S, double cost, int H1, int H2, int key)
Definition: nonSM.cxx:95
double nonSM_born(int ID, double S, double cost, int H1, int H2, int key)
Definition: nonSM.cxx:20
double plweight(int ide, double svar, double costhe)
Definition: nonSM.cxx:185
void nonSMHcorrPol(double S, SimpleParticle &tau1, SimpleParticle &tau2, double *corrX2, double *polX2)
Definition: nonSM.cxx:226
double plnorm(int ide, double svar)
Definition: nonSM.cxx:199
int set_nonSM_born(double(*fun)(int, double, double, int, int, int))
Definition: nonSM.cxx:107