29 #ifndef G4ParticleHPProduct_h
30 #define G4ParticleHPProduct_h 1
59 toBeCached() : theProjectileRP(NULL),theTarget(NULL),theCurrentMultiplicity(-1) {};
69 char * method = getenv(
"G4PHP_MULTIPLICITY_METHOD" );
71 if(
G4String(method) ==
"Poisson" ) {
73 }
else if(
G4String(method) ==
"BetweenInts" ) {
97 if( getenv(
"G4PHPTEST") )
G4cout <<
" G4ParticleHPProduct :: Init MassCode " <<
theMassCode <<
" " <<
theMass <<
" theActualStateQValue " << theActualStateQValue <<
G4endl;
98 if( getenv(
"G4PHPTEST") )
G4cout <<
" G4ParticleHPProduct :: Init theActualStateQValue " << theActualStateQValue <<
G4endl;
150 throw G4HadronicException(__FILE__, __LINE__,
"distribution law unknown to G4ParticleHPProduct");
169 fCache.Get().theProjectileRP = aIncidentPart;
174 fCache.Get().theTarget = aTarget;
191 result *=
fCache.Get().theCurrentMultiplicity;
void Init(std::istream &aDataFile, G4ParticleDefinition *projectile)
G4ReactionProduct * theProjectileRP
virtual void Init(std::istream &aDataFile)=0
G4ReactionProduct * GetTarget()
G4VParticleHPEnergyAngular * theDist
G4HPMultiMethod theMultiplicityMethod
void SetProjectileRP(G4ReactionProduct *aIncidentPart)
G4double MeanEnergyOfThisInteraction()
std::vector< G4ReactionProduct * > G4ReactionProductVector
G4ReactionProduct * theTarget
G4double theActualStateQValue
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
G4GLOB_DLL std::ostream G4cout
G4ParticleHPVector theYield
G4int theCurrentMultiplicity
static constexpr double eV
G4double GetY(G4double x)
G4int GetMultiplicity(G4double anEnergy)
virtual G4double MeanEnergyOfThisInteraction()=0
G4ReactionProductVector * Sample(G4double anEnergy, G4int nParticles)
G4ReactionProduct * GetProjectileRP()
void SetQValue(G4double aValue)
G4Cache< toBeCached > fCache
G4double theGroundStateQValue
void SetTarget(G4ReactionProduct *aTarget)
G4double GetMeanYield(G4double anEnergy)