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

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateChargeDecrease.cc

    r819 r961  
    2424// ********************************************************************
    2525//
    26 //
    27 // $Id: G4FinalStateChargeDecrease.cc,v 1.2 2007/11/09 20:11:04 pia Exp $
    28 // GEANT4 tag $Name:  $
    29 //
    30 // Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
    31 //
    32 // Reference: TNS Geant4-DNA paper
    33 // Reference for implementation model: NIM. 155, pp. 145-156, 1978
    34 
    35 // History:
    36 // -----------
    37 // Date         Name              Modification
    38 // 28 Apr 2007  M.G. Pia          Created in compliance with design described in TNS paper
    39 //
    40 // -------------------------------------------------------------------
    41 
    42 // Class description:
    43 // Reference: TNS Geant4-DNA paper
    44 // S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
    45 // design foundation and implementation of the first set of models,
    46 // IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
    47 // Further documentation available from http://www.ge.infn.it/geant4/dna
    48 
    49 // -------------------------------------------------------------------
    50 
     26// $Id: G4FinalStateChargeDecrease.cc,v 1.4 2009/01/20 07:50:28 sincerti Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    5128
    5229#include "G4FinalStateChargeDecrease.hh"
    53 #include "G4Track.hh"
    54 #include "G4Step.hh"
    55 #include "G4DynamicParticle.hh"
    56 //#include "Randomize.hh"
    5730
    58 #include "G4ParticleTypes.hh"
    59 #include "G4ParticleDefinition.hh"
    60 #include "G4SystemOfUnits.hh"
    61 //#include "G4ParticleMomentum.hh"
    62 #include "G4DNAGenericIonsManager.hh"
     31//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    6332
    6433G4FinalStateChargeDecrease::G4FinalStateChargeDecrease()
    6534{
    66   name = "ChargeDecrease";
    6735  lowEnergyLimit = 1 * keV;
    6836  highEnergyLimit = 10 * MeV;
    6937}
    7038
     39//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    7140
    7241G4FinalStateChargeDecrease::~G4FinalStateChargeDecrease()
    7342{}
    7443 
     44//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    7545
    7646const G4FinalStateProduct& G4FinalStateChargeDecrease::GenerateFinalState(const G4Track& track, const G4Step& /* step */)
    7747{
    78   // Clear previous secondaries, energy deposit and particle kill status
    7948  product.Clear();
    8049
     
    9564 
    9665  if (outK<0)
    97     {
    98       G4String message;
    99       message="ChargeDecreaseDingfelder::GenerateFinalState - Final kinetic energy is below 0! Process ";
    100       G4Exception(message);
    101     }
     66  {
     67    G4String message;
     68    message="ChargeDecreaseDingfelder::GenerateFinalState - Final kinetic energy is below 0! Process ";
     69    G4Exception(message);
     70  }
    10271 
    103   // Primary particle
     72  //SI - Added protection against total energy deposit
     73  product.DoNotDepositEnergy();
     74  //
    10475  product.KillPrimaryParticle();
     76
    10577  product.AddEnergyDeposit(waterBindingEnergy);
    106  
    107   //Secondary particle
     78
    10879  G4DynamicParticle* aSecondary = new G4DynamicParticle(OutgoingParticleDefinition(definition, finalStateIndex),
    10980                                                        track.GetDynamicParticle()->GetMomentumDirection(),
     
    11485  return product;
    11586}
     87
     88//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    11689
    11790G4int G4FinalStateChargeDecrease::NumberOfFinalStates(G4ParticleDefinition* particleDefinition,
     
    12598 
    12699  if (particleDefinition == instance->GetIon("alpha++") )
    127     {
    128       if (finalStateIndex==0)  return 1;
    129       return 2;   
    130     }
     100  {
     101    if (finalStateIndex==0)  return 1;
     102    return 2;   
     103  }
    131104 
    132105  if (particleDefinition == instance->GetIon("alpha+") ) return 1;
     
    135108}
    136109
     110//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    137111
    138112G4ParticleDefinition* G4FinalStateChargeDecrease::OutgoingParticleDefinition (G4ParticleDefinition* particleDefinition,
     
    144118 
    145119  if (particleDefinition == instance->GetIon("alpha++") )
    146     {
    147       if (finalStateIndex == 0) return instance->GetIon("alpha+");
    148 
    149       return instance->GetIon("helium");   
    150     }
     120  {
     121    if (finalStateIndex == 0) return instance->GetIon("alpha+");
     122    return instance->GetIon("helium");   
     123  }
    151124 
    152125  if (particleDefinition == instance->GetIon("alpha+") ) return instance->GetIon("helium");   
     
    155128}
    156129
     130//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    157131
    158132G4double G4FinalStateChargeDecrease::WaterBindingEnergyConstant(G4ParticleDefinition* particleDefinition,
     
    168142
    169143  if (particleDefinition == instance->GetIon("alpha++") )
    170     {
     144  {
    171145      // Binding energy for    W+ -> W++ + e-    10.79 eV
    172146      // Binding energy for    W  -> W+  + e-    10.79 eV
     
    178152 
    179153      return 10.79*2*eV;
    180     }
     154  }
    181155
    182156  if (particleDefinition == instance->GetIon("alpha+") )
    183     {
     157  {
    184158      // Binding energy for    W+ -> W++ + e-    10.79 eV
    185159      // Binding energy for    W  -> W+  + e-    10.79 eV
     
    189163
    190164      return 10.79*eV;
    191     }
     165  }
    192166 
    193167  return 0;
    194168}
    195169
     170//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    196171
    197172G4double G4FinalStateChargeDecrease::OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition,
     
    203178
    204179  if (particleDefinition == instance->GetIon("alpha++") )
    205     {
     180  {
    206181      // Binding energy for    He+ -> He++ + e-    54.509 eV
    207182      // Binding energy for    He  -> He+  + e-    24.587 eV
     
    210185     
    211186      return (54.509 + 24.587)*eV;
    212     }
     187  }
    213188 
    214189  if (particleDefinition == instance->GetIon("alpha+") )
    215     {
     190  {
    216191      // Binding energy for    He+ -> He++ + e-    54.509 eV
    217192      // Binding energy for    He  -> He+  + e-    24.587 eV
    218193     
    219194      return 24.587*eV;
    220    
     195 
    221196 
    222197  return 0;
Note: See TracChangeset for help on using the changeset viewer.