G4MuElecInelastic Class Reference

#include <G4MuElecInelastic.hh>

Inheritance diagram for G4MuElecInelastic:

G4VEmProcess G4VDiscreteProcess G4VProcess

Public Member Functions

 G4MuElecInelastic (const G4String &processName="MuElecIonisation", G4ProcessType type=fElectromagnetic)
virtual ~G4MuElecInelastic ()
virtual G4bool IsApplicable (const G4ParticleDefinition &)
virtual void PrintInfo ()

Protected Member Functions

virtual void InitialiseProcess (const G4ParticleDefinition *)

Detailed Description

Definition at line 56 of file G4MuElecInelastic.hh.


Constructor & Destructor Documentation

G4MuElecInelastic::G4MuElecInelastic ( const G4String processName = "MuElecIonisation",
G4ProcessType  type = fElectromagnetic 
)

Definition at line 51 of file G4MuElecInelastic.cc.

References G4VProcess::SetProcessSubType().

00052                      :G4VEmProcess (processName, type),
00053     isInitialised(false)
00054 {
00055   SetProcessSubType(53);
00056 }

G4MuElecInelastic::~G4MuElecInelastic (  )  [virtual]

Definition at line 60 of file G4MuElecInelastic.cc.

00061 {}


Member Function Documentation

void G4MuElecInelastic::InitialiseProcess ( const G4ParticleDefinition  )  [protected, virtual]

Implements G4VEmProcess.

Definition at line 74 of file G4MuElecInelastic.cc.

References G4VEmProcess::AddEmModel(), G4ParticleDefinition::GetParticleName(), G4VEmProcess::Model(), G4VEmProcess::SetBuildTableFlag(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), and G4VEmProcess::SetModel().

00075 {
00076   if(!isInitialised) 
00077   {
00078     isInitialised = true;
00079     SetBuildTableFlag(false);
00080     G4String name = p->GetParticleName();
00081 
00082     if(name == "e-")
00083     {
00084       if(!Model()) SetModel(new G4MuElecInelasticModel);
00085       Model()->SetLowEnergyLimit(16.7*eV);
00086       Model()->SetHighEnergyLimit(100*MeV);
00087 
00088       AddEmModel(1, Model());   
00089     }
00090 
00091     else if(name == "proton")
00092     {
00093       if(!Model()) SetModel(new G4MuElecInelasticModel);
00094       Model()->SetLowEnergyLimit(50.*keV);
00095       Model()->SetHighEnergyLimit(1*GeV);
00096 
00097       AddEmModel(1, Model());   
00098     }
00099 
00100     else
00101     {
00102       if(!Model()) SetModel(new G4MuElecInelasticModel);
00103       Model()->SetLowEnergyLimit(50.*keV);
00104       Model()->SetHighEnergyLimit(100.*GeV);
00105 
00106       AddEmModel(1, Model());   
00107     }
00108   } 
00109 }

G4bool G4MuElecInelastic::IsApplicable ( const G4ParticleDefinition  )  [virtual]

Implements G4VEmProcess.

Definition at line 65 of file G4MuElecInelastic.cc.

References G4Electron::Electron(), G4ParticleDefinition::GetParticleType(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::IsShortLived(), and G4Proton::Proton().

00066 {
00067   return (&p == G4Electron::Electron() ||
00068         &p == G4Proton::Proton()  || 
00069         (p.GetPDGCharge() != 0.0 && !p.IsShortLived() && p.GetParticleType() == "nucleus"));
00070 }

void G4MuElecInelastic::PrintInfo (  )  [virtual]

Implements G4VEmProcess.

Definition at line 113 of file G4MuElecInelastic.cc.

References G4cout, G4endl, G4VEmModel::GetName(), and G4VEmProcess::Model().

00114 {
00115   if (Model(2))
00116   {
00117     G4cout
00118       << " Total cross sections computed from " 
00119       << Model(1)->GetName() 
00120       << " and "
00121       << Model(2)->GetName() 
00122       << " models"
00123       << G4endl;
00124   } 
00125   else
00126   {
00127     G4cout
00128       << " Total cross sections computed from " 
00129       << Model()->GetName() 
00130       << G4endl;
00131   }
00132 }         


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