19 #include "CLHEP/Units/SystemOfUnits.h"
43 for (
int k=0;
k<Nelem;
k++ ) {
47 rho +=
w *
pe->getDensity(tempK);
48 Aeff +=
w *
pe->getAtomicA();
49 Zeff +=
w *
pe->getAtomicZ();
66 std::vector<float> tempv;
67 for (
int k=0;
k<Nelem;
k++ ) {
69 tempv =
pe->getLnELvls();
103 for (
int i=0;
i<NLvls;
i++ ) {
106 for (
int k=0;
k<Nelem;
k++ ) {
116 fosc = std::clamp(fosc, 1
e-300,1
e+300);
127 for (
int i=NLvls-1;
i>=0; --
i) {
141 for (
int i=0;
i<NLvls;
i++) {
147 for (
int i=0;
i<NLvls;
i++) {
188 return x/(
x*
x-1.)*(
fp-fm);
197 double extraParameter ) {
205 const double U[M]={-.8611363,-.3399810, .3399810 ,.8611363};
206 const double W[M]={ .3478548, .6521452, .6521452, .3478548};
211 double Dt = 0.5*(lnHi-lnLo);
217 for (
int i=1;
i<=
N;
i++) {
218 for (
int k=0;
k<M;
k++) {
219 double arg = lnLo + D*(2*
i-1+U[
k]);
220 OTB +=
W[
k] * (this->*pt2Func)(
arg, extraParameter );
227 ATH_MSG_WARNING(
"effectiveGas::XGInt: integrate Divergence! " << std::abs(OTB-
Y) <<
" " << std::abs(eps*OTB) );
230 }
while ( (std::abs(OTB-
Y) > std::abs(eps*OTB)) && (eps>0) );
244 double betaSq = 1.-1./gammaSq;
249 std::complex<double> Ceps1(er/(
E*
E),
std::exp(ei));
250 std::complex<double> C1 = 1./gammaSq - Ceps1*betaSq;
251 std::complex<double> C2 = C1/(1.+Ceps1) *
std::log(2.*betaSq*
MeeV/(
E*C1));
263 std::vector<float>& lnEarray,
264 std::vector< std::vector<float> >& fnArray,
265 std::vector<float>& dndx)
274 int nGamVals = gamvec.size();
278 double lnEs = -99999999.;
280 fnArray.resize(nGamVals);
284 for (
int ig=0; ig<nGamVals; ++ig ) {
285 fnArray[ig].push_back(0.);
290 for (
int ie=NLvls-1;
ie>=0; --
ie ) {
293 for (
int ig=0; ig<nGamVals; ++ig ) {
296 fnArray[ig][nEVals] +=
ds;
298 if ( std::abs(lnEs-lnEi) > Rener ||
ie==0 ) {
300 lnEarray.push_back( lnEs );
302 for (
int ig=0; ig<nGamVals; ++ig ) {
303 fnArray[ig].push_back( fnArray[ig][nEVals] );
311 dndx.resize(nGamVals);
312 for (
int ig = 0; ig < nGamVals; ++ig ) {
313 dndx[ig] = fnArray[ig][nEVals-1];