Changeset 962 for trunk/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc
- Timestamp:
- Apr 6, 2009, 12:30:29 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc
r819 r962 64 64 #include "G4DiscreteGammaDeexcitation.hh" 65 65 #include "G4E1Probability.hh" 66 #include "G4AtomicDeexcitation.hh"67 66 68 67 G4PhotonEvaporation::G4PhotonEvaporation() 69 68 :_verbose(0),_myOwnProbAlgorithm (true), 70 _eOccupancy(0), _vShellNumber(-1),_gammaE(0.) ,_applyARM(false)69 _eOccupancy(0), _vShellNumber(-1),_gammaE(0.) 71 70 { 72 71 _probAlgorithm = new G4E1Probability; … … 199 198 _eOccupancy = _discrDeexcitation->GetEO(); 200 199 _vShellNumber = _discrDeexcitation->GetVacantSN(); 201 // _eOccupancy.DumpInfo() ; 200 201 // not sure if the following line is needed! 202 202 _discrDeexcitation->SetVaccantSN(-1); 203 203 … … 214 214 } 215 215 216 // now to see if apply Atomic relaxation model or not217 // only when there is a vacant orbital electron218 219 if (_applyARM && _vShellNumber != -1)220 {221 G4int aZ = static_cast<G4int>(_discrDeexcitation->GetNucleus().GetZ());222 G4int eShell = _vShellNumber+1;223 if ( eShell > 0 ) {224 G4AtomicDeexcitation* atomDeex = new G4AtomicDeexcitation();225 // no auger electron for now226 atomDeex->ActivateAugerElectronProduction(0);227 std::vector<G4DynamicParticle*>* armProducts = atomDeex->GenerateParticles(aZ,eShell);228 G4DynamicParticle* aParticle;229 if (_verbose > 0)230 G4cout << " = BreakItUp = " << armProducts->size()231 << " particles from G4AtomicDeexcitation " << G4endl;232 for (size_t i = 0; i < armProducts->size(); i++)233 {234 aParticle = (*armProducts)[i] ;235 G4LorentzVector lParticle = aParticle->Get4Momentum();236 G4Fragment* aFragment = new237 G4Fragment(lParticle,aParticle->GetDefinition());238 aFragment->SetCreationTime(aParticle->GetProperTime());239 products->push_back(aFragment);240 }241 242 for (size_t i = 0; i < armProducts->size(); i++)243 delete (*armProducts)[i];244 delete armProducts;245 delete atomDeex;246 }247 }248 216 // Add deexcited nucleus to products 249 217 G4Fragment* finalNucleus = new G4Fragment(_discrDeexcitation->GetNucleus()); … … 256 224 257 225 #ifdef debug 258 if ( armProducts->size() == 0) 259 CheckConservation(nucleus,products); 226 CheckConservation(nucleus,products); 260 227 #endif 261 228 contProducts->clear(); … … 265 232 return products; 266 233 } 267 268 234 269 235 G4double G4PhotonEvaporation::GetEmissionProbability() const
Note: See TracChangeset
for help on using the changeset viewer.