69 if( getenv(
"G4LENDDATA") == NULL ) {
70 throw G4HadronicException(__FILE__, __LINE__,
" Please setenv G4LENDDATA to point to the LEND files." );
72 xmcf = getenv(
"G4LENDDATA");
74 xmcf +=
"/neutrons.map";
75 xmcf_gamma = getenv(
"G4LENDDATA");
76 xmcf_gamma +=
"/gammas.map";
77 xmcf_p = getenv(
"G4LENDDATA");
78 xmcf_p +=
"/protons.map";
79 xmcf_d = getenv(
"G4LENDDATA");
80 xmcf_d +=
"/deuterons.map";
81 xmcf_t = getenv(
"G4LENDDATA");
82 xmcf_t +=
"/tritons.map";
83 xmcf_he3 = getenv(
"G4LENDDATA");
84 xmcf_he3 +=
"/He3s.map";
85 xmcf_a = getenv(
"G4LENDDATA");
86 xmcf_a +=
"/alphas.map";
100 aFile.open( xmcf_p.c_str() );
101 if ( aFile.good() ) {
107 aFile.open( xmcf_d.c_str() );
108 if ( aFile.good() ) {
114 aFile.open( xmcf_t.c_str() );
115 if ( aFile.good() ) {
121 aFile.open( xmcf_he3.c_str() );
122 if ( aFile.good() ) {
128 aFile.open( xmcf_a.c_str() );
129 if ( aFile.good() ) {
149 pdgCode= 10000 * 27 + 10 * 58 + 1;
152 pdgCode= 10000 * 47 + 10 * 110 + 1;
155 pdgCode= 10000 * 48 + 10 * 115 + 1;
158 pdgCode= 10000 * 52 + 10 * 127 + 1;
161 pdgCode= 10000 * 52 + 10 * 129 + 1;
164 pdgCode= 10000 * 61 + 10 * 148 + 1;
167 pdgCode= 10000 * 67 + 10 * 166 + 1;
170 pdgCode= 10000 * 95 + 10 * 242 + 1;
173 pdgCode= 10000 * 95 + 10 * 244 + 1;
176 pdgCode= 10000 * 99 + 10 * 254 + 1;
188 for ( std::vector < lend_target >::iterator
191 (*it).lend->freeTarget( it->target );
195 for ( std::map < G4ParticleDefinition* , G4GIDI* >::iterator
214 throw G4HadronicException(__FILE__, __LINE__,
"Requested isomer level of target is too high." );
220 for ( std::vector < lend_target >::iterator
223 if ( it->proj == proj && it->target_code == iTarg && it->evaluation == evaluation )
243 <<
" with Isomer level of " << iM <<
" is exist in this LEND." <<
G4endl;
246 anLENDTarget = xlend->
readTarget( evaluation , iZ , iA , iM );
249 new_target.
lend = xlend;
250 new_target.
target = anLENDTarget;
269 <<
" with Isomer level of " << iM <<
" is not exist in this LEND." <<
G4endl;
272 if ( available->size() > 0 ) {
276 G4cout <<
" However you can use following evaluation(s) for the target. " <<
G4endl;
278 std::vector< std::string >::iterator its;
279 for ( its = available->begin() ; its != available->end() ; its++ )
290 G4cout <<
" However you can use natural abundance data for the target. " <<
G4endl;
296 if ( available_nat->size() > 0 ) {
299 G4cout <<
" However you can use following evaluation(s) for natural abundace of the target. " <<
G4endl;
301 std::vector< std::string >::iterator its;
302 for ( its = available_nat->begin() ; its != available_nat->end() ; its++ )
307 delete available_nat;
321 std::vector< G4String > vEvaluation;
331 if ( available->size() > 0 ) {
332 std::vector< std::string >::iterator its;
333 for ( its = available->begin() ; its != available->end() ; its++ )
334 vEvaluation.push_back ( *its );
356 G4cout <<
" Copyright (c) 2010, Lawrence Livermore National Security, LLC. " <<
G4endl;
357 G4cout <<
" Produced at the Lawrence Livermore National Laboratory " <<
G4endl;
358 G4cout <<
" Written by Bret R. Beck, beck6@llnl.gov. " <<
G4endl;
362 G4cout <<
" This file is part of GIDI. For details, see nuclear.llnl.gov. " <<
G4endl;
363 G4cout <<
" Please also read the \"Additional BSD Notice\" at nuclear.llnl.gov. " <<
G4endl;
365 G4cout <<
" Redistribution and use in source and binary forms, with or without modification, " <<
G4endl;
366 G4cout <<
" are permitted provided that the following conditions are met: " <<
G4endl;
368 G4cout <<
" 1) Redistributions of source code must retain the above copyright notice, " <<
G4endl;
369 G4cout <<
" this list of conditions and the disclaimer below. " <<
G4endl;
370 G4cout <<
" 2) Redistributions in binary form must reproduce the above copyright notice, " <<
G4endl;
371 G4cout <<
" this list of conditions and the disclaimer (as noted below) in the " <<
G4endl;
372 G4cout <<
" documentation and/or other materials provided with the distribution. " <<
G4endl;
373 G4cout <<
" 3) Neither the name of the LLNS/LLNL nor the names of its contributors may be " <<
G4endl;
374 G4cout <<
" used to endorse or promote products derived from this software without " <<
G4endl;
375 G4cout <<
" specific prior written permission. " <<
G4endl;
377 G4cout <<
" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY " <<
G4endl;
378 G4cout <<
" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES " <<
G4endl;
379 G4cout <<
" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT " <<
G4endl;
380 G4cout <<
" SHALL LAWRENCE LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR " <<
G4endl;
381 G4cout <<
" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR " <<
G4endl;
382 G4cout <<
" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS " <<
G4endl;
383 G4cout <<
" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED " <<
G4endl;
384 G4cout <<
" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT " <<
G4endl;
385 G4cout <<
" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, " <<
G4endl;
386 G4cout <<
" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. " <<
G4endl;
401 G4cout <<
"Since other LEND model or cross section have set the higher verbose level (" <<
verboseLevel <<
") in LENDManager, you cannot change the value now." <<
G4endl;
416 G4cout <<
"G4LENDManager::GetExcitationEnergyOfExcitedIsomer is called for ground state (iM=0) nucleus" <<
G4endl;
418 G4cout <<
"Can not find excitation energy for Z = " << iZ <<
", A = " << iA <<
", M = " << iM <<
" and the energy set to 0." <<
G4endl;
std::map< G4int, G4double > mExcitationEnergy
static G4ParticleTable * GetParticleTable()
G4double GetExcitationEnergyOfExcitedIsomer(G4int, G4int, G4int)
const G4String & GetParticleName() const
G4NistElementBuilder * nistElementBuilder
G4IonTable * GetIonTable() const
bool isThisDataAvailable(std::string &lib_name, int iZ, int iA, int iM=0)
static G4LENDManager * lend_manager
static constexpr double second
static G4Proton * Proton()
G4bool RequestChangeOfVerboseLevel(G4int)
std::map< G4ParticleDefinition *, G4GIDI * > proj_lend_map
static G4Deuteron * Deuteron()
G4int GetNucleusEncoding(G4int iZ, G4int iA, G4int iM)
std::vector< std::string > * getNamesOfAvailableLibraries(int iZ, int iA, int iM=0)
G4ParticleDefinition * proj
const XML_Char int const XML_Char * value
std::vector< G4String > IsLENDTargetAvailable(G4ParticleDefinition *, G4int iZ, G4int iA, G4int iM=0)
static constexpr double eV
G4double G4ParticleHPJENDLHEData::G4double result
std::vector< lend_target > v_lend_target
static G4Triton * Triton()
static G4Neutron * Neutron()
G4GLOB_DLL std::ostream G4cout
G4GIDI_target * readTarget(std::string &lib_name, int iZ, int iA, int iM=0, bool bind=true)
G4GIDI_target * GetLENDTarget(G4ParticleDefinition *, G4String, G4int iZ, G4int iA, G4int iM=0)
const G4String & GetIonName(G4int Z, G4int A, G4int lvl=0) const
static G4int GetNucleusEncoding(G4int Z, G4int A, G4double E=0.0, G4int lvl=0)