38 std::map<G4int,std::map<G4double,std::map<G4int,G4double >* >* >::iterator it =
FissionProductYieldData.begin();
40 std::map<G4double,std::map<G4int,G4double>* >* firstLevel = it->second;
42 std::map<G4double,std::map<G4int,G4double>*>::iterator it2 = firstLevel->begin();
43 while ( it2 != firstLevel->end() ) {
46 firstLevel->erase(it2);
47 it2=firstLevel->begin();
56 std::map< G4int , std::map< G4double , G4int >* >::iterator ii =
mMTInterpolation.begin();
77 if ( !dbool || ( Z < 2.5 && ( std::abs(
theBaseZ-Z)>0.0001 || std::abs(
theBaseA-A)>0.0001) ) )
101 while ( theData.good() )
107 theData >> iMT >> iMF >> dummy;
112 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
new std::map< G4double , std::map< G4int , G4double >* >;
114 std::map< G4double , G4int >* mInterporation =
new std::map< G4double , G4int >;
128 mInterporation->insert( std::pair<G4double,G4int>(Ei*
eV,ip) );
130 std::map<G4int,G4double>* mFSPYieldData =
new std::map<G4int,G4double>;
136 theData >> FSP >> mFSP >>
Y;
137 G4int k = FSP*100+mFSP;
140 mFSPYieldData->insert( std::pair<G4int,G4double>( k , YY ) );
142 mEnergyFSPData->insert( std::pair<
G4double,std::map<G4int,G4double>*>(Ei*eV,mFSPYieldData) );
166 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
FissionProductYieldData.find( 454 )->second;
172 if ( mEnergyFSPData->size() == 1 )
174 key_energy = mEnergyFSPData->begin()->first;
181 for ( std::map<
G4double , std::map< G4int , G4double >* >::iterator it = mEnergyFSPData->begin() ;
182 it != mEnergyFSPData->end() ; it++ )
195 std::map<G4int,G4double>* mFSPYieldData = (*mEnergyFSPData)[key_energy];
198 G4double ceilling = mFSPYieldData->rbegin()->second;
199 for ( std::map<G4int,G4double>::iterator it = mFSPYieldData->begin() ; it != mFSPYieldData->end() ; it++ )
202 if ( rand <= it->
second/ceilling )
210 fragZ = ifrag/100000;
211 fragA = (ifrag%100000)/100;
static G4ParticleHPManager * GetInstance()
std::map< G4int, std::map< G4double, std::map< G4int, G4double > * > * > FissionProductYieldData
void GetAFissionFragment(G4double, G4int &, G4int &, G4int &)
G4DynamicParticleVector * ApplyYourself(G4int Prompt)
std::map< G4int, std::map< G4double, G4int > * > mMTInterpolation
G4DynamicParticleVector * ApplyYourself(G4int nNeutrons)
std::vector< G4DynamicParticle * > G4DynamicParticleVector
static constexpr double second
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType, G4ParticleDefinition *)
void GetDataStream(G4String, std::istringstream &iss)
G4ParticleHPNames theNames
double A(double temperature)
static constexpr double eV
G4ParticleHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
~G4ParticleHPFFFissionFS()