65{
68
69 if (!isGamma) {
70 if(0 <= shell) {
72 if(Z <= 100) {
76 }
77 }
78 }
80 - bond_energy;
82 G4cout <<
"G4GammaTransition::GenerateGamma - Etrans(MeV)= "
83 << etrans << " Eexnew= " << newExcEnergy
84 <<
" Ebond= " << bond_energy <<
G4endl;
85 }
86 if(etrans <= 0.0) {
87 etrans += bond_energy;
88 bond_energy = 0.0;
89 }
90
91
94
95
97
99 else {
103 }
104
105 if(polarFlag && isDiscrete && JP1 <=
fTwoJMAX) {
107 } else {
109 }
110
112
113
116 if(!isGamma) { ecm += (CLHEP::electron_mass_c2 - bond_energy); }
117
118
119
120 ecm = std::max(ecm, mass + emass);
121 G4double energy = 0.5*((ecm - mass)*(ecm + mass) + emass*emass)/ecm;
122 G4double mom = (emass > 0.0) ? std::sqrt((energy - emass)*(
energy + emass))
124
125
129
130 energy = std::max(ecm - energy, mass);
132
133
135
136
138
139
140 res4mom.boost(bst);
142
143
144
146 G4cout <<
"G4GammaTransition::SampleTransition : " << *result <<
G4endl;
148 }
149 return result;
150}
G4ThreeVector G4RandomDirection()
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
void set(double x, double y, double z, double t)
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb)
static G4int GetNumberOfShells(G4int Z)
static G4Electron * Electron()
G4double GetGroundStateMass() const
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
void SetNumberOfElectrons(G4int value)
void SetExcEnergyAndMomentum(G4double eexc, const G4LorentzVector &)
G4int GetNumberOfElectrons() const
virtual void SampleDirection(G4Fragment *nuc, G4double ratio, G4int twoJ1, G4int twoJ2, G4int mp)
G4double GetPDGMass() const
G4double energy(const ThreeVector &p, const G4double m)