43 theFS.
Init(A, Z, M, dirName, aFSType);
44 theFC.
Init(A, Z, M, dirName, aFSType);
45 theSC.
Init(A, Z, M, dirName, aFSType);
46 theTC.
Init(A, Z, M, dirName, aFSType);
47 theLC.
Init(A, Z, M, dirName, aFSType);
49 theFF.
Init(A, Z, M, dirName, aFSType);
50 if ( getenv(
"G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS") && theFF.
HasFSData() )
52 G4cout <<
"Activate Fission Fragments Production for the target isotope of "
54 <<
", A = " << (
G4int)A
57 G4cout <<
"As the result, delayed neutrons are omitted and they should be taken care by RadioaActiveDecay."
59 produceFissionFragments =
true;
103 theNeutron.
Lorentz(theNeutron, -1*theTarget);
114 xSec[0] = theFC.
GetXsec(eKinetic);
115 xSec[1] = xSec[0]+theSC.
GetXsec(eKinetic);
116 xSec[2] = xSec[1]+theTC.
GetXsec(eKinetic);
117 xSec[3] = xSec[2]+theLC.
GetXsec(eKinetic);
130 if(random<xSec[i]/xSec[3])
break;
138 G4int Prompt=0, delayed=0, all=0;
144 if(Prompt==0&&delayed==0) Prompt=all;
150 if(Prompt==0&&delayed==0) Prompt=all;
155 if(Prompt==0&&delayed==0) Prompt=all;
160 if(Prompt==0&&delayed==0) Prompt=all;
171 if ( produceFissionFragments ) delayed=0;
175 if( theNeutrons != 0)
177 theDecayConstants =
new G4double[delayed];
182 for(i=0; i<theNeutrons->size(); i++)
190 theDelayed = theFS.
ApplyYourself(0, delayed, theDecayConstants);
191 for(i=0; i<theDelayed->size(); i++)
204 theDecayConstants =
new G4double[delayed];
205 if(Prompt==0&&delayed==0) Prompt=all;
206 theNeutrons = theFS.
ApplyYourself(Prompt, delayed, theDecayConstants);
211 for(i0=0; i0<Prompt; i0++)
217 for(i0=Prompt; i0<Prompt+delayed; i0++)
226 delete [] theDecayConstants;
228 unsigned int nPhotons = 0;
231 nPhotons = thePhotons->size();
232 for(i=0; i<nPhotons; i++)
256 if ( produceFissionFragments )
279 G4ThreeVector direction (sinth*std::cos(phi) , sinth*std::sin(phi), std::cos(theta) );
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void SetNeutron(const G4ReactionProduct &aNeutron)
virtual G4double GetXsec(G4double anEnergy)
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
G4HadSecondary * GetSecondary(size_t i)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void SetKineticEnergy(const G4double en)
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
G4double GetFragmentKinetic()
G4NeutronHPFissionERelease * GetEnergyRelease()
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void SetTarget(const G4ReactionProduct &aTarget)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void SetStatusChange(G4HadFinalStateStatus aS)
void SetTarget(const G4ReactionProduct &aTarget)
G4DynamicParticleVector * ApplyYourself(G4int NNeutrons)
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
G4HadFinalState theResult
G4GLOB_DLL std::ostream G4cout
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack)
const G4ParticleDefinition * GetDefinition() const
G4DynamicParticleVector * ApplyYourself(G4int Prompt, G4int delayed, G4double *decayconst)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
G4double GetKineticEnergy() const
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
G4double GetGlobalTime() const
G4ErrorTarget * theTarget
G4DynamicParticleVector * ApplyYourself(G4int NNeutrons)
G4DynamicParticleVector * GetPhotons()
std::vector< G4DynamicParticle * > G4DynamicParticleVector
void GetAFissionFragment(G4double, G4int &, G4int &, G4int &)
const G4LorentzVector & Get4Momentum() const
static G4IonTable * GetIonTable()
G4double GetKineticEnergy() const
G4double GetPDGMass() const
G4DynamicParticleVector * ApplyYourself(G4int nNeutrons)
void SampleNeutronMult(G4int &all, G4int &Prompt, G4int &delayed, G4double energy, G4int off)
G4ThreeVector GetMomentum() const
G4double GetTemperature() const
void SetLocalEnergyDeposit(G4double aE)
const G4Material * GetMaterial() const
void SetNeutron(const G4ReactionProduct &aNeutron)
G4int GetNumberOfSecondaries() const
void AddSecondary(G4DynamicParticle *aP)
G4DynamicParticleVector * ApplyYourself(G4int NNeutrons)