50 : polarFlag(false), fDirection(0.,0.,0.), fVerbose(0)
83 G4cout <<
"G4GammaTransition::GenerateGamma - Etrans(MeV)= "
84 << etrans <<
" Eexnew= " << newExcEnergy
85 <<
" Ebond= " << bond_energy <<
G4endl;
88 etrans += bond_energy;
107 if(polarFlag && isDiscrete) {
123 G4double energy = 0.5*((ecm - mass)*(ecm + mass) + emass*emass)/ecm;
124 G4double mom = (emass > 0.0) ? std::sqrt((energy - emass)*(energy + emass))
132 energy =
std::max(ecm - energy, mass);
148 G4cout <<
"G4GammaTransition::SampleTransition : " << result <<
G4endl;
166 G4int L0 = 0, Lp = 0;
195 G4double sinTheta = std::sqrt((1.-cosTheta)*(1.+cosTheta));
196 fDirection.
set(sinTheta*std::cos(phi),sinTheta*std::sin(phi),cosTheta);
G4double G4ParticleHPJENDLHEData::G4double result
void set(double x, double y, double z)
Hep3Vector boostVector() const
virtual void SampleDirection(G4Fragment *nuc, G4double ratio, G4int twoJ1, G4int twoJ2, G4int mp)
G4int GetNumberOfElectrons() const
G4double GenerateGammaPhi(G4double cosTheta, const POLAR &)
G4double GenerateGammaCosTheta(const POLAR &)
void SetNumberOfElectrons(G4int value)
G4ThreeVector G4RandomDirection()
static constexpr double electron_mass_c2
virtual ~G4GammaTransition()
G4GLOB_DLL std::ostream G4cout
void SetNuclearPolarization(G4NuclearPolarization *)
std::vector< std::vector< G4complex > > & GetPolarization()
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb)
const G4LorentzVector & GetMomentum() const
HepLorentzVector & boost(double, double, double)
G4double GetGroundStateMass() const
void SetGammaTransitionData(G4int twoJ1, G4int twoJ2, G4int Lbar, G4double delta=0, G4int Lprime=1)
virtual G4Fragment * SampleTransition(G4Fragment *nucleus, G4double newExcEnergy, G4double mpRatio, G4int JP1, G4int JP2, G4int MP, G4int shell, G4bool isDiscrete, G4bool isGamma)
void set(double x, double y, double z, double t)
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double energy(const ThreeVector &p, const G4double m)
G4PolarizationTransition fPolTrans
void UpdatePolarizationToFinalState(G4double cosTheta, G4double phi, G4Fragment *)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
void SetExcEnergyAndMomentum(G4double eexc, const G4LorentzVector &)
static G4Electron * Electron()
static constexpr double twopi
G4double GetExcitationEnergy() const
G4NuclearPolarization * GetNuclearPolarization() const
static G4int GetNumberOfShells(G4int Z)