36 std::map<G4int,std::map<G4double,std::map<G4int,G4double >* >* >::iterator it =
FissionProductYieldData.begin();
38 std::map<G4double,std::map<G4int,G4double>* >* firstLevel = it->second;
40 std::map<G4double,std::map<G4int,G4double>*>::iterator it2 = firstLevel->begin();
41 while ( it2 != firstLevel->end() ) {
44 firstLevel->erase(it2);
45 it2=firstLevel->begin();
54 std::map< G4int , std::map< G4double , G4int >* >::iterator ii =
mMTInterpolation.begin();
75 if ( !dbool || ( Z < 2.5 && ( std::abs(
theBaseZ-Z)>0.0001 || std::abs(
theBaseA-A)>0.0001) ) )
83 std::istringstream theData(std::ios::in);
99 while ( theData.good() )
105 theData >> iMT >> iMF >> dummy;
110 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
new std::map< G4double , std::map< G4int , G4double >* >;
112 std::map< G4double , G4int >* mInterporation =
new std::map< G4double , G4int >;
126 mInterporation->insert( std::pair<G4double,G4int>(Ei*
eV,ip) );
128 std::map<G4int,G4double>* mFSPYieldData =
new std::map<G4int,G4double>;
134 theData >> FSP >> mFSP >> Y;
135 G4int k = FSP*100+mFSP;
138 mFSPYieldData->insert( std::pair<G4int,G4double>( k , YY ) );
140 mEnergyFSPData->insert( std::pair<
G4double,std::map<G4int,G4double>*>(Ei*eV,mFSPYieldData) );
164 std::map< G4double , std::map< G4int , G4double >* >* mEnergyFSPData =
FissionProductYieldData.find( 454 )->second;
170 if ( mEnergyFSPData->size() == 1 )
172 key_energy = mEnergyFSPData->begin()->first;
179 for ( std::map<
G4double , std::map< G4int , G4double >* >::iterator it = mEnergyFSPData->begin() ;
180 it != mEnergyFSPData->end() ; it++ )
183 G4double d = std::fabs ( energy - e );
193 std::map<G4int,G4double>* mFSPYieldData = (*mEnergyFSPData)[key_energy];
196 G4double ceilling = mFSPYieldData->rbegin()->second;
197 for ( std::map<G4int,G4double>::iterator it = mFSPYieldData->begin() ; it != mFSPYieldData->end() ; it++ )
200 if ( rand <= it->
second/ceilling )
208 fragZ = ifrag/100000;
209 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)
std::map< G4int, std::map< G4double, std::map< G4int, G4double > * > * > FissionProductYieldData
void Init(G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType)
std::map< G4int, std::map< G4double, G4int > * > mMTInterpolation
static const double second
std::vector< G4DynamicParticle * > G4DynamicParticleVector
void GetAFissionFragment(G4double, G4int &, G4int &, G4int &)
static const G4double A[nN]
~G4NeutronHPFFFissionFS()
G4double energy(const ThreeVector &p, const G4double m)