86 theIsotope =
static_cast<G4int>(1000*Z+A);
97 std::ifstream theData(filename, std::ios::in);
100 G4int infoType, dataType;
102 while (theData >> infoType)
109 if(dataType==4) theNeutronAngularDis.
Init(theData);
110 if(dataType==5) thePromptNeutronEnDis.
Init(theData);
111 if(dataType==12) theFinalStatePhotons.
InitMean(theData);
112 if(dataType==14) theFinalStatePhotons.
InitAngular(theData);
113 if(dataType==15) theFinalStatePhotons.
InitEnergies(theData);
116 if(dataType==1) theFinalStateNeutrons.
InitMean(theData);
119 if(dataType==1) theFinalStateNeutrons.
InitDelayed(theData);
120 if(dataType==5) theDelayedNeutronEnDis.
Init(theData);
123 if(dataType==1) theFinalStateNeutrons.
InitPrompt(theData);
126 if(dataType==1) theEnergyRelease.
Init(theData);
129 G4cout <<
"G4FissionLibrary::Init: unknown data type"<<dataType<<
G4endl;
130 throw G4HadronicException(__FILE__, __LINE__,
"G4FissionLibrary::Init: unknown data type");
157 theNeutronAngularDis.
SetTarget(theTarget);
160 theNeutron.
Lorentz(theNeutron, -1*theTarget);
168 G4int nPrompt=0, gPrompt=0;
169 SampleMult(theTrack, &nPrompt, &gPrompt, eKinetic);
173 for(
G4int i=0; i<nPrompt; i++)
189 for(
G4int i=0; i<gPrompt; i++)
199 thePhoton->
Lorentz(*thePhoton, -1.*theTarget);
226 promptNeutronMulti = theFinalStateNeutrons.
GetPrompt(eKinetic);
228 delayedNeutronMulti = theFinalStateNeutrons.
GetDelayed(eKinetic);
231 if(delayedNeutronMulti==0&&promptNeutronMulti==0) {
236 genfissevt_(&theIsotope, &time, &totalNeutronMulti, &eKinetic);
239 genfissevt_(&theIsotope, &time, &promptNeutronMulti, &eKinetic);
242 if (*nPrompt == -1) *nPrompt = 0;
244 if (*gPrompt == -1) *gPrompt = 0;
G4double getndircosu_(G4int *index)
G4double getpdircosw_(G4int *index)
G4double getndircosw_(G4int *index)
G4double getpdircosu_(G4int *index)
G4double getneng_(G4int *index)
void genfissevt_(G4int *isotope, G4double *time, G4double *nubar, G4double *eng)
G4double getpeng_(G4int *index)
G4double getndircosv_(G4int *index)
G4double getpdircosv_(G4int *index)
G4DLLIMPORT std::ostream G4cout
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetMomentum(const G4ThreeVector &momentum)
G4double GetTotalMomentum() const
void SetKineticEnergy(G4double aEnergy)
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack)
G4NeutronHPFinalState * New()
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &)
void SetStatusChange(G4HadFinalStateStatus aS)
void AddSecondary(G4DynamicParticle *aP)
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
void SetNeutron(const G4ReactionProduct &aNeutron)
void Init(std::ifstream &aDataFile)
void SetTarget(const G4ReactionProduct &aTarget)
void Init(std::ifstream &theData)
G4HadFinalState theResult
G4NeutronHPNames theNames
G4double GetFragmentKinetic()
void Init(std::ifstream &aDataFile)
G4NeutronHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
void InitMean(std::ifstream &aDataFile)
G4double GetMean(G4double anEnergy)
G4double GetDelayed(G4double anEnergy)
void InitDelayed(std::ifstream &aDataFile)
void InitPrompt(std::ifstream &aDataFile)
G4double GetPrompt(G4double anEnergy)
G4bool InitMean(std::ifstream &aDataFile)
void InitEnergies(std::ifstream &aDataFile)
void InitAngular(std::ifstream &aDataFile)
static G4Neutron * Neutron()
G4ReactionProduct GetBiasedThermalNucleus(G4double aMass, G4ThreeVector aVelocity, G4double temp=-1) const
G4double GetPDGMass() const
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4double GetTotalMomentum() const
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetKineticEnergy(const G4double en)
G4ParticleDefinition * GetDefinition() const
void SetDefinition(G4ParticleDefinition *aParticleDefinition)