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/standard/include/G4ionIonisation.hh

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4ionIonisation.hh,v 1.50 2007/11/09 11:45:45 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-01-patch-02 $
     26// $Id: G4ionIonisation.hh,v 1.57 2009/02/20 12:06:37 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    5757// 22-07-06 Remove obsolete method (V.Ivantchenko)
    5858// 07-11-07 Moved CorrectionsAlongStep to cc (V.Ivantchenko)
     59// 12-09-08 Removed InitialiseMassCharge and CorrectionsAlongStep (VI)
    5960//
    6061// Class Description:
     
    7273
    7374#include "G4VEnergyLossProcess.hh"
    74 #include "G4ionEffectiveCharge.hh"
    75 #include "G4VEmModel.hh"
    76 #include "G4EmCorrections.hh"
    7775
    7876class G4Material;
    79 class G4PhysicsVector;
    80 class G4BraggIonModel;
     77class G4EmCorrections;
    8178
    8279class G4ionIonisation : public G4VEnergyLossProcess
     
    8885  virtual ~G4ionIonisation();
    8986
    90   inline G4bool IsApplicable(const G4ParticleDefinition& p);
     87  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
    9188
    9289  // Print out of the class parameters
     
    9491
    9592  void AddStoppingData(G4int Z, G4int A, const G4String& materialName,
    96                        G4PhysicsVector& dVector);
     93                       G4PhysicsVector* dVector);
    9794
    9895  void ActivateStoppingData(G4bool);
     
    105102                                           const G4ParticleDefinition*);
    106103
    107   virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*,
    108                                     const G4DynamicParticle*,
    109                                     G4double& eloss,
    110                                     G4double& length);
    111 
    112   inline void InitialiseMassCharge(const G4Track&);
    113 
    114   inline G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
     104  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
    115105                                   const G4Material*, G4double cut);
    116106
     
    118108
    119109  inline G4bool NuclearStoppingFlag();
    120 
    121   // protected pointers
    122   G4ionEffectiveCharge*       effCharge;
    123   G4EmCorrections*            corr;
    124110
    125111private:
     
    129115  G4ionIonisation(const G4ionIonisation&);
    130116
    131   // cash
    132   const G4Material*           curMaterial;
    133   const G4ParticleDefinition* curParticle;
     117  G4EmCorrections*            corr;
     118
    134119  const G4ParticleDefinition* theParticle;
    135   const G4ParticleDefinition* theBaseParticle;
    136120
    137   G4double                    preKinEnergy;
     121  G4double   eth;
    138122
    139   G4double                    eth;
    140   G4double                    baseMass;
    141   G4double                    massRatio;
    142   G4double                    massFactor;
    143   G4double                    charge2;
    144 
    145   G4bool                      isInitialised;
    146   G4bool                      stopDataActive;
    147   G4bool                      nuclearStopping;
     123  G4bool     isInitialised;
     124  G4bool     stopDataActive;
     125  G4bool     nuclearStopping;
    148126};
    149127
    150128//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    151 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    152 
    153 inline G4bool G4ionIonisation::IsApplicable(const G4ParticleDefinition& p)
    154 {
    155   return (p.GetPDGCharge() != 0.0 && !p.IsShortLived() &&
    156           p.GetParticleType() == "nucleus");
    157 }
    158 
    159 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    160 
    161 inline G4double G4ionIonisation::MinPrimaryEnergy(
    162           const G4ParticleDefinition*, const G4Material*, G4double cut)
    163 {
    164   G4double x = 0.5*cut/electron_mass_c2;
    165   G4double g = std::sqrt(1. + x);
    166   return proton_mass_c2*(g - 1.0);
    167 }
    168 
    169 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    170 
    171 inline void G4ionIonisation::InitialiseMassCharge(const G4Track& track)
    172 {
    173   preKinEnergy = track.GetKineticEnergy();
    174   massRatio    = baseMass/track.GetDynamicParticle()->GetMass();
    175   charge2      = effCharge->EffectiveChargeSquareRatio(track.GetDefinition(),
    176                                                        track.GetMaterial(),
    177                                                        preKinEnergy);
    178   SetDynamicMassCharge(massRatio, charge2);
    179 }
    180 
    181129//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    182130
Note: See TracChangeset for help on using the changeset viewer.