BOSS 7.0.8
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 88 of file ExthIonisation.h.

Constructor & Destructor Documentation

◆ ExthIonisation()

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

Definition at line 93 of file ExthIonisation.cxx.

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

◆ ~ExthIonisation()

ExthIonisation::~ExthIonisation ( )

Definition at line 111 of file ExthIonisation.cxx.

112{}

Member Function Documentation

◆ InitialiseEnergyLossProcess()

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

Definition at line 116 of file ExthIonisation.cxx.

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

◆ IsApplicable()

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

Definition at line 136 of file ExthIonisation.h.

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

◆ MinPrimaryEnergy()

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

Definition at line 145 of file ExthIonisation.h.

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

◆ PrintInfo()

void ExthIonisation::PrintInfo ( )
virtual

Definition at line 152 of file ExthIonisation.cxx.

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

◆ SecondariesPostStep()

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

Definition at line 156 of file ExthIonisation.h.

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

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