#include <G4mplIonisation.hh>
Inheritance diagram for G4mplIonisation:
Public Member Functions | |
G4mplIonisation (G4double mCharge=0.0, const G4String &name="mplIoni") | |
virtual | ~G4mplIonisation () |
virtual G4bool | IsApplicable (const G4ParticleDefinition &p) |
virtual void | PrintInfo () |
Protected Member Functions | |
virtual void | InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *) |
Definition at line 64 of file G4mplIonisation.hh.
Definition at line 59 of file G4mplIonisation.cc.
References G4Electron::Electron(), fIonisation, G4VProcess::SetProcessSubType(), G4VEnergyLossProcess::SetSecondaryParticle(), G4VEnergyLossProcess::SetStepFunction(), and G4VProcess::SetVerboseLevel().
00060 : G4VEnergyLossProcess(name), 00061 magneticCharge(mCharge), 00062 isInitialised(false) 00063 { 00064 // By default classical magnetic charge is used 00065 if(magneticCharge == 0.0) { magneticCharge = eplus*0.5/fine_structure_const; } 00066 00067 SetVerboseLevel(0); 00068 SetProcessSubType(fIonisation); 00069 SetStepFunction(0.2, 1*mm); 00070 SetSecondaryParticle(G4Electron::Electron()); 00071 }
G4mplIonisation::~G4mplIonisation | ( | ) | [virtual] |
void G4mplIonisation::InitialiseEnergyLossProcess | ( | const G4ParticleDefinition * | , | |
const G4ParticleDefinition * | ||||
) | [protected, virtual] |
Implements G4VEnergyLossProcess.
Definition at line 87 of file G4mplIonisation.cc.
References G4VEnergyLossProcess::AddEmModel(), G4lrint(), G4VEmModel::HighEnergyLimit(), G4LossTableManager::Instance(), G4VEmModel::LowEnergyLimit(), G4VEnergyLossProcess::MaxKinEnergy(), G4VEnergyLossProcess::MinKinEnergy(), G4VEnergyLossProcess::SetBaseParticle(), G4VEnergyLossProcess::SetDEDXBinning(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), G4VEnergyLossProcess::SetMaxKinEnergy(), G4VEnergyLossProcess::SetMinKinEnergy(), and G4mplIonisationWithDeltaModel::SetParticle().
00089 { 00090 if(isInitialised) { return; } 00091 00092 SetBaseParticle(0); 00093 00094 // monopole model is responsible both for energy loss and fluctuations 00095 G4mplIonisationWithDeltaModel* ion = 00096 new G4mplIonisationWithDeltaModel(magneticCharge,"PAI"); 00097 ion->SetParticle(p); 00098 00099 // define size of dedx and range tables 00100 G4double emin = std::min(MinKinEnergy(),ion->LowEnergyLimit()); 00101 G4double emax = std::max(MaxKinEnergy(),ion->HighEnergyLimit()); 00102 G4int bin = G4lrint(G4LossTableManager::Instance()->GetNumberOfBinsPerDecade() 00103 *std::log10(emax/emin)); 00104 ion->SetLowEnergyLimit(emin); 00105 ion->SetHighEnergyLimit(emax); 00106 SetMinKinEnergy(emin); 00107 SetMaxKinEnergy(emax); 00108 SetDEDXBinning(bin); 00109 00110 AddEmModel(1,ion,ion); 00111 00112 isInitialised = true; 00113 }
G4bool G4mplIonisation::IsApplicable | ( | const G4ParticleDefinition & | p | ) | [virtual] |
void G4mplIonisation::PrintInfo | ( | ) | [virtual] |
Implements G4VEnergyLossProcess.
Definition at line 117 of file G4mplIonisation.cc.
References G4cout, and G4endl.