BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
ExtMuIonisation Class Reference

#include <ExtMuIonisation.h>

+ Inheritance diagram for ExtMuIonisation:

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 *)
 

Detailed Description

Definition at line 91 of file ExtMuIonisation.h.

Constructor & Destructor Documentation

◆ ExtMuIonisation()

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

Definition at line 92 of file ExtMuIonisation.cxx.

93 : G4VEnergyLossProcess(name),
94 theParticle(0),
95 theBaseParticle(0),
96 isInitialised(false)
97{
98 SetDEDXBinning(120);
99 //SetLambdaBinning(120);
100 SetMinKinEnergy(0.1*keV);
101 SetMaxKinEnergy(100.0*TeV);
102 SetLossFluctuations(false);
103}

◆ ~ExtMuIonisation()

ExtMuIonisation::~ExtMuIonisation ( )
virtual

Definition at line 107 of file ExtMuIonisation.cxx.

108{}

Member Function Documentation

◆ InitialiseEnergyLossProcess()

void ExtMuIonisation::InitialiseEnergyLossProcess ( const G4ParticleDefinition * part,
const G4ParticleDefinition * bpart )
protectedvirtual

Definition at line 112 of file ExtMuIonisation.cxx.

114{
115 if(!isInitialised)
116 {
117 theParticle = part;
118 theBaseParticle = bpart;
119
120 mass = theParticle->GetPDGMass();
121 SetSecondaryParticle(G4Electron::Electron());
122
123 flucModel = new G4UniversalFluctuation();
124
125 G4VEmModel* em = new G4BraggModel();
126 em->SetLowEnergyLimit(0.1*keV);
127 em->SetHighEnergyLimit(0.2*MeV);
128 AddEmModel(1, em, flucModel);
129 G4VEmModel* em1 = new G4BetheBlochModel();
130 em1->SetLowEnergyLimit(0.2*MeV);
131 em1->SetHighEnergyLimit(1.0*GeV);
132 AddEmModel(2, em1, flucModel);
133 G4VEmModel* em2 = new G4MuBetheBlochModel();
134 em2->SetLowEnergyLimit(1.0*GeV);
135 em2->SetHighEnergyLimit(100.0*TeV);
136 AddEmModel(3, em2, flucModel);
137 SetStepFunction(0.2, 1.0*mm);
138 ratio = electron_mass_c2/mass;
139 isInitialised = true;
140 }
141}

◆ IsApplicable()

G4bool ExtMuIonisation::IsApplicable ( const G4ParticleDefinition & p)
inline

Definition at line 100 of file ExtMuIonisation.h.

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

◆ MinPrimaryEnergy()

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

Definition at line 150 of file ExtMuIonisation.h.

153{
154 G4double x = 0.5*cut/electron_mass_c2;
155 G4double g = x*ratio + sqrt((1. + x)*(1. + x*ratio*ratio));
156 return mass*(g - 1.0);
157}
Double_t x[10]

◆ PrintInfo()

void ExtMuIonisation::PrintInfo ( )

Definition at line 145 of file ExtMuIonisation.cxx.

146{
147 G4cout << " Bether-Bloch model for E > 0.2 MeV, "
148 << "parametrisation of Bragg peak below, "
149 << G4endl;
150 G4cout << " radiative corrections for E > 1 GeV" << G4endl;
151}

◆ SecondariesPostStep()

std::vector< G4DynamicParticle * > * ExtMuIonisation::SecondariesPostStep ( G4VEmModel * model,
const G4MaterialCutsCouple * couple,
const G4DynamicParticle * dp,
G4double & tcut )
inline

Definition at line 197 of file ExtMuIonisation.h.

202{
203// return model->SampleSecondaries(couple, dp, tcut);
204 return NULL;//No secondaries, for Track Extrapolation.(Wang L.L.)
205}
#define NULL

The documentation for this class was generated from the following files: