55 applyARM(true), daughterNucleus(nullptr), photoEvap(0)
71 photoEvap->SetICM(
true);
95 G4Fragment parentNucleus(parentA, parentZ, atRest);
100 G4int oldZ(0), oldA(0);
102 if(daughterNucleus) {
112 if (nucPol && oldZ == parentZ && oldA == parentA
113 && std::abs(atRest.e() - oldMass) < mlimit) {
115 parentNucleus = *daughterNucleus;
131 delete daughterNucleus;
132 daughterNucleus =
new G4Fragment(parentNucleus);
133 }
else if(daughterNucleus) {
135 delete daughterNucleus;
136 daughterNucleus =
nullptr;
159 if (shellIndex > -1) {
162 if (atomDeex->
IsFluoActive() && parentZ > 5 && parentZ < 100) {
164 if (shellIndex >= nShells) shellIndex = nShells;
167 std::vector<G4DynamicParticle*> armProducts;
178 for (
G4int i = 0; i <
G4int(armProducts.size()); i++)
179 productEnergy += armProducts[i]->GetKineticEnergy();
185 G4double sinTh = std::sqrt(1.- cosTh*cosTh);
189 sinTh*std::cos(phi), cosTh);
193 armProducts.push_back(extra);
196 G4int nArm = armProducts.size();
199 for (
G4int i = 0; i < nArm; ++i) {
235 <<
" + gammas (or electrons), with branching ratio " <<
GetBR()
236 <<
"% and Q value " << transitionQ <<
G4endl;
Hep3Vector boostVector() const
G4int GetFloatingLevelNumber() const
void SetBR(G4double value)
static G4LossTableManager * Instance()
G4bool IsFluoActive() const
CLHEP::Hep3Vector G4ThreeVector
G4ITDecay(const G4ParticleDefinition *theParentNucleus, const G4double &theBR, const G4double &Qvalue, const G4double &excitation)
virtual void RDMForced(G4bool)
const G4String & GetParentName() const
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
virtual G4Fragment * EmittedFragment(G4Fragment *theNucleus) final
const G4ParticleDefinition * GetParticleDefinition() const
virtual G4DecayProducts * DecayIt(G4double)
virtual void DumpNuclearInfo()
G4double BindingEnergy() const
G4int GetAtomicNumber() const
static constexpr double twopi
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
G4IonTable * GetIonTable() const
static G4Ions::G4FloatLevelBase FloatLevelBase(char flbChar)
G4GLOB_DLL std::ostream G4cout
G4double GetCreationTime() const
void SetNumberOfDaughters(G4int value)
const G4LorentzVector & GetMomentum() const
HepLorentzVector & boost(double, double, double)
void SetMomentum(const G4LorentzVector &value)
G4double GetGroundStateMass() const
G4int GetAtomicMass() const
G4LorentzVector Get4Momentum() const
const G4String & GetDaughterName(G4int anIndex) const
G4int GetVacantShellNumber() const
static constexpr double eV
void Set4Momentum(const G4LorentzVector &momentum)
G4double GetPDGMass() const
static G4ParticleTable * GetParticleTable()
void SetParent(const G4ParticleDefinition *particle_type)
static G4EmParameters * Instance()
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
static G4Electron * Electron()
G4VAtomDeexcitation * AtomDeexcitation()
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
void SetProperTime(G4double)
static constexpr double keV
G4double GetExcitationEnergy() const
G4NuclearPolarization * GetNuclearPolarization() const
void CheckAndFillParent()
static G4int GetNumberOfShells(G4int Z)