47 if ( !dbool || ( Z < 2.5 && ( std::abs(
theBaseZ-Z)>0.0001 || std::abs(
theBaseA-A)>0.0001) ) )
55 std::istringstream theData(std::ios::in);
71 while ( theData.good() )
77 theData >> iMT >> iMF >> dummy;
82 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
new std::map< G4double , std::map< G4int , G4double >* >;
84 std::map< G4double , G4int >* mInterporation =
new std::map< G4double , G4int >;
85 for (
G4int i = 0 ; i <= imax ; i++ )
98 mInterporation->insert( std::pair<G4double,G4int>(Ei*
eV,ip) );
100 std::map<G4int,G4double>* mFSPYieldData =
new std::map<G4int,G4double>;
106 theData >> FSP >> mFSP >> Y;
107 G4int k = FSP*100+mFSP;
110 mFSPYieldData->insert( std::pair<G4int,G4double>( k , YY ) );
112 mEnergyFSPData->insert( std::pair<
G4double,std::map<G4int,G4double>*>(Ei*eV,mFSPYieldData) );
115 FissionProductYieldData.insert( std::pair<
G4int , std::map<
G4double , std::map< G4int , G4double >* >* > (iMT,mEnergyFSPData));
116 mMTInterpolation.insert( std::pair<
G4int,std::map<G4double,G4int>*> (iMT,mInterporation) );
136 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData = FissionProductYieldData.find( 454 )->second;
142 if ( mEnergyFSPData->size() == 1 )
144 key_energy = mEnergyFSPData->begin()->first;
151 for ( std::map<
G4double , std::map< G4int , G4double >* >::iterator it = mEnergyFSPData->begin() ;
152 it != mEnergyFSPData->end() ; it++ )
155 G4double d = std::fabs ( energy - e );
165 std::map<G4int,G4double>* mFSPYieldData = (*mEnergyFSPData)[key_energy];
168 G4double ceilling = mFSPYieldData->rbegin()->second;
169 for ( std::map<G4int,G4double>::iterator it = mFSPYieldData->begin() ; it != mFSPYieldData->end() ; it++ )
172 if ( rand <= it->
second/ceilling )
180 fragZ = ifrag/100000;
181 fragA = (ifrag%100000)/100;
G4NeutronHPNames theNames
static G4NeutronHPManager * GetInstance()
G4DynamicParticleVector * ApplyYourself(G4int Prompt)
G4DynamicParticleVector * ApplyYourself(G4int nNeutrons)
void GetDataStream(G4String, std::istringstream &iss)
G4NeutronHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)
double precision function energy(A, Z)
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
std::vector< G4DynamicParticle * > G4DynamicParticleVector
void GetAFissionFragment(G4double, G4int &, G4int &, G4int &)