54 YieldType_(WhichYield)
67 Verbosity_(Verbosity),
68 YieldType_(WhichYield)
80 Verbosity_(Verbosity),
81 YieldType_(WhichYield)
90 std::istringstream dataStream(std::ios::in);
109 }
catch (std::exception e)
146 return NumberOfElements;
155 if(WhichYield >= 0 && WhichYield < YieldContainerTable_->G4GetNumberOfElements())
180 if(!dataStream.good())
185 "Fission product data not available");
189 throw std::exception();
410 G4int currentEnergy = 0;
423 std::vector< G4double > projectileEnergies;
424 std::map< const G4int, std::pair< std::vector< G4double >, std::vector< G4double > > > intermediateData;
425 std::map< const G4int, std::pair< std::vector< G4double >, std::vector< G4double > > >::iterator dataIterator;
427 while(dataStream.good())
429 dataStream >> MT >> MF >> dummy >> blockCount;
433 for(
G4int b = 0; b < blockCount; ++b)
435 dataStream >> incidentEnergy >> itemCount >> interpolation;
436 maxSize = maxSize >= itemCount ? maxSize : itemCount;
441 projectileEnergies.push_back(incidentEnergy);
442 currentEnergy = projectileEnergies.size() - 1;
449 for(
G4int i = 0; i < itemCount; ++i)
451 dataStream >> isotope >> metastate >> yield;
455 identifier = isotope * 10 + metastate;
457 dataIterator = intermediateData.insert(std::make_pair(
460 std::vector< G4double >(projectileEnergies.size(), 0.0),
461 std::vector< G4double >(projectileEnergies.size(), 0.0)))).first;
463 if(dataIterator->second.first.size() < projectileEnergies.size())
465 dataIterator->second.first.resize(projectileEnergies.size());
466 dataIterator->second.second.resize(projectileEnergies.size());
469 dataIterator->second.first[currentEnergy] = yield;
470 dataIterator->second.second[currentEnergy] =
error;
495 for(dataIterator = intermediateData.begin(); dataIterator != intermediateData.end(); ++dataIterator)
497 identifier = dataIterator->first;
498 metastate = identifier % 10;
513 "Unsupported metastable state supplied in fission yield data. Defaulting to the ground state");
519 NewProduct = (identifier - metastate) / 10;
523 if(energyGroup < (
signed)dataIterator->second.first.size())
525 yield = dataIterator->second.first[energyGroup];
526 error = dataIterator->second.second[energyGroup];
533 NewYield[energyGroup] = yield;
534 NewError[energyGroup] =
error;
T * G4GetNewContainer(void)
Create a new blank container.
G4ENDFYieldDataContainer * G4GetYield(G4int WhichYield)
Returns the data for the requested fission product.
MetaState
ENDF format provides for 3 isomers - 1 ground state and 2 meta states.
void ReadInData(std::istringstream &dataStream)
Read in the data from an ENDF data tape.
void Initialize(G4String dataFile)
Initialize is a common function called by all constructors.
static G4NeutronHPManager * GetInstance()
void GetDataStream(G4String, std::istringstream &iss)
G4int Verbosity_
Verbosity level.
G4long G4GetNumberOfElements(void)
Get the number of elements in the table.
YieldType
The two types of fission data available.
#define G4FFG_DATA_FUNCTIONENTER__
FissionCause
Causes of fission.
~G4ENDFTapeRead(void)
Default Deconstructor.
Verbosity
These are the verbosity levels.
G4double * EnergyGroupValues_
Array containing the values of the extracted energy groups.
#define G4FFG_DATA_FUNCTIONLEAVE__
G4ENDFTapeRead(G4String FileLocation, G4String FileName, G4FFGEnumerations::YieldType WhichYield, G4FFGEnumerations::FissionCause WhichCause)
Default constructor.
G4FFGDefaultValues is a one-stop shop for storing the default values to variables that configure how ...
G4int EnergyGroups_
Stores the number corresponding to the fission cause that will be extracted.
void SetProduct(G4int Product)
Set the product.
T * G4GetContainer(unsigned int WhichContainer)
Retrieve a container from the table.
G4ENDFYieldDataContainer is a simple data storage class that handles the memory management internally...
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4int G4GetNumberOfEnergyGroups(void)
Returns the number of energy yield groups that were extracted from the ENDF tape file.
void SetYieldProbability(G4double *YieldProbability)
Set the yield probability.
void SetMetaState(G4FFGEnumerations::MetaState MetaState)
Set the meta state.
void G4SetVerbosity(G4int WhatVerbosity)
Sets the verbosity levels.
#define G4FFG_FUNCTIONLEAVE__
static PROLOG_HANDLER error
G4int G4GetNumberOfFissionProducts(void)
Returns the number of fission products that were extracted from the ENDF tape file.
void SetYieldError(G4double *YieldError)
Set the yield error.
G4TableTemplate< G4ENDFYieldDataContainer > * YieldContainerTable_
Storage for the extracted data.
const G4FFGEnumerations::YieldType YieldType_
Stores the number corresponding to the yield type that will be extracted.
#define G4FFG_FUNCTIONENTER__
G4double * G4GetEnergyGroupValues(void)
Returns and array containing the values of each of the energy groups.