ExtMuIonisation Class Reference

#include <ExtMuIonisation.h>

List of all members.

Public Member Functions

 ExtMuIonisation (const G4String &name="ExtmuIoni")
virtual ~ExtMuIonisation ()
G4bool IsApplicable (const G4ParticleDefinition &p)
G4double MinPrimaryEnergy (const G4ParticleDefinition *p, const G4Material *, G4double cut)
std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &tcut)
void PrintInfo ()

Protected Member Functions

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

Private Member Functions

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

Private Attributes

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


Detailed Description

Definition at line 89 of file ExtMuIonisation.h.


Constructor & Destructor Documentation

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

Definition at line 91 of file ExtMuIonisation.cxx.

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]

Definition at line 106 of file ExtMuIonisation.cxx.

00107 {}

ExtMuIonisation::ExtMuIonisation ( const ExtMuIonisation  )  [private]


Member Function Documentation

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

Definition at line 111 of file ExtMuIonisation.cxx.

References flucModel, isInitialised, mass, ratio, theBaseParticle, and theParticle.

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]

Definition at line 98 of file ExtMuIonisation.h.

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

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

Definition at line 148 of file ExtMuIonisation.h.

References mass, ratio, and x.

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]

void ExtMuIonisation::PrintInfo (  ) 

Definition at line 144 of file ExtMuIonisation.cxx.

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 
) [inline]

Definition at line 195 of file ExtMuIonisation.h.

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]

Definition at line 138 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess().

G4ParticleChangeForLoss* ExtMuIonisation::fParticleChange [private]

Definition at line 140 of file ExtMuIonisation.h.

G4bool ExtMuIonisation::isInitialised [private]

Definition at line 142 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess().

G4double ExtMuIonisation::mass [private]

Definition at line 133 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess(), and MinPrimaryEnergy().

G4double ExtMuIonisation::ratio [private]

Definition at line 134 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess(), and MinPrimaryEnergy().

const G4ParticleDefinition* ExtMuIonisation::theBaseParticle [private]

Definition at line 137 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess().

const G4ParticleDefinition* ExtMuIonisation::theParticle [private]

Definition at line 136 of file ExtMuIonisation.h.

Referenced by InitialiseEnergyLossProcess().


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