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

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4BraggIonModel.hh,v 1.8 2007/05/22 17:34:36 vnivanch Exp $
    27 // GEANT4 tag $Name: $
     26// $Id: G4BraggIonModel.hh,v 1.12 2009/02/20 12:06:37 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    4343// 15-02-06 ComputeCrossSectionPerElectron, ComputeCrossSectionPerAtom (mma)
    4444// 25-04-06 Add stopping data from ASTAR (V.Ivanchenko)
     45// 12-08-08 Added methods GetParticleCharge, GetChargeSquareRatio,
     46//          CorrectionsAlongStep needed for ions(V.Ivanchenko)
    4547
    4648//
     
    4850//
    4951// Implementation of energy loss and delta-electron production
    50 // by heavy slow charged particles using eveluated data
     52// by heavy slow charged particles using ICRU'49 and NIST evaluated data
     53// for He4 ions
    5154
    5255// -------------------------------------------------------------------
     
    6063
    6164class G4ParticleChangeForLoss;
     65class G4EmCorrections;
    6266
    6367class G4BraggIonModel : public G4VEmModel
     
    7377  virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
    7478
    75   G4double MinEnergyCut(const G4ParticleDefinition*,
    76                         const G4MaterialCutsCouple*);
     79  virtual G4double MinEnergyCut(const G4ParticleDefinition*,
     80                                const G4MaterialCutsCouple*);
    7781                       
    7882  virtual G4double ComputeCrossSectionPerElectron(
     
    106110                                 G4double maxEnergy);
    107111
     112  // Compute ion charge
     113  virtual G4double GetChargeSquareRatio(const G4ParticleDefinition*,
     114                                        const G4Material*,
     115                                        G4double kineticEnergy);
     116
     117  virtual G4double GetParticleCharge(const G4ParticleDefinition* p,
     118                                     const G4Material* mat,
     119                                     G4double kineticEnergy);
     120
     121  // add correction to energy loss and ompute non-ionizing energy loss
     122  virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*,
     123                                    const G4DynamicParticle*,
     124                                    G4double& eloss,
     125                                    G4double& niel,
     126                                    G4double length);
     127
    108128protected:
    109129
    110   G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
    111                               G4double kinEnergy);
     130  virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
     131                                      G4double kinEnergy);
    112132
    113133private:
     
    133153  G4double DEDX(const G4Material* material, G4double kineticEnergy);
    134154
     155  G4EmCorrections*            corr;
     156
    135157  const G4ParticleDefinition* particle;
    136158  G4ParticleDefinition*       theElectron;
     
    144166  G4double massRate;
    145167  G4double ratio;
    146   G4double highKinEnergy;
    147   G4double lowKinEnergy;
    148168  G4double lowestKinEnergy;
    149169  G4double HeMass;
    150170  G4double massFactor;
     171  G4double corrFactor;
    151172  G4double rateMassHe2p;
    152173  G4double theZieglerFactor;
     
    154175  G4int    iMolecula;          // index in the molecula's table
    155176  G4bool   isIon;
     177  G4bool   isInitialised;
    156178};
    157 
    158 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
    159 
    160 inline G4double G4BraggIonModel::MaxSecondaryEnergy(
    161           const G4ParticleDefinition* pd,
    162                 G4double kinEnergy)
    163 {
    164   if(pd != particle) SetParticle(pd);
    165   G4double tau  = kinEnergy/mass;
    166   G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /
    167                   (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
    168   return tmax;
    169 }
    170179
    171180//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Note: See TracChangeset for help on using the changeset viewer.