Ignore:
Timestamp:
Apr 6, 2009, 12:30:29 PM (15 years ago)
Author:
garnier
Message:

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc

    r819 r962  
    6464#include "G4DiscreteGammaDeexcitation.hh"
    6565#include "G4E1Probability.hh"
    66 #include "G4AtomicDeexcitation.hh"
    6766
    6867G4PhotonEvaporation::G4PhotonEvaporation()
    6968  :_verbose(0),_myOwnProbAlgorithm (true),
    70    _eOccupancy(0), _vShellNumber(-1),_gammaE(0.),_applyARM(false)
     69   _eOccupancy(0), _vShellNumber(-1),_gammaE(0.)
    7170{
    7271  _probAlgorithm = new G4E1Probability;
     
    199198  _eOccupancy = _discrDeexcitation->GetEO();
    200199  _vShellNumber = _discrDeexcitation->GetVacantSN();
    201   // _eOccupancy.DumpInfo() ;
     200
     201  // not sure if the following line is needed!
    202202  _discrDeexcitation->SetVaccantSN(-1);
    203203
     
    214214    }
    215215
    216   // now to see if apply Atomic relaxation model or not
    217   // only when there is a vacant orbital electron
    218  
    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 now
    226         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 = new
    237               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     }
    248216  // Add deexcited nucleus to products
    249217  G4Fragment* finalNucleus = new G4Fragment(_discrDeexcitation->GetNucleus());
     
    256224
    257225#ifdef debug
    258   if ( armProducts->size() == 0)
    259     CheckConservation(nucleus,products);
     226  CheckConservation(nucleus,products);
    260227#endif
    261228  contProducts->clear();
     
    265232  return products;
    266233}
    267 
    268234
    269235G4double G4PhotonEvaporation::GetEmissionProbability() const
Note: See TracChangeset for help on using the changeset viewer.