70 G4double sint = std::sqrt((1.0 - cost)*(1.0 + cost));
90 return std::cos(std::sqrt(x/(1.0 - x))/
gam);
107 G4double etwo = elecKinEnergy + posiKinEnergy;
111 G4double sint = std::sqrt((1.0 - cost)*(1.0 + cost));
113 dirElectron.
set(sint*cosp, sint*sinp, cost);
117 sint = std::sqrt((1.0 - cost)*(1.0 + cost));
119 dirPositron.
set(-sint*cosp, -sint*sinp, cost);
128 G4cout <<
"Angular Generator is Modified Mephi" <<
G4endl;
G4GLOB_DLL std::ostream G4cout
void set(double x, double y, double z)
Hep3Vector & rotateUz(const Hep3Vector &)
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
void PrintGeneratorInformation() const override
G4double SampleCosTheta(G4double primKinEnergy, G4double gEnergy, G4double mass)
G4ModifiedMephi(const G4String &name="")
G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double gEnergy, G4int Z, const G4Material *mat=nullptr) final
void SamplePairDirections(const G4DynamicParticle *dp, G4double elecKinEnergy, G4double posiKinEnergy, G4ThreeVector &dirElectron, G4ThreeVector &dirPositron, G4int Z=0, const G4Material *mat=nullptr) final
~G4ModifiedMephi() override
G4double GetPDGMass() const
G4ThreeVector fLocalDirection
static constexpr double twopi
static constexpr double halfpi
T min(const T t1, const T t2)
brief Return the smallest of the two arguments