46 if ( !dbool || ( Z < 2.5 && ( std::abs(
theBaseZ-Z)>0.0001 || std::abs(
theBaseA-A)>0.0001) ) )
53 std::ifstream theData(filename, std::ios::in);
68 while ( theData.good() )
74 theData >> iMT >> iMF >> dummy;
79 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
new std::map< G4double , std::map< G4int , G4double >* >;
81 std::map< G4double , G4int >* mInterporation =
new std::map< G4double , G4int >;
82 for (
G4int i = 0 ; i <= imax ; i++ )
95 mInterporation->insert( std::pair<G4double,G4int>(Ei*eV,ip) );
97 std::map<G4int,G4double>* mFSPYieldData =
new std::map<G4int,G4double>;
98 for (
G4int j = 0 ; j < jmax ; j++ )
103 theData >> FSP >> mFSP >> Y;
104 G4int k = FSP*100+mFSP;
107 mFSPYieldData->insert( std::pair<G4int,G4double>( k , YY ) );
109 mEnergyFSPData->insert( std::pair<
G4double,std::map<G4int,G4double>*>(Ei*eV,mFSPYieldData) );
112 FissionProductYieldData.insert( std::pair<
G4int , std::map<
G4double , std::map< G4int , G4double >* >* > (iMT,mEnergyFSPData));
113 mMTInterpolation.insert( std::pair<
G4int,std::map<G4double,G4int>*> (iMT,mInterporation) );
133 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData = FissionProductYieldData.find( 454 )->second;
139 if ( mEnergyFSPData->size() == 1 )
141 key_energy = mEnergyFSPData->begin()->first;
148 for ( std::map<
G4double , std::map< G4int , G4double >* >::iterator it = mEnergyFSPData->begin() ;
149 it != mEnergyFSPData->end() ; it++ )
152 G4double d = std::fabs ( energy - e );
162 std::map<G4int,G4double>* mFSPYieldData = (*mEnergyFSPData)[key_energy];
165 G4double ceilling = mFSPYieldData->rbegin()->second;
166 for ( std::map<G4int,G4double>::iterator it = mFSPYieldData->begin() ; it != mFSPYieldData->end() ; it++ )
169 if ( rand <= it->second/ceilling )
177 fragZ = ifrag/100000;
178 fragA = (ifrag%100000)/100;
std::vector< G4DynamicParticle * > G4DynamicParticleVector
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
void GetAFissionFragment(G4double, G4int &, G4int &, G4int &)
G4DynamicParticleVector * ApplyYourself(G4int nNeutrons)
G4NeutronHPNames theNames
G4DynamicParticleVector * ApplyYourself(G4int Prompt)
G4NeutronHPDataUsed GetName(G4int A, G4int Z, G4String base, G4String rest, G4bool &active)