BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
ExthIonisation Class Reference

#include <ExthIonisation.h>

+ Inheritance diagram for ExthIonisation:

Public Member Functions

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

Protected Member Functions

std::vector< G4DynamicParticle * > * SecondariesPostStep (G4VEmModel *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &)
 
virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)
 

Detailed Description

Definition at line 90 of file ExthIonisation.h.

Constructor & Destructor Documentation

◆ ExthIonisation()

ExthIonisation::ExthIonisation ( const G4String & name = "ExthIoni")

Definition at line 95 of file ExthIonisation.cxx.

96 : G4VEnergyLossProcess(name),
97 theParticle(0),
98 theBaseParticle(0),
99 isInitialised(false)
100{
101 SetDEDXBinning(120);
102 //SetLambdaBinning(120);
103 SetMinKinEnergy(0.1*keV);
104 SetMaxKinEnergy(100.0*TeV);
105 SetVerboseLevel(0);
106 SetLossFluctuations(false);
107 mass = 0.0;
108 ratio = 0.0;
109}

◆ ~ExthIonisation()

ExthIonisation::~ExthIonisation ( )

Definition at line 113 of file ExthIonisation.cxx.

114{}

Member Function Documentation

◆ InitialiseEnergyLossProcess()

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

Definition at line 118 of file ExthIonisation.cxx.

120{
121 if(isInitialised) return;
122
123 theParticle = part;
124
125 if(part == bpart || part == G4Proton::Proton()) theBaseParticle = 0;
126 else if(bpart == 0) theBaseParticle = G4Proton::Proton();
127 else theBaseParticle = bpart;
128
129 SetBaseParticle(theBaseParticle);
130 SetSecondaryParticle(G4Electron::Electron());
131 mass = theParticle->GetPDGMass();
132 ratio = electron_mass_c2/mass;
133
134 G4VEmModel* em = new G4BraggModel();
135 em->SetLowEnergyLimit(0.1*keV);
136 eth = 2.0*MeV*mass/proton_mass_c2;
137 em->SetHighEnergyLimit(eth);
138
139 flucModel = new G4UniversalFluctuation();
140
141 AddEmModel(1, em, flucModel);
142 G4VEmModel* em1 = new G4BetheBlochModel();
143 em1->SetLowEnergyLimit(eth);
144 em1->SetHighEnergyLimit(100.0*TeV);
145 AddEmModel(2, em1, flucModel);
146
147 SetStepFunction(0.2, 1.0*mm);
148
149 isInitialised = true;
150}

◆ IsApplicable()

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

Definition at line 138 of file ExthIonisation.h.

139{
140 return (p.GetPDGCharge() != 0.0 &&
141 p.GetPDGMass() > 10.0*MeV &&
142 !p.IsShortLived());
143}

◆ MinPrimaryEnergy()

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

Definition at line 147 of file ExthIonisation.h.

150{
151 G4double x = 0.5*cut/electron_mass_c2;
152 G4double y = electron_mass_c2/mass;
153 G4double g = x*y + sqrt((1. + x)*(1. + x*y*y));
154 return mass*(g - 1.0);
155}
Double_t x[10]
double y[1000]

◆ PrintInfo()

void ExthIonisation::PrintInfo ( )
virtual

Definition at line 154 of file ExthIonisation.cxx.

155{
156 G4cout << " Bether-Bloch model for Escaled > 2 MeV, "
157 << "parametrisation of Bragg peak below, "
158 << "Integral mode " << IsIntegral()
159 << G4endl;
160}

◆ SecondariesPostStep()

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

Definition at line 158 of file ExthIonisation.h.

163{
164// return model->SampleSecondaries(couple, dp, tcut);
165 return NULL;
166}//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#define NULL

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