00001 #ifndef _TAU_SPINNER_NONSM_H_ 00002 #define _TAU_SPINNER_NONSM_H_ 00003 #include "tau_reweight_lib.h" 00004 00005 namespace TauSpinner { 00006 00007 /** Default nonSM function 00008 00009 Always returns 1.0. Prints warnings if used with key!=0 */ 00010 double default_nonSM_born(int ID, double S, double cost, int H1, int H2, int key); 00011 00012 /** Default nonSMH function 00013 00014 Always returns 1.0. Prints warnings if used with key!=0 */ 00015 double default_nonSM_bornH(int ID, double S, double cost, int H1, int H2, int key); 00016 00017 /** nonSM born 00018 00019 Switches between nonSM born for Z and H depending on 'IfHiggs' flag 00020 (global variable of TauSpinner namespace) */ 00021 double nonSM_born(int ID, double S, double cost, int H1, int H2, int key); 00022 00023 /** Set nonSM function 00024 00025 Set function for user-defined born, including new physics 00026 This function must be of format: 00027 00028 double fun(int ID, double S, double cost, int H1, int H2, int key) 00029 00030 Where: ID -- 1 for down-type qqbar, 2 for up-type qqbar 00031 S -- cm qqbar energy^2 00032 cost -- cosTheta (scattering angle of tau- with respect to quark) 00033 H1,H2 -- spin state of first, second tau 00034 key -- 1 when new effect is added, 0 Standard Model 00035 00036 If set to NULL, default function will be used. */ 00037 void set_nonSM_born( double (*fun)(int, double, double, int, int, int) ); 00038 00039 00040 /** Set nonSMH function 00041 00042 Set function for user-defined born, including new physics 00043 This function must be of format: 00044 00045 double fun(int ID, double S, double cost, int H1, int H2, int key) 00046 00047 Where: ID -- 0 for glu-glu, 1 for down-type qqbar, 2 for up-type qqbar (may be dummy) 00048 S -- cm qqbar energy^2 00049 cost -- cosTheta (scattering angle of tau- with respect to gluon/quark) 00050 H1,H2 -- spin state of first, second tau 00051 key -- 1 when new effect is added, 0 Standard Model 00052 00053 If set to NULL, default function will be used. */ 00054 void set_nonSM_bornH( double (*fun)(int, double, double, int, int, int) ); 00055 00056 00057 /** plzap2 00058 00059 This function calculates probability for the helicity +1 +1 configuration 00060 of taus for given Z/gamma transfer and COSTH0 cosine of scattering angle. 00061 00062 This is the copy of plzap0 using 'nonSM_born' instead 00063 of 't_born' when switch for nonSM is turned on. */ 00064 double plzap2(int ide, int idf, double svar, double costhe); 00065 00066 00067 /** plweight 00068 00069 This function calculates ratio of cross section if switch nonSM2 00070 contribution is turned on. There are two options possible. One which 00071 change costhe distribution only and the one changing x-section as well */ 00072 double plweight(int ide, double svar, double costhe); 00073 00074 00075 /** plnorm 00076 00077 This function calculates ratio of integrated cross section if nonSMN 00078 is turned on. We integrate distr over cos-theta, assuming that distr is 00079 polynomial of the 4-th order in cos-theta (at most) */ 00080 double plnorm(int ide, double svar); 00081 00082 00083 /** Calculate nonSM sig and polarization for Higgs 00084 00085 Used only if nonSM2=1 00086 00087 Input: S - virtuality of H (note that S may not be ivariant of tau pair 00088 only, extra photons could contribute) 00089 tau1,tau2 - tau pair 00090 Returns: corrX2, polX2 00091 TauSpinner::WTnonSM */ 00092 void nonSMHcorrPol(double S, SimpleParticle &tau1, SimpleParticle &tau2, 00093 double *corrX2, double *polX2); 00094 00095 } // namespace TauSpinner 00096 #endif