47 G4cout<<
" XTR Regular discrete radiator model is called"<<
G4endl ;
70 G4double result, sum = 0., tmp, cof1, cof2, cofMin, cofPHC, theta2, theta2k;
76 sigma = 0.5*(aMa + bMb);
95 if (cofMin > kMin) kMin++;
114 for( k = kMin; k <=
kMax; k++ )
117 result = (k - cof1)*(k - cof1)*(k + cof2)*(k + cof2);
119 if( k == kMin && kMin ==
G4int(cofMin) )
121 sum += 0.5*std::sin(tmp)*std::sin(tmp)*std::abs(k-cofMin)/
result;
125 sum += std::sin(tmp)*std::sin(tmp)*std::abs(k-cofMin)/
result;
127 theta2k = std::sqrt(theta2*std::abs(k-cofMin));
133 G4cout<<k<<
" "<<theta2k<<
" "<<std::sin(tmp)*std::sin(tmp)*std::abs(k-cofMin)/result
137 result = 2*( cof1 + cof2 )*( cof1 + cof2 )*sum/
energy;
179 Qa = std::exp(-aMa) ;
180 Qb = std::exp(-bMb) ;
186 G4complex Ha( std::exp(-0.5*aMa)*std::cos(aZa),
187 -std::exp(-0.5*aMa)*std::sin(aZa) ) ;
189 G4complex Hb( std::exp(-0.5*bMb)*std::cos(bZb),
190 -std::exp(-0.5*bMb)*std::sin(bZb) ) ;
198 G4complex F2 = (1.0-Ha)*(Qa-Ha)*Hb*(1.0-Hs)*(Q-Hs) ;
204 result *= (1. - Qa)*(1. + Qa - 2.*std::sqrt(Qa)*std::cos(aZa)) ;
206 result /= (1. - std::sqrt(Q))*(1. - std::sqrt(Q)) +
207 4.*std::sqrt(Q)*std::sin(0.5*(aZa+bZb))*std::sin(0.5*(aZa+bZb)) ;
211 I2 /= (1. - std::sqrt(Q))*(1. - std::sqrt(Q)) +
212 4.*std::sqrt(Q)*std::sin(0.5*(aZa+bZb))*std::sin(0.5*(aZa+bZb)) ;
214 I2 /= Q*( (std::sqrt(Q)-std::cos(aZa+bZb))*(std::sqrt(Q)-std::cos(aZa+bZb)) +
215 std::sin(aZa+bZb)*std::sin(aZa+bZb) ) ;
222 result = std::real(stack);
G4double G4ParticleHPJENDLHEData::G4double result
G4double GetStackFactor(G4double energy, G4double gamma, G4double varAngle) override
G4double GetGasFormationZone(G4double, G4double, G4double)
virtual ~G4XTRRegularRadModel()
G4double GetPlateLinearPhotoAbs(G4double)
std::vector< ExP01TrackerHit * > a
G4double GetGasLinearPhotoAbs(G4double)
G4double GetPlateFormationZone(G4double, G4double, G4double)
G4XTRRegularRadModel(G4LogicalVolume *anEnvelope, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRegularModel")
std::complex< G4double > G4complex
G4GLOB_DLL std::ostream G4cout
G4double energy(const ThreeVector &p, const G4double m)
G4complex OneInterfaceXTRdEdx(G4double energy, G4double gamma, G4double varAngle)
static constexpr double pi
G4double SpectralXTRdEdx(G4double energy) override