G4MuIonisation Class Reference

#include <G4MuIonisation.hh>

Inheritance diagram for G4MuIonisation:

G4VEnergyLossProcess G4VContinuousDiscreteProcess G4VProcess

Public Member Functions

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

Protected Member Functions

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

Detailed Description

Definition at line 85 of file G4MuIonisation.hh.


Constructor & Destructor Documentation

G4MuIonisation::G4MuIonisation ( const G4String name = "muIoni"  ) 

Definition at line 98 of file G4MuIonisation.cc.

References G4Electron::Electron(), fIonisation, G4VProcess::SetProcessSubType(), and G4VEnergyLossProcess::SetSecondaryParticle().

00099   : G4VEnergyLossProcess(name),
00100     theParticle(0),
00101     theBaseParticle(0),
00102     isInitialised(false)
00103 {
00104   mass = ratio = 0;
00105   //  SetStepFunction(0.2, 1*mm);
00106   //SetIntegral(true);
00107   //SetVerboseLevel(1);
00108   SetProcessSubType(fIonisation);
00109   SetSecondaryParticle(G4Electron::Electron());
00110 }

G4MuIonisation::~G4MuIonisation (  )  [virtual]

Definition at line 114 of file G4MuIonisation.cc.

00115 {}


Member Function Documentation

void G4MuIonisation::InitialiseEnergyLossProcess ( const G4ParticleDefinition ,
const G4ParticleDefinition  
) [protected, virtual]

Implements G4VEnergyLossProcess.

Definition at line 137 of file G4MuIonisation.cc.

References G4VEnergyLossProcess::AddEmModel(), G4VEnergyLossProcess::EmModel(), G4VEnergyLossProcess::FluctModel(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4VEnergyLossProcess::MaxKinEnergy(), G4VEnergyLossProcess::MinKinEnergy(), G4VEnergyLossProcess::SetEmModel(), G4VEnergyLossProcess::SetFluctModel(), G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().

00139 {
00140   if(!isInitialised) {
00141 
00142     theParticle = part;
00143     theBaseParticle = bpart;
00144 
00145     mass = theParticle->GetPDGMass();
00146     G4double q = theParticle->GetPDGCharge();
00147     G4double elow = 0.2*MeV;
00148 
00149     // Bragg peak model
00150     if (!EmModel(1)) {
00151       if(q > 0.0) { SetEmModel(new G4BraggModel(),1); }
00152       else { SetEmModel(new G4ICRU73QOModel(),1); }
00153     }
00154     EmModel(1)->SetLowEnergyLimit(MinKinEnergy());
00155     EmModel(1)->SetHighEnergyLimit(elow); 
00156     AddEmModel(1, EmModel(1), new G4IonFluctuations());
00157 
00158     // high energy fluctuation model
00159     if (!FluctModel()) { SetFluctModel(new G4UniversalFluctuation()); }
00160 
00161     // moderate energy model
00162     if (!EmModel(2)) { SetEmModel(new G4BetheBlochModel(),2); }
00163     EmModel(2)->SetLowEnergyLimit(elow);
00164     EmModel(2)->SetHighEnergyLimit(1.0*GeV);
00165     AddEmModel(2, EmModel(2), FluctModel());
00166 
00167     // high energy model
00168     if (!EmModel(3)) { SetEmModel(new G4MuBetheBlochModel(),3); }
00169     EmModel(3)->SetLowEnergyLimit(1.0*GeV);
00170     EmModel(3)->SetHighEnergyLimit(MaxKinEnergy());
00171     AddEmModel(3, EmModel(3), FluctModel());
00172 
00173     ratio = electron_mass_c2/mass;
00174     isInitialised = true;
00175   }
00176 }

G4bool G4MuIonisation::IsApplicable ( const G4ParticleDefinition p  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 119 of file G4MuIonisation.cc.

References G4ParticleDefinition::GetPDGCharge(), and G4ParticleDefinition::GetPDGMass().

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

G4double G4MuIonisation::MinPrimaryEnergy ( const G4ParticleDefinition p,
const G4Material ,
G4double  cut 
) [virtual]

Reimplemented from G4VEnergyLossProcess.

Definition at line 126 of file G4MuIonisation.cc.

References G4InuclParticleNames::gam.

00129 {
00130   G4double x = 0.5*cut/electron_mass_c2;
00131   G4double gam = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));
00132   return mass*(gam - 1.0);
00133 }

void G4MuIonisation::PrintInfo (  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 180 of file G4MuIonisation.cc.

00181 {}


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:32 2013 for Geant4 by  doxygen 1.4.7