28 #ifndef G4NeutronHPProduct_h
29 #define G4NeutronHPProduct_h 1
57 if(theDist != 0)
delete theDist;
66 inline void Init(std::istream & aDataFile)
68 aDataFile >> theMassCode>>theMass>>theIsomerFlag>>theDistLaw
69 >> theGroundStateQValue>>theActualStateQValue;
70 theGroundStateQValue*= CLHEP::eV;
71 theActualStateQValue*= CLHEP::eV;
72 theYield.
Init(aDataFile, CLHEP::eV);
78 else if(theDistLaw == 1)
83 else if(theDistLaw == 2)
88 else if(theDistLaw == 3)
93 else if(theDistLaw == 4)
104 else if(theDistLaw == 5)
108 else if(theDistLaw == 6)
113 else if(theDistLaw == 7)
120 throw G4HadronicException(__FILE__, __LINE__,
"distribution law unknown to G4NeutronHPProduct");
124 theDist->
SetQValue(theActualStateQValue);
125 theDist->
Init(aDataFile);
133 return theYield.
GetY(anEnergy);
138 theNeutron = aNeutron;
160 result *= theCurrentMultiplicity;
186 G4int theCurrentMultiplicity;
G4double GetY(G4double x)
G4double G4NeutronHPJENDLHEData::G4double result
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
G4ReactionProduct * GetNeutron()
std::vector< G4ReactionProduct * > G4ReactionProductVector
void Init(std::istream &aDataFile)
G4ReactionProductVector * Sample(G4double anEnergy)
void SetTarget(G4ReactionProduct *aTarget)
G4double MeanEnergyOfThisInteraction()
virtual G4double MeanEnergyOfThisInteraction()=0
G4double GetMeanYield(G4double anEnergy)
G4ReactionProduct * GetTarget()
virtual void Init(std::istream &aDataFile)=0
void SetNeutron(G4ReactionProduct *aNeutron)
void SetQValue(G4double aValue)