G4ionIonisation Class Reference

#include <G4ionIonisation.hh>

Inheritance diagram for G4ionIonisation:

G4VEnergyLossProcess G4VContinuousDiscreteProcess G4VProcess

Public Member Functions

 G4ionIonisation (const G4String &name="ionIoni")
virtual ~G4ionIonisation ()
virtual G4bool IsApplicable (const G4ParticleDefinition &p)
virtual void PrintInfo ()
void AddStoppingData (G4int Z, G4int A, const G4String &materialName, G4PhysicsVector *dVector)
void ActivateStoppingData (G4bool)

Protected Member Functions

virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)
virtual G4double MinPrimaryEnergy (const G4ParticleDefinition *p, const G4Material *, G4double cut)
G4double BetheBlochEnergyThreshold ()

Detailed Description

Definition at line 78 of file G4ionIonisation.hh.


Constructor & Destructor Documentation

G4ionIonisation::G4ionIonisation ( const G4String name = "ionIoni"  ) 

Definition at line 83 of file G4ionIonisation.cc.

References G4Electron::Electron(), G4LossTableManager::EmCorrections(), fIonisation, G4LossTableManager::Instance(), G4VEnergyLossProcess::SetLinearLossLimit(), G4VProcess::SetProcessSubType(), G4VEnergyLossProcess::SetSecondaryParticle(), and G4VEnergyLossProcess::SetStepFunction().

00084   : G4VEnergyLossProcess(name),
00085     theParticle(0),
00086     isInitialised(false),
00087     stopDataActive(true)
00088 {
00089   SetLinearLossLimit(0.02);
00090   SetStepFunction(0.1, 0.01*mm);
00091   SetProcessSubType(fIonisation);
00092   SetSecondaryParticle(G4Electron::Electron());
00093   corr = G4LossTableManager::Instance()->EmCorrections();
00094   eth = 2*MeV;
00095 }

G4ionIonisation::~G4ionIonisation (  )  [virtual]

Definition at line 99 of file G4ionIonisation.cc.

00100 {}


Member Function Documentation

void G4ionIonisation::ActivateStoppingData ( G4bool   )  [inline]

Definition at line 125 of file G4ionIonisation.hh.

00126 {
00127   stopDataActive = val;
00128 }

void G4ionIonisation::AddStoppingData ( G4int  Z,
G4int  A,
const G4String materialName,
G4PhysicsVector dVector 
)

Definition at line 181 of file G4ionIonisation.cc.

References G4EmCorrections::AddStoppingData().

00184 {
00185   corr->AddStoppingData(Z, A, mname, dVector);
00186 }

G4double G4ionIonisation::BetheBlochEnergyThreshold (  )  [inline, protected]

Definition at line 132 of file G4ionIonisation.hh.

00133 {
00134   return eth;
00135 }

void G4ionIonisation::InitialiseEnergyLossProcess ( const G4ParticleDefinition ,
const G4ParticleDefinition  
) [protected, virtual]

Implements G4VEnergyLossProcess.

Definition at line 122 of file G4ionIonisation.cc.

References G4VEnergyLossProcess::AddEmModel(), G4VEnergyLossProcess::EmModel(), G4VEnergyLossProcess::FluctModel(), G4GenericIon::GenericIon(), G4ParticleDefinition::GetPDGMass(), G4VEmModel::HighEnergyLimit(), G4EmCorrections::InitialiseForNewRun(), G4VEnergyLossProcess::MaxKinEnergy(), G4VEnergyLossProcess::MinKinEnergy(), G4VEnergyLossProcess::SetBaseParticle(), G4VEnergyLossProcess::SetEmModel(), G4VEnergyLossProcess::SetFluctModel(), G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().

00125 {
00126   const G4ParticleDefinition* ion = G4GenericIon::GenericIon();
00127 
00128   if(!isInitialised) {
00129 
00130     theParticle = part;
00131 
00132     // define base particle
00133     const G4ParticleDefinition* theBaseParticle = 0;
00134 
00135     if(part == ion)     { theBaseParticle = 0; }
00136     else if(bpart == 0) { theBaseParticle = ion; }
00137     else                { theBaseParticle = bpart; }
00138 
00139     SetBaseParticle(theBaseParticle);
00140 
00141     if (!EmModel(1)) { SetEmModel(new G4BraggIonModel(), 1); }
00142     EmModel(1)->SetLowEnergyLimit(MinKinEnergy());
00143 
00144     // model limit defined for protons
00145     eth = (EmModel(1)->HighEnergyLimit())*part->GetPDGMass()/proton_mass_c2;
00146     EmModel(1)->SetHighEnergyLimit(eth);
00147 
00148     if (!FluctModel()) { SetFluctModel(new G4IonFluctuations()); }
00149     AddEmModel(1, EmModel(1), FluctModel());
00150 
00151     if (!EmModel(2)) { SetEmModel(new G4BetheBlochModel(),2); }  
00152     EmModel(2)->SetLowEnergyLimit(eth);
00153     EmModel(2)->SetHighEnergyLimit(MaxKinEnergy());
00154     AddEmModel(2, EmModel(2), FluctModel());    
00155 
00156     // Add ion stoping tables for Generic Ion
00157     if(part == ion) {
00158       G4WaterStopping  ws(corr);
00159       corr->SetIonisationModels(EmModel(1),EmModel(2));
00160     }
00161     isInitialised = true;
00162   }
00163   // reinitialisation of corrections for the new run
00164   if(part == ion) { corr->InitialiseForNewRun(); }
00165 }

G4bool G4ionIonisation::IsApplicable ( const G4ParticleDefinition p  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 104 of file G4ionIonisation.cc.

References G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGCharge(), and G4ParticleDefinition::IsShortLived().

00105 {
00106   return (p.GetPDGCharge() != 0.0 && !p.IsShortLived() &&
00107           p.GetParticleType() == "nucleus");
00108 }

G4double G4ionIonisation::MinPrimaryEnergy ( const G4ParticleDefinition p,
const G4Material ,
G4double  cut 
) [protected, virtual]

Reimplemented from G4VEnergyLossProcess.

Definition at line 112 of file G4ionIonisation.cc.

References G4ParticleDefinition::GetPDGMass().

00115 {
00116   return 
00117     p->GetPDGMass()*(std::sqrt(1. + 0.5*cut/CLHEP::electron_mass_c2) - 1.0);
00118 }

void G4ionIonisation::PrintInfo (  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 169 of file G4ionIonisation.cc.

References G4cout, G4endl, G4GenericIon::GenericIon(), and G4EmCorrections::GetNumberOfStoppingVectors().

00170 {
00171   if (stopDataActive && G4GenericIon::GenericIon() == theParticle) {
00172     G4cout << "      Stopping Power data for " 
00173            << corr->GetNumberOfStoppingVectors()
00174            << " ion/material pairs "
00175            << G4endl;
00176   }
00177 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:18 2013 for Geant4 by  doxygen 1.4.7