48 G4cout <<
"G4XTRGaussRadModel EM process is called"
64 out <<
"Simulation of forward X-ray transition radiation generated by\n"
65 "relativistic charged particles crossing the interface between\n"
73 static constexpr G4double cofPHC = 4. * pi * hbarc;
74 G4double result, sum = 0., tmp, cof1, cof2, cofMin, theta2, theta2k;
80 sigma = 0.5 * (aMa + bMb);
102 G4cout << cof1 <<
" " << cof2 <<
" " << cofMin <<
G4endl;
103 G4cout <<
"kMin = " << kMin <<
"; kMax = " << kMax <<
G4endl;
105 for(k = kMin; k <= kMax; ++k)
108 result = (k - cof1) * (k - cof1) * (k + cof2) * (k + cof2);
109 if(k == kMin && kMin ==
G4int(cofMin))
112 0.5 * std::sin(tmp) * std::sin(tmp) * std::abs(k - cofMin) / result;
116 sum += std::sin(tmp) * std::sin(tmp) * std::abs(k - cofMin) / result;
118 theta2k = std::sqrt(theta2 * std::abs(k - cofMin));
122 G4cout << k <<
" " << theta2k <<
" "
123 << std::sin(tmp) * std::sin(tmp) * std::abs(k - cofMin) / result
127 result = 2 * (cof1 + cof2) * (cof1 + cof2) * sum / energy;
179 G4complex A = ( 1.0 - Ha ) * ( 1.0 - Hb ) / ( 1. - H );
180 G4complex B1 = ( 1.0 - Ha ) * ( 1.0 - Ha ) * Hb / ( 1. - H );
182 G4complex R = B1*( exp(-sigma*nn) - Hn )/( exp(-sigma) - H );
184 R +=
A * ( 1 - exp(-sigma*nn) ) / ( 1. - exp(-sigma) );
188 result = 2.0 * std::real(R);
std::complex< G4double > G4complex
G4GLOB_DLL std::ostream G4cout
G4double GetPlateLinearPhotoAbs(G4double)
G4complex GetPlateComplexFZ(G4double, G4double, G4double)
G4complex OneInterfaceXTRdEdx(G4double energy, G4double gamma, G4double varAngle)
G4VXTRenergyLoss(G4LogicalVolume *anEnvelope, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRenergyLoss", G4ProcessType type=fElectromagnetic)
G4double GetGasLinearPhotoAbs(G4double)
G4complex GetGasComplexFZ(G4double, G4double, G4double)
G4double GetStackFactor(G4double energy, G4double gamma, G4double varAngle) override
~G4XTRGaussRadModel() override
G4double SpectralXTRdEdx(G4double energy) override
void ProcessDescription(std::ostream &) const override
G4XTRGaussRadModel(G4LogicalVolume *anEnvelope, G4double, G4double, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRGaussRadModel")