Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ExthIonisation Class Reference

#include <ExthIonisation.h>

List of all members.

Public Member Functions

 ExthIonisation (const G4String &name="ExthIoni")
 ExthIonisation (const G4String &name="ExthIoni")
G4bool IsApplicable (const G4ParticleDefinition &p)
G4bool IsApplicable (const G4ParticleDefinition &p)
G4double MinPrimaryEnergy (const G4ParticleDefinition *p, const G4Material *, G4double cut)
G4double MinPrimaryEnergy (const G4ParticleDefinition *p, const G4Material *, G4double cut)
virtual void PrintInfo ()
virtual void PrintInfo ()
 ~ExthIonisation ()
 ~ExthIonisation ()

Protected Member Functions

virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)
virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)
std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &)
std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &)

Private Member Functions

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

Private Attributes

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


Constructor & Destructor Documentation

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

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  ) 
 

00112 {}

ExthIonisation::ExthIonisation const ExthIonisation  )  [private]
 

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

ExthIonisation::~ExthIonisation  ) 
 

ExthIonisation::ExthIonisation const ExthIonisation  )  [private]
 


Member Function Documentation

virtual void ExthIonisation::InitialiseEnergyLossProcess const G4ParticleDefinition *  ,
const G4ParticleDefinition * 
[protected, virtual]
 

void ExthIonisation::InitialiseEnergyLossProcess const G4ParticleDefinition *  ,
const G4ParticleDefinition * 
[protected, virtual]
 

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  ) 
 

G4bool ExthIonisation::IsApplicable const G4ParticleDefinition &  p  )  [inline]
 

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
 

G4double ExthIonisation::MinPrimaryEnergy const G4ParticleDefinition *  p,
const G4Material *  ,
G4double  cut
[inline]
 

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]
 

ExthIonisation& ExthIonisation::operator= const ExthIonisation right  )  [private]
 

virtual void ExthIonisation::PrintInfo  )  [virtual]
 

void ExthIonisation::PrintInfo  )  [virtual]
 

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 & 
[protected]
 

std::vector< G4DynamicParticle * > * ExthIonisation::SecondariesPostStep G4VEmModel *  ,
const G4MaterialCutsCouple *  ,
const G4DynamicParticle *  ,
G4double & 
[inline, protected]
 

00161 {
00162 //  return model->SampleSecondaries(couple, dp, tcut);
00163   return NULL;
00164 }//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....


Member Data Documentation

G4double ExthIonisation::eth [private]
 

G4VEmFluctuationModel* ExthIonisation::flucModel [private]
 

G4VEmFluctuationModel* ExthIonisation::flucModel [private]
 

G4bool ExthIonisation::isInitialised [private]
 

G4double ExthIonisation::mass [private]
 

G4double ExthIonisation::ratio [private]
 

const G4ParticleDefinition* ExthIonisation::theBaseParticle [private]
 

const G4ParticleDefinition* ExthIonisation::theBaseParticle [private]
 

const G4ParticleDefinition* ExthIonisation::theParticle [private]
 

const G4ParticleDefinition* ExthIonisation::theParticle [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:14:47 2011 for BOSS6.5.5 by  doxygen 1.3.9.1