46double MyRNG(
void*) {
return G4Random::getTheEngine()->flat(); }
59 default_evaluation =
"ENDF/BVII.1";
71 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
82 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
103 for ( std::size_t i = 0 ; i < numberOfElements ; ++i )
106 const G4Element* anElement = (*theElementTable)[i];
109 if ( numberOfIsotope > 0 )
112 for (
G4int i_iso = 0 ; i_iso < numberOfIsotope ; ++i_iso )
119 if ( allow_nat ==
true ) aTarget->
AllowNat();
120 if ( allow_any ==
true ) aTarget->
AllowAny();
132 for (
G4int ii = 0 ; ii < numberOfNistIso ; ii++ )
142 if ( allow_nat ==
true ) aTarget->
AllowNat();
143 if ( allow_any ==
true ) aTarget->
AllowAny();
198 G4ThreeVector v ( G4RandGauss::shoot() * std::sqrt( kT*mass )
199 , G4RandGauss::shoot() * std::sqrt( kT*mass )
200 , G4RandGauss::shoot() * std::sqrt( kT*mass ) );
213 G4double cmsMom = std::sqrt(the3CMS*the3CMS);
214 G4double sqrts = std::sqrt((totE-cmsMom)*(totE+cmsMom));
218 theNeutron.
Lorentz(theNeutron, theCMS);
219 theTarget.
Lorentz(theTarget, theCMS);
225 tempVector.
setX(std::cos(theta)*std::sin(cms_theta)*std::cos(cms_phi)
226 +std::sin(theta)*std::cos(phi)*std::cos(cms_theta)*std::cos(cms_phi)
227 -std::sin(theta)*std::sin(phi)*std::sin(cms_phi) );
228 tempVector.
setY(std::cos(theta)*std::sin(cms_theta)*std::sin(cms_phi)
229 +std::sin(theta)*std::cos(phi)*std::cos(cms_theta)*std::sin(cms_phi)
230 +std::sin(theta)*std::sin(phi)*std::cos(cms_phi) );
231 tempVector.
setZ(std::cos(theta)*std::cos(cms_theta)
232 -std::sin(theta)*std::cos(phi)*std::sin(cms_theta) );
239 theNeutron.
Lorentz(theNeutron, -1.*theCMS);
240 theTarget.
Lorentz(theTarget, -1.*theCMS);
258 message =
"Produce unchanged final state is requested in ";
260 message +=
". Cross section and model likely have an inconsistency.";
272 target =
usedTarget_map.find( nuclear_code )->second->GetTarget();
282 G4cout <<
"Requested Evaluation, Z , A -> Actual Evaluation, Z , A(0=Nat) " <<
G4endl;
283 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
286 <<
" " << it->second->GetWantedEvaluation()
287 <<
", " << it->second->GetWantedZ()
288 <<
", " << it->second->GetWantedA()
289 <<
" -> " << it->second->GetActualEvaluation()
290 <<
", " << it->second->GetActualZ()
291 <<
", " << it->second->GetActualA()
std::vector< G4Element * > G4ElementTable
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetMomentum(const G4ThreeVector &momentum)
static G4ElementTable * GetElementTable()
static size_t GetNumberOfElements()
const G4Isotope * GetIsotope(G4int iso) const
size_t GetNumberOfIsotopes() const
double getElasticFinalState(double e_in, double temperature, double(*rng)(void *), void *rngState)
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
void SetEnergyChange(G4double anEnergy)
void SetMomentumChange(const G4ThreeVector &aV)
const G4Material * GetMaterial() const
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4LorentzVector & Get4Momentum() const
void SetMinEnergy(G4double anEnergy)
const G4String & GetModelName() const
void SetMaxEnergy(const G4double anEnergy)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
static G4IonTable * GetIonTable()
G4bool RequestChangeOfVerboseLevel(G4int)
G4int GetNucleusEncoding(G4int iZ, G4int iA, G4int iM)
G4NistElementBuilder * GetNistElementBuilder()
static G4LENDManager * GetInstance()
std::map< G4int, G4LENDUsedTarget * > usedTarget_map
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus)
G4LENDManager * lend_manager
void DumpLENDTargetInfo(G4bool force=false)
G4LENDModel(G4String name="LENDModel")
void recreate_used_target_map()
void create_used_target_map()
G4HadFinalState * returnUnchanged(const G4HadProjectile &aTrack, G4HadFinalState *theResult)
G4ParticleDefinition * proj
G4GIDI_target * get_target_from_map(G4int nuclear_code)
G4double GetTemperature() const
G4int GetNumberOfNistIsotopes(G4int Z) const
G4double GetIsotopeAbundance(G4int Z, G4int N) const
G4int GetNistFirstIsotopeN(G4int Z) const
const G4Isotope * GetIsotope()
G4double GetPDGMass() const
const G4String & GetParticleName() const
static G4int GetModelID(const G4int modelIndex)
void SetMomentum(const G4double x, const G4double y, const G4double z)
void SetTotalEnergy(const G4double en)
G4double GetTotalMomentum() const
G4double GetKineticEnergy() const
G4double GetTotalEnergy() const
G4ThreeVector GetMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetKineticEnergy(const G4double en)
void SetMass(const G4double mas)