77 _electronO (0), _vSN(-1)
94 for(
size_t i=0; i<100; ++i) {
97 if (gamma) { products->push_back(gamma); }
106 G4cout <<
"G4VGammaDeexcitation::DoChain - end" <<
G4endl;
125 if (dtransition && !dtransition->
IsAGamma()) {
128 etrans += bond_energy;
131 if(etrans <= 0.0) {
return thePhoton; }
135 if(excitation <=
_tolerance) { excitation = 0.0; }
139 G4cout <<
"G4VGammaDeexcitation::GenerateGamma - Edeexc(MeV)= "
140 << etrans <<
"; Time(ns)= " << gammaTime/
CLHEP::ns
141 <<
"; left Eexc(MeV)= " << excitation <<
G4endl;
151 if (dtransition && !dtransition->
IsAGamma() ) {
158 CLHEP::electron_mass_c2 - bond_energy);
162 G4double sinTheta = std::sqrt(1. - cosTheta * cosTheta);
175 G4double GammaEnergy = 0.5*((Ecm - Mass)*(Ecm + Mass) + eMass*eMass)/Ecm;
176 if(GammaEnergy < eMass) { GammaEnergy = eMass; }
178 G4double mom = std::sqrt((GammaEnergy - eMass)*(GammaEnergy + eMass));
179 Gamma4P.set(mom * sinTheta * std::cos(phi),
180 mom * sinTheta * std::sin(phi),
181 mom * cosTheta, GammaEnergy);
196 if(P2 > 0.0) { p = std::sqrt(P2); }
198 lv.set(v.x()*p, v.y()*p, v.z()*p, E);
virtual G4double GetGammaEnergy()=0
CLHEP::Hep3Vector G4ThreeVector
G4ElectronOccupancy _electronO
virtual void SetEnergyFrom(G4double energy)=0
virtual G4bool CanDoTransition(G4Fragment *aNucleus)=0
G4GLOB_DLL std::ostream G4cout
virtual void SelectGamma()=0
G4double GetCreationTime() const
const G4LorentzVector & GetMomentum() const
void SetMomentum(const G4LorentzVector &value)
static const double twopi
std::vector< G4Fragment * > G4FragmentVector
G4double GetGroundStateMass() const
G4Fragment * GenerateGamma(G4Fragment *nucleus)
void SetCreationTime(G4double time)
G4double GetPDGMass() const
G4VGammaTransition * _transition
static const G4double * P2[nN]
virtual ~G4VGammaDeexcitation()
static G4Electron * Electron()
G4double GetExcitationEnergy() const
G4int RemoveElectron(G4int orbit, G4int number=1)
void DoChain(G4FragmentVector *, G4Fragment *nucleus)
CLHEP::HepLorentzVector G4LorentzVector
virtual G4double GetGammaCreationTime()=0