55 if ( element != NULL ) {
57 std::vector< const G4Isotope*> vIsotope;
61 for (
size_t i = 0 ; i != vIsotope.size() ; i++ ) {
62 G4int iM = vIsotope[i]->Getm();
91 if ( isotope != NULL ) iM = isotope->
Getm();
94 if ( aTarget == NULL ) {
97 message +=
" is unexpectedly called.";
125 default_evaluation =
"ENDF/BVII.1";
140 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
141 it = usedTarget_map.begin() ; it != usedTarget_map.end() ; it ++ )
157 throw G4HadronicException(__FILE__, __LINE__,
"Attempt to use LEND data for particles other than neutrons!!!");
161 G4cout <<
"(Pointwise cross-section at 300 Kelvin.)" <<
G4endl;
166 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
167 it = usedTarget_map.begin() ; it != usedTarget_map.end() ; it ++ )
170 <<
"Wanted " << it->second->GetWantedEvaluation()
171 <<
", Z= " << it->second->GetWantedZ()
172 <<
", A= " << it->second->GetWantedA()
173 <<
"; Actual " << it->second->GetActualEvaluation()
174 <<
", Z= " << it->second->GetActualZ()
175 <<
", A= " << it->second->GetActualA()
176 <<
", " << it->second->GetTarget()
183 for ( ie = 0 ; ie < 130 ; ie++ )
296void G4LENDCrossSection::recreate_used_target_map()
298 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
299 it = usedTarget_map.begin() ; it != usedTarget_map.end() ; it ++ )
303 usedTarget_map.clear();
318 for (
size_t i = 0 ; i < numberOfElements ; ++i )
321 const G4Element* anElement = (*theElementTable)[i];
324 if ( numberOfIsotope > 0 )
327 for (
G4int i_iso = 0 ; i_iso < numberOfIsotope ; i_iso++ )
335 if ( allow_nat ==
true ) aTarget->
AllowNat();
336 if ( allow_any ==
true ) aTarget->
AllowAny();
337 usedTarget_map.insert( std::pair< G4int , G4LENDUsedTarget* > ( lend_manager->
GetNucleusEncoding( iZ , iA , iIsomer ) , aTarget ) );
348 for (
G4int ii = 0 ; ii < numberOfNistIso ; ii++ )
358 if ( allow_nat ==
true ) aTarget->
AllowNat();
359 if ( allow_any ==
true ) aTarget->
AllowAny();
360 usedTarget_map.insert( std::pair< G4int , G4LENDUsedTarget* > ( lend_manager->
GetNucleusEncoding( iZ , iMass , iIsomer ) , aTarget ) );
375 G4double a = ( y2 - y1 ) / ( 1/std::sqrt(x2) - 1/std::sqrt(x1) );
376 G4double b = y1 - a * 1/std::sqrt(x1);
377 G4double result = a * 1/std::sqrt(ke) + b;
383 if ( usedTarget_map.find( nuclear_code ) != usedTarget_map.end() ) {
384 target = usedTarget_map.find( nuclear_code )->second->GetTarget();
394 G4cout <<
"Requested Evaluation, Z , A -> Actual Evaluation, Z , A(0=Nat) " <<
G4endl;
395 for ( std::map< G4int , G4LENDUsedTarget* >::iterator
396 it = usedTarget_map.begin() ; it != usedTarget_map.end() ; it ++ ) {
398 <<
" " << it->second->GetWantedEvaluation()
399 <<
", " << it->second->GetWantedZ()
400 <<
", " << it->second->GetWantedA()
401 <<
" -> " << it->second->GetActualEvaluation()
402 <<
", " << it->second->GetActualZ()
403 <<
", " << 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
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
static G4ElementTable * GetElementTable()
static size_t GetNumberOfElements()
const G4Isotope * GetIsotope(G4int iso) const
size_t GetNumberOfIsotopes() const
G4LENDCrossSection(const G4String name="")
G4GIDI_target * get_target_from_map(G4int nuclear_code)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int, G4int, const G4Isotope *, const G4Element *, const G4Material *)
G4ParticleDefinition * proj
G4double GetUltraLowEnergyExtrapolatedXS(G4double, G4double, G4double, G4double, G4double)
void create_used_target_map()
virtual G4double getLENDCrossSection(G4GIDI_target *, G4double, G4double)
void DumpPhysicsTable(const G4ParticleDefinition &)
void DumpLENDTargetInfo(G4bool force=false)
void BuildPhysicsTable(const G4ParticleDefinition &)
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int, G4int, const G4Element *, const G4Material *)
G4bool RequestChangeOfVerboseLevel(G4int)
G4int GetNucleusEncoding(G4int iZ, G4int iA, G4int iM)
G4NistElementBuilder * GetNistElementBuilder()
static G4LENDManager * GetInstance()
G4double GetTemperature() const
G4int GetNumberOfNistIsotopes(G4int Z) const
G4double GetIsotopeAbundance(G4int Z, G4int N) const
G4int GetNistFirstIsotopeN(G4int Z) const
const G4String & GetParticleName() const
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
G4double GetMaxKinEnergy() const
void SetMaxKinEnergy(G4double value)
void SetMinKinEnergy(G4double value)
G4double GetMinKinEnergy() const
const G4String & GetName() const