00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef G4NeutronHPFSFissionFS_h
00030 #define G4NeutronHPFSFissionFS_h 1
00031
00032 #include "globals.hh"
00033 #include "G4HadProjectile.hh"
00034 #include "G4DynamicParticleVector.hh"
00035 #include "G4NeutronHPFinalState.hh"
00036 #include "G4NeutronHPNames.hh"
00037 #include "G4NeutronHPNeutronYield.hh"
00038 #include "G4NeutronHPVector.hh"
00039 #include "G4NeutronHPFissionERelease.hh"
00040 #include "G4NeutronHPEnergyDistribution.hh"
00041 #include "G4NeutronHPPhotonDist.hh"
00042 #include "G4NeutronHPAngular.hh"
00043
00044 class G4NeutronHPFSFissionFS : public G4NeutronHPFinalState
00045 {
00046 public:
00047
00048 G4NeutronHPFSFissionFS(){ hasXsec = true; }
00049 ~G4NeutronHPFSFissionFS(){}
00050
00051 void Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String & aFSType);
00052
00053 G4DynamicParticleVector * ApplyYourself(G4int Prompt, G4int delayed, G4double *decayconst);
00054
00055 G4NeutronHPFinalState * New()
00056 {
00057 G4NeutronHPFSFissionFS * theNew = new G4NeutronHPFSFissionFS;
00058 return theNew;
00059 }
00060
00061 inline G4double GetMass(){ return targetMass; }
00062
00063 void SampleNeutronMult(G4int&all,
00064 G4int&Prompt,
00065 G4int&delayed,
00066 G4double energy,
00067 G4int off);
00068
00069 inline void SetNeutron(const G4ReactionProduct & aNeutron)
00070 {
00071 theNeutron = aNeutron;
00072 theNeutronAngularDis.SetNeutron(aNeutron);
00073 }
00074
00075 inline void SetTarget(const G4ReactionProduct & aTarget)
00076 {
00077 theTarget = aTarget;
00078 theNeutronAngularDis.SetTarget(aTarget);
00079 }
00080
00081 G4DynamicParticleVector * GetPhotons();
00082
00083 inline G4NeutronHPFissionERelease * GetEnergyRelease()
00084 {
00085 return &theEnergyRelease;
00086 }
00087
00088 private:
00089
00090 G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return 0; }
00091 G4double targetMass;
00092
00093 G4NeutronHPNeutronYield theFinalStateNeutrons;
00094 G4NeutronHPEnergyDistribution thePromptNeutronEnDis;
00095 G4NeutronHPEnergyDistribution theDelayedNeutronEnDis;
00096 G4NeutronHPAngular theNeutronAngularDis;
00097
00098 G4NeutronHPPhotonDist theFinalStatePhotons;
00099 G4NeutronHPFissionERelease theEnergyRelease;
00100
00101 G4ReactionProduct theNeutron;
00102 G4ReactionProduct theTarget;
00103
00104 private:
00105
00106 G4NeutronHPNames theNames;
00107
00108 };
00109 #endif