45 #include "TestParameters.hh"
85 if( gammaEnergy > tkin || tkin <
minThreshold)
return dxsection;
94 G4double delta = 0.5*mass*mass*v/(E-gammaEnergy) ;
108 (mass+delta*(dn*sqrte-2.))) ;
115 dxsection =
coeff*x*Z*Z*fn/gammaEnergy;
136 if (cut >= tmax)
return cross;
140 if(tmax < kineticEnergy)
152 std::vector<G4DynamicParticle*>* vdp,
163 if(tmin >= tmax)
return;
174 G4double totalMomentum = sqrt(kineticEnergy*(kineticEnergy + 2.0*mass));
208 G4double dirx = sint*cos(phi), diry = sint*sin(phi), dirz = cos(theta) ;
213 partDirection *= totalMomentum;
214 partDirection -= gMomentum*gDirection;
215 partDirection = partDirection.
unit();
219 kineticEnergy -= gEnergy;
227 vdp->push_back(aLDMPhoton);
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
static constexpr double MeV
G4LDMBremModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="ldmBrem")
const G4ParticleDefinition * theLDMPhoton
const G4ThreeVector & GetMomentumDirection() const
Hep3Vector & rotateUz(const Hep3Vector &)
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
void SetProposedMomentumDirection(const G4ThreeVector &dir)
G4double GetPDGMass() const
G4double G4Log(G4double x)
static G4LDMPhoton * LDMPhoton()
virtual ~G4LDMBremModel()
G4double GetPDGSpin() const
const G4ParticleDefinition * particle
static constexpr double electron_mass_c2
static TestParameters * GetPointer()
static constexpr double twopi
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy) override
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, G4double maxEnergy) override
G4double GetA27(G4int Z) const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
G4double GetKineticEnergy() const
G4double GetZ13(G4double Z) const
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, G4double gammaEnergy) override
G4double GetAlphaFactor() const
G4ParticleChangeForLoss * fParticleChange
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4double ComputeMicroscopicCrossSection(G4double tkin, G4double Z, G4double cut)