ExthIonisation Class Reference

#include <ExthIonisation.h>

List of all members.

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

ExthIonisationoperator= (const ExthIonisation &right)
 ExthIonisation (const ExthIonisation &)

Private Attributes

G4double mass
G4double ratio
const G4ParticleDefinition * theParticle
const G4ParticleDefinition * theBaseParticle
G4VEmFluctuationModel * flucModel
G4bool isInitialised
G4double eth


Detailed Description

Definition at line 88 of file ExthIonisation.h.


Constructor & Destructor Documentation

ExthIonisation::ExthIonisation ( const G4String &  name = "ExthIoni"  ) 

Definition at line 93 of file ExthIonisation.cxx.

References mass, and ratio.

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 (  ) 

Definition at line 111 of file ExthIonisation.cxx.

00112 {}

ExthIonisation::ExthIonisation ( const ExthIonisation  )  [private]


Member Function Documentation

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]

Definition at line 145 of file ExthIonisation.h.

References mass, and x.

00148 {
00149   G4double x = 0.5*cut/electron_mass_c2;
00150   G4double y = electron_mass_c2/mass;
00151   G4double g = x*y + sqrt((1. + x)*(1. + x*y*y));
00152   return mass*(g - 1.0);
00153 }

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....


Member Data Documentation

G4double ExthIonisation::eth [private]

Definition at line 130 of file ExthIonisation.h.

Referenced by InitialiseEnergyLossProcess().

G4VEmFluctuationModel* ExthIonisation::flucModel [private]

Definition at line 126 of file ExthIonisation.h.

Referenced by InitialiseEnergyLossProcess().

G4bool ExthIonisation::isInitialised [private]

Definition at line 128 of file ExthIonisation.h.

Referenced by InitialiseEnergyLossProcess().

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]

Definition at line 125 of file ExthIonisation.h.

Referenced by InitialiseEnergyLossProcess().

const G4ParticleDefinition* ExthIonisation::theParticle [private]

Definition at line 124 of file ExthIonisation.h.

Referenced by InitialiseEnergyLossProcess().


Generated on Tue Nov 29 23:19:34 2016 for BOSS_7.0.2 by  doxygen 1.4.7