88 theIsotope =
static_cast<G4int>(1000*Z+
A);
100 std::istringstream theData(std::ios::in);
104 G4int infoType, dataType;
106 while (theData >> infoType)
113 if(dataType==4) theNeutronAngularDis.
Init(theData);
114 if(dataType==5) thePromptNeutronEnDis.
Init(theData);
115 if(dataType==12) theFinalStatePhotons.
InitMean(theData);
116 if(dataType==14) theFinalStatePhotons.
InitAngular(theData);
117 if(dataType==15) theFinalStatePhotons.
InitEnergies(theData);
120 if(dataType==1) theFinalStateNeutrons.
InitMean(theData);
123 if(dataType==1) theFinalStateNeutrons.
InitDelayed(theData);
124 if(dataType==5) theDelayedNeutronEnDis.
Init(theData);
127 if(dataType==1) theFinalStateNeutrons.
InitPrompt(theData);
130 if(dataType==1) theEnergyRelease.
Init(theData);
133 G4cout <<
"G4FissionLibrary::Init: unknown data type"<<dataType<<
G4endl;
134 throw G4HadronicException(__FILE__, __LINE__,
"G4FissionLibrary::Init: unknown data type");
153 theNeutron.SetKineticEnergy(eKinetic);
164 theNeutronAngularDis.
SetTarget(theTarget);
167 theNeutron.Lorentz(theNeutron, -1*theTarget);
169 eKinetic = theNeutron.GetKineticEnergy();
175 G4int nPrompt=0, gPrompt=0;
176 SampleMult(theTrack, &nPrompt, &gPrompt, eKinetic);
180 for(
G4int i=0; i<nPrompt; i++)
196 for(
G4int i=0; i<gPrompt; i++)
206 thePhoton->
Lorentz(*thePhoton, -1.*theTarget);
233 promptNeutronMulti = theFinalStateNeutrons.
GetPrompt(eKinetic);
235 delayedNeutronMulti = theFinalStateNeutrons.
GetDelayed(eKinetic);
239 if(delayedNeutronMulti==0&&promptNeutronMulti==0) {
243 if (fe != 0)
delete fe;
244 fe =
new G4fissionEvent(theIsotope, time, totalNeutronMulti, eKinetic);
247 if (fe != 0)
delete fe;
248 fe =
new G4fissionEvent(theIsotope, time, promptNeutronMulti, eKinetic);
251 if (*nPrompt == -1) *nPrompt = 0;
253 if (*gPrompt == -1) *gPrompt = 0;
static G4ParticleHPManager * GetInstance()
G4Cache< G4HadFinalState * > theResult
void SetMomentum(const G4ThreeVector &momentum)
G4double GetTotalMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetKineticEnergy(const G4double en)
void SetMomentum(const G4double x, const G4double y, const G4double z)
void GetDataStream(G4String, std::istringstream &iss)
static constexpr double second
G4double getPhotonEnergy(G4int index)
void Init(std::istream &theData)
G4double GetPrompt(G4double anEnergy)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetProjectileRP(const G4ReactionProduct &anIncidentParticleRP)
G4double getNeutronEnergy(G4int index)
G4double GetTotalMomentum() const
void SetStatusChange(G4HadFinalStateStatus aS)
void SetTarget(const G4ReactionProduct &aTarget)
const G4ParticleDefinition * GetDefinition() const
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
const G4ParticleDefinition * GetDefinition() const
G4bool InitMean(std::istream &aDataFile)
G4double getNeutronDircosu(G4int index)
G4ParticleHPNames theNames
G4double GetKineticEnergy() const
void InitDelayed(std::istream &aDataFile)
G4double GetGlobalTime() const
G4double GetFragmentKinetic()
G4ErrorTarget * theTarget
static G4Neutron * Neutron()
const G4LorentzVector & Get4Momentum() const
void SetKineticEnergy(G4double aEnergy)
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack)
G4double GetPDGMass() const
G4double getNeutronDircosv(G4int index)
G4double getPhotonDircosv(G4int index)
G4ThreeVector GetMomentum() const
void Init(std::istream &aDataFile)
void InitMean(std::istream &aDataFile)
G4double GetTemperature() const
void SetLocalEnergyDeposit(G4double aE)
G4ParticleHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
G4double getPhotonDircosu(G4int index)
static constexpr double MeV
const G4Material * GetMaterial() const
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
void InitEnergies(std::istream &aDataFile)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void Init(std::istream &aDataFile)
void InitAngular(std::istream &aDataFile)
G4double GetDelayed(G4double anEnergy)
void Put(const value_type &val) const
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &, G4ParticleDefinition *)
G4double GetMean(G4double anEnergy)
G4double getNeutronDircosw(G4int index)
G4double getPhotonDircosw(G4int index)
G4ParticleHPFinalState * New()
void InitPrompt(std::istream &aDataFile)