54 #ifndef QweakSimUrbanMscModel_h
55 #define QweakSimUrbanMscModel_h 1
59 #include <CLHEP/Units/SystemOfUnits.h>
61 #include "G4VMscModel.hh"
62 #include "G4MscStepLimitType.hh"
64 class G4ParticleChangeForMSC;
66 class G4LossTableManager;
79 void Initialise(
const G4ParticleDefinition*,
const G4DataVector&);
84 G4double KineticEnergy,
85 G4double AtomicNumber,
86 G4double AtomicWeight=0.,
88 G4double emax=DBL_MAX);
93 G4double& currentMinimalStep);
100 G4double KineticEnergy);
112 inline void SetParticle(
const G4ParticleDefinition*);
190 mass = p->GetPDGMass();
191 charge = p->GetPDGCharge()/CLHEP::eplus;
203 G4double facz = 0.74845+0.13354*exp(log(
Zeff)/6.);
208 G4double Z13 = std::exp(
lnZ/3.);
209 coeffc1 = 2.3785 - Z13*(4.1981e-1 - Z13*6.3100e-2);
210 coeffc2 = 4.7526e-1 + Z13*(1.7694 - Z13*3.3885e-1);
211 coeffc3 = 2.3683e-1 - Z13*(1.8111 - Z13*3.2774e-1);
212 coeffc4 = 1.7888e-2 + Z13*(1.9659e-2 - Z13*2.6664e-3);
G4double SampleDisplacement()
G4LossTableManager * theManager
G4double currentRadLength
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *particle, G4double KineticEnergy, G4double AtomicNumber, G4double AtomicWeight=0., G4double cut=0., G4double emax=DBL_MAX)
G4double ComputeTheta0(G4double truePathLength, G4double KineticEnergy)
G4int currentMaterialIndex
void SetParticle(const G4ParticleDefinition *)
G4double SimpleScattering(G4double xmeanth, G4double x2meanth)
G4double currentKinEnergy
G4double LatCorrelation()
G4ThreeVector & SampleScattering(const G4ThreeVector &, G4double safety)
G4ParticleChangeForMSC * fParticleChange
G4double ComputeTrueStepLength(G4double geomStepLength)
G4double ComputeTruePathLengthLimit(const G4Track &track, G4double ¤tMinimalStep)
G4ThreeVector polarization
void StartTracking(G4Track *)
void Initialise(const G4ParticleDefinition *, const G4DataVector &)
G4double ComputeGeomPathLength(G4double truePathLength)
QweakSimUrbanMscModel(const G4String &nam="UrbanMsc96")
const G4MaterialCutsCouple * couple
G4double SampleCosineTheta(G4double trueStepLength, G4double KineticEnergy)
QweakSimUrbanMscModel & operator=(const QweakSimUrbanMscModel &right)
virtual ~QweakSimUrbanMscModel()
const G4ParticleDefinition * particle