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

update processes

Location:
trunk/source/processes/hadronic/models/de_excitation/photon_evaporation/src
Files:
2 edited

Legend:

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

    r819 r962  
    130130  G4bool canDo = true;
    131131   
    132   if (_transition == 0)
    133     {
    134       canDo = false;
    135 
    136       if (_verbose > 0)
    137         G4cout
    138           << "G4DiscreteGammaDeexcitation::CanDoTransition - Null transition "
    139           << G4endl;
    140     }
     132  if (_transition == 0) {
     133    canDo = false;
     134   
     135    if (_verbose > 0)
     136      G4cout
     137        << "G4DiscreteGammaDeexcitation::CanDoTransition - Null transition "
     138        << G4endl;
     139  }
    141140  G4Fragment nucleus = GetNucleus();
    142141  if (canDo)  {
     
    154153
    155154  G4double excitation = nucleus.GetExcitationEnergy();
     155
    156156  if (canDo) {
    157     if (excitation <= 0.)
    158       {
    159         canDo = false;
    160         if (_verbose > 0)
    161           G4cout
    162             << "G4DiscreteGammaDeexcitation::CanDoTransition -  Excitation <= 0"
    163             << G4endl;
    164       }
    165    
    166     if (excitation > _levelManager->MaxLevelEnergy() + _tolerance) canDo = false;
    167     if (excitation < _levelManager->MinLevelEnergy() - _tolerance) canDo = false; 
    168     // The following is a protection to avoid looping in case of elements with very low
    169     // ensdf levels
    170     if (excitation < _levelManager->MinLevelEnergy() * 0.9) canDo = false; 
     157    if (excitation <= 0.) {
     158      canDo = false;
     159      if (_verbose > 0)
     160        G4cout
     161          << "G4DiscreteGammaDeexcitation::CanDoTransition -  Excitation <= 0"
     162          << G4endl;
     163    } else {
     164      if (excitation > _levelManager->MaxLevelEnergy() + _tolerance) canDo = false;
     165      if (excitation < _levelManager->MinLevelEnergy() - _tolerance) canDo = false; 
     166      // The following is a protection to avoid looping in case of elements with very low
     167      // ensdf levels
     168      if (excitation < _levelManager->MinLevelEnergy() * 0.9) canDo = false; 
    171169 
    172     if (_verbose > 0)
    173       {
     170      if (_verbose > 0) {
    174171        G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition -  Excitation "
    175172               << excitation << ", Min-Max are "
     
    177174               << _levelManager->MaxLevelEnergy() << G4endl;
    178175      }
    179   }
    180 
     176    }
     177  }
     178 
    181179  if (canDo) {
    182180    const G4NuclearLevel* level = _levelManager->NearestLevel(excitation); 
     
    186184      canDo = false;
    187185    }
    188 
    189     if (_verbose > 0)
    190       {
    191         G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition -  Halflife "
    192                << level->HalfLife() << ", Calling from RDM "
    193                << (_rdm ? " True " : " False ")  << " Max-HL = " <<  _max_hl << G4endl;
    194       }
    195   }
    196   if (_verbose > 0)
    197     {
    198 
    199       G4cout <<"G4DiscreteGammaDeexcitation::CanDoTransition - CanDo:"
    200              <<  (canDo ? " True " : " False ")  << G4endl;
    201     }
    202 
    203 
     186    if (_verbose > 0) {
     187      G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition -  Halflife "
     188             << level->HalfLife() << ", Calling from RDM "
     189             << (_rdm ? " True " : " False ")  << ", Max-HL = " <<  _max_hl << G4endl;
     190    }
     191  }
     192  if (_verbose > 0) {
     193    G4cout <<"G4DiscreteGammaDeexcitation::CanDoTransition - CanDo:"
     194           <<  (canDo ? " True " : " False ")  << G4endl;
     195  }
     196 
    204197  return canDo;
    205198     
  • 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.