43 using namespace starlightConstants;
70 double y1,y2,y12,ega1,ega2,ega12;
71 double csgA1,csgA2,csgA12,int_r,dR;
79 cout<<
" Using Narrow Resonance ..."<<endl;
86 printf(
" gamma+nucleon threshold: %e GeV \n", Eth);
96 for(J=0;J<=(NY-1);J++){
103 if( A_2 == 1 && A_1 != 1 ){
105 ega1 = 0.5*W*exp(y1);
106 ega2 = 0.5*W*exp(y2);
107 ega12 = 0.5*W*exp(y12);
109 }
else if( A_1 ==1 && A_2 != 1){
111 ega1 = 0.5*W*exp(-y1);
112 ega2 = 0.5*W*exp(-y2);
113 ega12 = 0.5*W*exp(-y12);
116 ega1 = 0.5*W*exp(y1);
117 ega2 = 0.5*W*exp(y2);
118 ega12 = 0.5*W*exp(y12);
151 +starlightConstants::protonMass*starlightConstants::protonMass);
154 csgA1 = (csVA/csVN)*
sigmagp(Wgp);
160 Wgp = sqrt(2.*ega12*(
_Ep+sqrt(
_Ep*
_Ep-starlightConstants::protonMass*starlightConstants::protonMass))
161 +starlightConstants::protonMass*starlightConstants::protonMass);
164 csgA12 = (csVA/csVN)*
sigmagp(Wgp);
170 Wgp = sqrt(2.*ega2*(
_Ep+sqrt(
_Ep*
_Ep-starlightConstants::protonMass*starlightConstants::protonMass))
171 +starlightConstants::protonMass*starlightConstants::protonMass);
174 csgA2 = (csVA/csVN)*
sigmagp(Wgp);
180 dR = dR + 4*ega12*
photonFlux(ega12,beam)*csgA12;
193 if( !( (A_2 == 1 && A_1 != 1) || (A_1 == 1 && A_2 != 1) ) ){
194 for(J=0;J<=(NY-1);J++){
202 ega1 = 0.5*W*exp(-y1);
203 ega2 = 0.5*W*exp(-y2);
204 ega12 = 0.5*W*exp(-y12);
235 +starlightConstants::protonMass*starlightConstants::protonMass);
238 csgA1 = (csVA/csVN)*
sigmagp(Wgp);
244 Wgp = sqrt(2.*ega12*(
_Ep+sqrt(
_Ep*
_Ep-starlightConstants::protonMass*starlightConstants::protonMass))
245 +starlightConstants::protonMass*starlightConstants::protonMass);
248 csgA12 = (csVA/csVN)*
sigmagp(Wgp);
254 Wgp = sqrt(2.*ega2*(
_Ep+sqrt(
_Ep*
_Ep-starlightConstants::protonMass*starlightConstants::protonMass))
255 +starlightConstants::protonMass*starlightConstants::protonMass);
258 csgA2 = (csVA/csVN)*
sigmagp(Wgp);
264 dR = dR + 4*ega12*
photonFlux(ega12,beam)*csgA12;
277 if (0.01*int_r > 1.){
278 cout<<
" Total cross section: "<<0.01*int_r<<
" barn."<<endl;
279 }
else if (10.*int_r > 1.){
280 cout<<
" Total cross section: " <<10.*int_r<<
" mb."<<endl;
281 }
else if (10000.*int_r > 1.){
282 cout<<
" Total cross section: " <<10000.*int_r<<
" microb."<<endl;
283 }
else if (10000000.*int_r > 1.){
284 cout<<
" Total cross section: " <<10000000.*int_r<<
" nanob."<<endl;
285 }
else if (1.E10*int_r > 1.){
286 cout<<
" Total cross section: "<<1.E10*int_r<<
" picob."<<endl;
288 cout<<
" Total cross section: " <<1.E13*int_r<<
" femtob."<<endl;