87 theIsotope =
static_cast<G4int>(1000*Z+
A);
99 std::istringstream theData(std::ios::in);
103 G4int infoType, dataType;
105 while (theData >> infoType)
112 if(dataType==4) theNeutronAngularDis.
Init(theData);
113 if(dataType==5) thePromptNeutronEnDis.
Init(theData);
114 if(dataType==12) theFinalStatePhotons.
InitMean(theData);
115 if(dataType==14) theFinalStatePhotons.
InitAngular(theData);
116 if(dataType==15) theFinalStatePhotons.
InitEnergies(theData);
119 if(dataType==1) theFinalStateNeutrons.
InitMean(theData);
122 if(dataType==1) theFinalStateNeutrons.
InitDelayed(theData);
123 if(dataType==5) theDelayedNeutronEnDis.
Init(theData);
126 if(dataType==1) theFinalStateNeutrons.
InitPrompt(theData);
129 if(dataType==1) theEnergyRelease.
Init(theData);
132 G4cout <<
"G4FissionLibrary::Init: unknown data type"<<dataType<<
G4endl;
133 throw G4HadronicException(__FILE__, __LINE__,
"G4FissionLibrary::Init: unknown data type");
163 theNeutronAngularDis.
SetTarget(theTarget);
166 theNeutron.
Lorentz(theNeutron, -1*theTarget);
174 G4int nPrompt=0, gPrompt=0;
175 SampleMult(theTrack, &nPrompt, &gPrompt, eKinetic);
179 for(
G4int i=0; i<nPrompt; i++)
195 for(
G4int i=0; i<gPrompt; i++)
205 thePhoton->
Lorentz(*thePhoton, -1.*theTarget);
232 promptNeutronMulti = theFinalStateNeutrons.
GetPrompt(eKinetic);
234 delayedNeutronMulti = theFinalStateNeutrons.
GetDelayed(eKinetic);
238 if(delayedNeutronMulti==0&&promptNeutronMulti==0) {
242 if (fe != 0)
delete fe;
243 fe =
new G4fissionEvent(theIsotope, time, totalNeutronMulti, eKinetic);
246 if (fe != 0)
delete fe;
247 fe =
new G4fissionEvent(theIsotope, time, promptNeutronMulti, eKinetic);
250 if (*nPrompt == -1) *nPrompt = 0;
252 if (*gPrompt == -1) *gPrompt = 0;
double A(double temperature)
G4GLOB_DLL std::ostream G4cout
void Put(const value_type &val) const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetMomentum(const G4ThreeVector &momentum)
G4double GetTotalMomentum() const
void SetKineticEnergy(G4double aEnergy)
G4ParticleHPFinalState * New()
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &, G4ParticleDefinition *)
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
void SetLocalEnergyDeposit(G4double aE)
const G4Material * GetMaterial() const
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
G4double GetGlobalTime() const
G4double GetTemperature() const
static G4Neutron * Neutron()
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
G4double GetPDGMass() const
void SetTarget(const G4ReactionProduct &aTarget)
void SetProjectileRP(const G4ReactionProduct &anIncidentParticleRP)
void Init(std::istream &aDataFile)
void Init(std::istream &theData)
G4Cache< G4HadFinalState * > theResult
G4ParticleHPNames theNames
void Init(std::istream &aDataFile)
G4double GetFragmentKinetic()
static G4ParticleHPManager * GetInstance()
void GetDataStream(G4String, std::istringstream &iss)
G4ParticleHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
G4double GetMean(G4double anEnergy)
void InitMean(std::istream &aDataFile)
void InitDelayed(std::istream &aDataFile)
G4double GetPrompt(G4double anEnergy)
void InitPrompt(std::istream &aDataFile)
G4double GetDelayed(G4double anEnergy)
void InitEnergies(std::istream &aDataFile)
void InitAngular(std::istream &aDataFile)
G4bool InitMean(std::istream &aDataFile)
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4double GetTotalMomentum() const
G4double GetKineticEnergy() const
const G4ParticleDefinition * GetDefinition() const
G4ThreeVector GetMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetKineticEnergy(const G4double en)
G4double getPhotonDircosu(G4int index)
G4double getNeutronEnergy(G4int index)
G4double getPhotonEnergy(G4int index)
G4double getNeutronDircosv(G4int index)
G4double getPhotonDircosw(G4int index)
G4double getNeutronDircosw(G4int index)
G4double getNeutronDircosu(G4int index)
G4double getPhotonDircosv(G4int index)