#include <TPiKFun.h>
Inheritance diagram for TPiKFun:
Public Member Functions | |
TPiKFun () | |
double | Eval_odd (const double &, const double &) |
double | Eval_odd_ultra (const double &) |
double | Eval_even (const double &, const double &) |
double | Eval_even_odd (const double &, const double &) |
void | Init (std::string, std::string) |
double | Eval_int_odd (const double &, const double &) |
double | Eval (const double &s, const double &c) |
virtual double | Eval_even_ultra (const double &) |
virtual double | Eval_Coloumb_Factor (const double &) |
Static Public Member Functions | |
static double | Eval_a () |
Protected Attributes | |
float * | fm |
Definition at line 5 of file TPiKFun.h.
double TMuKFun::Eval | ( | const double & | s, | |
const double & | c | |||
) | [inline, inherited] |
Definition at line 15 of file TMuKFun.h.
References TMuKFun::Eval_a(), and TMuKFun::Eval_even_odd().
Referenced by TPiCrossPart::GetValue(), and TMuCrossPart::GetValue().
00015 { 00016 return Eval_even_odd(s,c) + Eval_a(); 00017 }
static double TMuKFun::Eval_a | ( | ) | [inline, static, inherited] |
Definition at line 13 of file TMuKFun.h.
References gConst, and TConstants::Pi2().
Referenced by TMuKFun::Eval(), TPiCrossPart::GetValue(), and TMuCrossPart::GetValue().
double TMuKFun::Eval_Coloumb_Factor | ( | const double & | ) | [virtual, inherited] |
Definition at line 30 of file TMuKFun.C.
References TConstants::Alpha(), exp(), gConst, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, and TConstants::Pi().
Referenced by TMuCrossPart::GetValue(), and TMuCrossPart::TMuCrossPart().
00030 { 00031 // Coloumb final state interaction, the first term of 00032 // expansion of Sakharov-Sommerfeld factor is taken into 00033 // account in formulae above, so it should be subtracted from K_Even 00034 00035 double beta = sqrt(1 - gGlobal->Get_MF2()*gGlobal->Get_s()/s); 00036 // relative velocity between final particles (inversed) 00037 double iv = (1+beta*beta)/(2*beta); 00038 double z = 2*gConst->Pi()*gConst->Alpha()*iv; 00039 // Sakharov-Sommerfeld factor 00040 return z/(1. - exp(-z)); 00041 }
double TPiKFun::Eval_even | ( | const double & | , | |
const double & | ||||
) | [virtual] |
Reimplemented from TMuKFun.
Definition at line 27 of file TPiKFun.C.
References EvtCyclic3::A, TLi2::Eval(), gConst, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, and TConstants::Pi2().
00027 { 00028 // b-function from errata of JHEP10(1997) 006 00029 double r = gGlobal->Get_MF2()*0.25*gGlobal->Get_s()/s; 00030 double rho =-log(r); 00031 double beta = sqrt(1-4*r); 00032 double beta1p = 1 + beta; 00033 double beta1m = 1 - beta; 00034 double rbeta = beta1m/beta1p; 00035 double ibeta = 1/beta; 00036 double A = rho + gConst->Pi2()/6 - log(rbeta)*log(0.5*ibeta*ibeta*beta1p) + 2*TLi2::Eval(rbeta); 00037 double k_even = -1 + 0.5*beta1m*ibeta*rho + (2 + beta*beta)*ibeta*log(0.5*beta1p) + 0.5*(1+beta*beta)*ibeta*A; 00038 return k_even; 00039 }
double TPiKFun::Eval_even_odd | ( | const double & | , | |
const double & | ||||
) | [virtual] |
Reimplemented from TMuKFun.
Definition at line 100 of file TPiKFun.C.
References EvtCyclic3::A, TLi2::Eval(), TMuKFun::Eval_int_odd(), gConst, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, and TConstants::Pi2().
00100 { 00101 // b-function from errata of JHEP10(1997) 006 00102 double r = gGlobal->Get_MF2()*0.25*gGlobal->Get_s()/s; 00103 double rho =-log(r); 00104 double beta2 = 1 - 4*r; 00105 double beta = sqrt(beta2); 00106 double beta1p = 1 + beta; 00107 double beta1m = 1 - beta; 00108 double rbeta = beta1m/beta1p; 00109 double ibeta = 1/beta; 00110 double lgbeta = log(0.5*beta1p); 00111 double A = rho + gConst->Pi2()/6.0 - log(rbeta)*log(0.5*ibeta*ibeta*beta1p) + 2*TLi2::Eval(rbeta); 00112 double k_even = -1 + 0.5*beta1m*ibeta*rho + (2 + beta*beta)*ibeta*lgbeta + 0.5*(1+beta*beta)*ibeta*A; 00113 00114 double betas2 = beta2*(1-c*c); 00115 double i2betas2 = 1/(2*betas2); 00116 00117 double d =-0.25*ibeta*beta1m*beta1m*(rho*rho + gConst->Pi2()/3) 00118 + ibeta*(1 + beta2)*(-rho*lgbeta - TLi2::Eval(-rbeta) + 2*TLi2::Eval(0.5*beta1m)); 00119 00120 double betac = beta*c; 00121 double betc1m = 1 - betac; 00122 double l_m = log(0.5*betc1m); 00123 double l_m2 = 0.5*l_m*l_m; 00124 double t1 = (1-beta2)/(2*betc1m); 00125 double a = l_m2 - log(1 - t1)*(rho + l_m ) + TLi2::Eval(t1); 00126 double li2t1 = TLi2::Eval(1 - t1); 00127 double li2t2 = TLi2::Eval(betas2/(1 + beta2 - 2*betac)); 00128 00129 double res_plus = l_m2 - li2t1 + li2t2 + i2betas2*(a*(1 - beta2) + betc1m*(-2*a + d)); 00130 00131 //changing sign of theta cosine 00132 betac = -betac; 00133 betc1m = 1 - betac; 00134 l_m = log(0.5*betc1m); 00135 l_m2 = 0.5*l_m*l_m; 00136 t1 = (1-beta2)/(2*betc1m); 00137 a = l_m2 - log(1 - t1)*(rho + l_m ) + TLi2::Eval(t1); 00138 li2t1 = TLi2::Eval(1 - t1); 00139 li2t2 = TLi2::Eval(betas2/(1 + beta2 - 2*betac)); 00140 double res_minus= l_m2 - li2t1 + li2t2 + i2betas2*(a*(1 - beta2) + betc1m*(-2*a + d)); 00141 00142 return k_even + res_plus - res_minus + Eval_int_odd(beta,c); 00143 }
double TMuKFun::Eval_even_ultra | ( | const double & | ) | [virtual, inherited] |
Definition at line 43 of file TMuKFun.C.
References gConst, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, and TConstants::Pi2().
00043 { 00044 return 3./4.*log(s/(gGlobal->Get_MF2()*0.25*gGlobal->Get_s())) + gConst->Pi2()/6. - 1.; 00045 }
double TMuKFun::Eval_int_odd | ( | const double & | , | |
const double & | ||||
) | [inherited] |
Definition at line 214 of file TMuKFun.C.
References genRecEmupikp::i, ganga-rec::j, NX, and T.
Referenced by Eval_even_odd(), TMuKFun::Eval_even_odd(), Eval_odd(), and TMuKFun::Eval_odd().
00214 { 00215 int i = int(floor((beta - 0.01)*50)); 00216 int j = int(floor((c + 1)*50)); 00217 double wy = 50*c - (j - 50); 00218 double res = 0; 00219 if(i >= 0 && i < NX-1){ 00220 double wx = 50*beta - i - 0.5; 00221 res = 00222 (T(i,j )*(1-wx) + T(i+1,j )*wx)*(1-wy) + 00223 (T(i,j+1)*(1-wx) + T(i+1,j+1)*wx)*wy; 00224 } else if (i == -1){ 00225 double wx = 100*beta; 00226 res = 00227 (T(0,j )*(1-wy) + T(0, j+1)*wy)*wx; 00228 } else if (i == NX - 1){ 00229 double wx = 1 - 100*(beta-0.99); 00230 res = 00231 (T(NX-1,j)*(1-wy)+ T(NX-1,j+1)*wy)*wx; 00232 } 00233 return -res; 00234 }
double TPiKFun::Eval_odd | ( | const double & | , | |
const double & | ||||
) | [virtual] |
Reimplemented from TMuKFun.
Definition at line 41 of file TPiKFun.C.
References TLi2::Eval(), TMuKFun::Eval_int_odd(), gConst, TRadGlobal::Get_MF2(), TRadGlobal::Get_s(), gGlobal, and TConstants::Pi2().
00041 { 00042 double r = gGlobal->Get_MF2()*0.25*gGlobal->Get_s()/s; 00043 double rho =-log(r); 00044 double beta2 = 1 - 4*r; 00045 double betas2 = beta2*(1-c*c); 00046 double i2betas2 = 1/(2*betas2); 00047 double beta = sqrt(beta2); 00048 double ibeta = 1/beta; 00049 00050 double d =-0.25*ibeta*(1-beta)*(1-beta)*(rho*rho + gConst->Pi2()/3) 00051 + ibeta*(1 + beta2)*(-rho*log(0.5*(1 + beta)) - 00052 TLi2::Eval(-(1-beta)/(1+beta)) + 2*TLi2::Eval(0.5*(1-beta))); 00053 00054 double betac = beta*c; 00055 double betc1m = 1 - betac; 00056 double l_m = log(0.5*betc1m); 00057 double l_m2 = 0.5*l_m*l_m; 00058 double t1 = (1-beta2)/(2*betc1m); 00059 double a = l_m2 - log(1 - t1)*(rho + l_m ) + TLi2::Eval(t1); 00060 double li2t1 = TLi2::Eval(1 - t1); 00061 double li2t2 = TLi2::Eval(betas2/(1 + beta2 - 2*betac)); 00062 00063 double res_plus = l_m2 - li2t1 + li2t2 + i2betas2*(a*(1 - beta2) + betc1m*(-2*a + d)); 00064 00065 //changing sign of theta cosine 00066 betac = -betac; 00067 betc1m = 1 - betac; 00068 l_m = log(0.5*betc1m); 00069 l_m2 = 0.5*l_m*l_m; 00070 t1 = (1-beta2)/(2*betc1m); 00071 a = l_m2 - log(1 - t1)*(rho + l_m ) + TLi2::Eval(t1); 00072 li2t1 = TLi2::Eval(1 - t1); 00073 li2t2 = TLi2::Eval(betas2/(1 + beta2 - 2*betac)); 00074 double res_minus= l_m2 - li2t1 + li2t2 + i2betas2*(a*(1 - beta2) + betc1m*(-2*a + d)); 00075 00076 return res_plus - res_minus + Eval_int_odd(beta,c); 00077 }
double TPiKFun::Eval_odd_ultra | ( | const double & | ) | [virtual] |
Reimplemented from TMuKFun.
Definition at line 79 of file TPiKFun.C.
References TLi2::Eval().
00079 { 00080 // Ultra-relativistic limit of odd part of K-function 00081 double st_h2 = 0.5*(1-c); 00082 double st_h = sqrt(st_h2); 00083 double ct_h2 = 0.5*(1+c); 00084 double ct_h = sqrt(ct_h2); 00085 double lst_h = log(st_h); 00086 double lct_h = log(ct_h); 00087 /* 00088 std::cout<<c<<" " 00089 <<st_h2<<" " 00090 <<ct_h2<<" " 00091 <<st_h<<" " 00092 <<ct_h<<" " 00093 <<lst_h<<" " 00094 <<lct_h<<" " 00095 <<std::endl; 00096 */ 00097 return (2-1/ct_h2)*lst_h*lst_h - (2-1/st_h2)*lct_h*lct_h - TLi2::Eval(st_h2) + TLi2::Eval(ct_h2); 00098 }
void TMuKFun::Init | ( | std::string | , | |
std::string | ||||
) | [inherited] |
Definition at line 166 of file TMuKFun.C.
References false, TMuKFun::fm, fname, genRecEmupikp::i, ganga-rec::j, NX, NY, deljobs::string, and T.
Referenced by TMuCrossPart::TMuCrossPart().
00166 { 00167 if(!fm){ 00168 fm = new float[NX*NY]; 00169 /* 00170 char *intd = getenv("INTEG_DIR"); 00171 char *intf = getenv("INTEG_FNAME"); 00172 std::string fname; 00173 if(intf == NULL){ 00174 if(intd == NULL){ 00175 fname = "integ.dat"; 00176 }else{ 00177 std::ostringstream temp; 00178 temp<<intd<<"/"<<"integ.dat"; 00179 fname = temp.str(); 00180 } 00181 } else { 00182 fname = intf; 00183 } 00184 */ 00185 std::string fname; 00186 if(! intf.empty()) fname = intf; 00187 else fname = "integ.dat"; 00188 00189 if(! intd.empty()) fname = intd + "/" + fname; 00190 00191 std::ifstream IN(fname.c_str()); 00192 if(IN.is_open() == false ){ 00193 std::cout<<"Can't read \""<<fname<<"\". " 00194 <<"Angular distribution will be partially incorrect!" 00195 <<std::endl; 00196 std::cout<<"Probably you should tune INTEG_DIR or INTEG_FNAME variables."<<std::endl; 00197 for(int i=0;i<NX;i++){ 00198 for(int j=0;j<NY;j++) 00199 T(i,j) = 0; 00200 } 00201 return; 00202 } 00203 float t1,t2; 00204 for(int i=0;i<NX;i++){ 00205 for(int j=0;j<NY-1;j++) 00206 IN>>t1>>t2>>T(i,j); 00207 T(i,0) = 0; 00208 T(i,NY-1) = 0; 00209 } 00210 IN.close(); 00211 } 00212 }
float* TMuKFun::fm [protected, inherited] |
Definition at line 8 of file TMuKFun.h.
Referenced by TMuKFun::Init(), TMuKFun::TMuKFun(), and TMuKFun::~TMuKFun().