#include <ExthIonisation.h>
Public Member Functions | |
ExthIonisation (const G4String &name="ExthIoni") | |
~ExthIonisation () | |
G4bool | IsApplicable (const G4ParticleDefinition &p) |
G4double | MinPrimaryEnergy (const G4ParticleDefinition *p, const G4Material *, G4double cut) |
virtual void | PrintInfo () |
Protected Member Functions | |
std::vector< G4DynamicParticle * > * | SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &) |
virtual void | InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *) |
Private Member Functions | |
ExthIonisation & | operator= (const ExthIonisation &right) |
ExthIonisation (const ExthIonisation &) | |
Private Attributes | |
G4double | mass |
G4double | ratio |
const G4ParticleDefinition * | theParticle |
const G4ParticleDefinition * | theBaseParticle |
G4VEmFluctuationModel * | flucModel |
G4bool | isInitialised |
G4double | eth |
Definition at line 88 of file ExthIonisation.h.
ExthIonisation::ExthIonisation | ( | const G4String & | name = "ExthIoni" |
) |
Definition at line 93 of file ExthIonisation.cxx.
00094 : G4VEnergyLossProcess(name), 00095 theParticle(0), 00096 theBaseParticle(0), 00097 isInitialised(false) 00098 { 00099 SetDEDXBinning(120); 00100 SetLambdaBinning(120); 00101 SetMinKinEnergy(0.1*keV); 00102 SetMaxKinEnergy(100.0*TeV); 00103 SetVerboseLevel(0); 00104 SetLossFluctuations(false); 00105 mass = 0.0; 00106 ratio = 0.0; 00107 }
ExthIonisation::~ExthIonisation | ( | ) |
ExthIonisation::ExthIonisation | ( | const ExthIonisation & | ) | [private] |
void ExthIonisation::InitialiseEnergyLossProcess | ( | const G4ParticleDefinition * | , | |
const G4ParticleDefinition * | ||||
) | [protected, virtual] |
Definition at line 116 of file ExthIonisation.cxx.
References eth, flucModel, isInitialised, mass, ratio, theBaseParticle, and theParticle.
00118 { 00119 if(isInitialised) return; 00120 00121 theParticle = part; 00122 00123 if(part == bpart || part == G4Proton::Proton()) theBaseParticle = 0; 00124 else if(bpart == 0) theBaseParticle = G4Proton::Proton(); 00125 else theBaseParticle = bpart; 00126 00127 SetBaseParticle(theBaseParticle); 00128 SetSecondaryParticle(G4Electron::Electron()); 00129 mass = theParticle->GetPDGMass(); 00130 ratio = electron_mass_c2/mass; 00131 00132 G4VEmModel* em = new G4BraggModel(); 00133 em->SetLowEnergyLimit(0.1*keV); 00134 eth = 2.0*MeV*mass/proton_mass_c2; 00135 em->SetHighEnergyLimit(eth); 00136 00137 flucModel = new G4UniversalFluctuation(); 00138 00139 AddEmModel(1, em, flucModel); 00140 G4VEmModel* em1 = new G4BetheBlochModel(); 00141 em1->SetLowEnergyLimit(eth); 00142 em1->SetHighEnergyLimit(100.0*TeV); 00143 AddEmModel(2, em1, flucModel); 00144 00145 SetStepFunction(0.2, 1.0*mm); 00146 00147 isInitialised = true; 00148 }
G4bool ExthIonisation::IsApplicable | ( | const G4ParticleDefinition & | p | ) | [inline] |
Definition at line 136 of file ExthIonisation.h.
00137 { 00138 return (p.GetPDGCharge() != 0.0 && 00139 p.GetPDGMass() > 10.0*MeV && 00140 !p.IsShortLived()); 00141 }
G4double ExthIonisation::MinPrimaryEnergy | ( | const G4ParticleDefinition * | p, | |
const G4Material * | , | |||
G4double | cut | |||
) | [inline] |
ExthIonisation& ExthIonisation::operator= | ( | const ExthIonisation & | right | ) | [private] |
void ExthIonisation::PrintInfo | ( | ) | [virtual] |
Definition at line 152 of file ExthIonisation.cxx.
00153 { 00154 G4cout << " Bether-Bloch model for Escaled > 2 MeV, " 00155 << "parametrisation of Bragg peak below, " 00156 << "Integral mode " << IsIntegral() 00157 << G4endl; 00158 }
std::vector< G4DynamicParticle * > * ExthIonisation::SecondariesPostStep | ( | G4VEmModel * | , | |
const G4MaterialCutsCouple * | , | |||
const G4DynamicParticle * | , | |||
G4double & | ||||
) | [inline, protected] |
Definition at line 156 of file ExthIonisation.h.
00161 { 00162 // return model->SampleSecondaries(couple, dp, tcut); 00163 return NULL; 00164 }//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
G4double ExthIonisation::eth [private] |
G4VEmFluctuationModel* ExthIonisation::flucModel [private] |
G4bool ExthIonisation::isInitialised [private] |
G4double ExthIonisation::mass [private] |
Definition at line 121 of file ExthIonisation.h.
Referenced by ExthIonisation(), InitialiseEnergyLossProcess(), and MinPrimaryEnergy().
G4double ExthIonisation::ratio [private] |
Definition at line 122 of file ExthIonisation.h.
Referenced by ExthIonisation(), and InitialiseEnergyLossProcess().
const G4ParticleDefinition* ExthIonisation::theBaseParticle [private] |
const G4ParticleDefinition* ExthIonisation::theParticle [private] |