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

ExtMuIonisation Class Reference

#include <ExtMuIonisation.h>

List of all members.

Public Member Functions

 ExtMuIonisation (const G4String &name="ExtmuIoni")
 ExtMuIonisation (const G4String &name="ExtmuIoni")
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)
void PrintInfo ()
void PrintInfo ()
std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &tcut)
std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &tcut)
virtual ~ExtMuIonisation ()
virtual ~ExtMuIonisation ()

Protected Member Functions

virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)
virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)

Private Member Functions

 ExtMuIonisation (const ExtMuIonisation &)
 ExtMuIonisation (const ExtMuIonisation &)
ExtMuIonisationoperator= (const ExtMuIonisation &right)
ExtMuIonisationoperator= (const ExtMuIonisation &right)

Private Attributes

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


Constructor & Destructor Documentation

ExtMuIonisation::ExtMuIonisation const G4String &  name = "ExtmuIoni"  ) 
 

00092   : G4VEnergyLossProcess(name),
00093     theParticle(0),
00094     theBaseParticle(0),
00095     isInitialised(false)
00096 {
00097   SetDEDXBinning(120);
00098   SetLambdaBinning(120);
00099   SetMinKinEnergy(0.1*keV);
00100   SetMaxKinEnergy(100.0*TeV);
00101   SetLossFluctuations(false);
00102 }

ExtMuIonisation::~ExtMuIonisation  )  [virtual]
 

00107 {}

ExtMuIonisation::ExtMuIonisation const ExtMuIonisation  )  [private]
 

ExtMuIonisation::ExtMuIonisation const G4String &  name = "ExtmuIoni"  ) 
 

virtual ExtMuIonisation::~ExtMuIonisation  )  [virtual]
 

ExtMuIonisation::ExtMuIonisation const ExtMuIonisation  )  [private]
 


Member Function Documentation

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

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

00113 {
00114         if(!isInitialised) 
00115         {
00116                 theParticle = part;
00117                 theBaseParticle = bpart;
00118 
00119                 mass = theParticle->GetPDGMass();
00120                 SetSecondaryParticle(G4Electron::Electron());
00121 
00122                 flucModel = new G4UniversalFluctuation();
00123                 
00124                 G4VEmModel* em = new G4BraggModel();
00125                 em->SetLowEnergyLimit(0.1*keV);
00126                 em->SetHighEnergyLimit(0.2*MeV);
00127                 AddEmModel(1, em, flucModel);
00128                 G4VEmModel* em1 = new G4BetheBlochModel();
00129                 em1->SetLowEnergyLimit(0.2*MeV);
00130                 em1->SetHighEnergyLimit(1.0*GeV);
00131                 AddEmModel(2, em1, flucModel);
00132                 G4VEmModel* em2 = new G4MuBetheBlochModel();
00133                 em2->SetLowEnergyLimit(1.0*GeV);
00134                 em2->SetHighEnergyLimit(100.0*TeV);
00135                 AddEmModel(3, em2, flucModel);
00136                 SetStepFunction(0.2, 1.0*mm);
00137                 ratio = electron_mass_c2/mass;
00138                 isInitialised = true;
00139         }
00140 }

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

00099     {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);};

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

00099     {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);};

G4double ExtMuIonisation::MinPrimaryEnergy const G4ParticleDefinition *  p,
const G4Material *  ,
G4double  cut
 

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

00151 {
00152   G4double x = 0.5*cut/electron_mass_c2;
00153   G4double g = x*ratio + sqrt((1. + x)*(1. + x*ratio*ratio));
00154   return mass*(g - 1.0);
00155 }

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

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

void ExtMuIonisation::PrintInfo  ) 
 

void ExtMuIonisation::PrintInfo  ) 
 

00145 {
00146   G4cout << "      Bether-Bloch model for E > 0.2 MeV, "
00147          << "parametrisation of Bragg peak below, "
00148          << G4endl;
00149   G4cout << "      radiative corrections for E > 1 GeV" << G4endl;
00150 }

std::vector<G4DynamicParticle*>* ExtMuIonisation::SecondariesPostStep G4VEmModel *  ,
const G4MaterialCutsCouple *  ,
const G4DynamicParticle *  ,
G4double &  tcut
 

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

00200 {
00201 //  return model->SampleSecondaries(couple, dp, tcut);
00202   return NULL;//No secondaries, for Track Extrapolation.(Wang L.L.)
00203 }


Member Data Documentation

G4VEmFluctuationModel* ExtMuIonisation::flucModel [private]
 

G4VEmFluctuationModel* ExtMuIonisation::flucModel [private]
 

G4ParticleChangeForLoss* ExtMuIonisation::fParticleChange [private]
 

G4ParticleChangeForLoss* ExtMuIonisation::fParticleChange [private]
 

G4bool ExtMuIonisation::isInitialised [private]
 

G4double ExtMuIonisation::mass [private]
 

G4double ExtMuIonisation::ratio [private]
 

const G4ParticleDefinition* ExtMuIonisation::theBaseParticle [private]
 

const G4ParticleDefinition* ExtMuIonisation::theBaseParticle [private]
 

const G4ParticleDefinition* ExtMuIonisation::theParticle [private]
 

const G4ParticleDefinition* ExtMuIonisation::theParticle [private]
 


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