BOSS 8.0.0
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 SetDEDXBinning( 120 );
101 // SetLambdaBinning(120);
102 SetMinKinEnergy( 0.1 * keV );
103 SetMaxKinEnergy( 100.0 * TeV );
104 SetVerboseLevel( 0 );
105 SetLossFluctuations( false );
106 mass = 0.0;
107 ratio = 0.0;
108}

◆ ~ExthIonisation()

ExthIonisation::~ExthIonisation ( )

Definition at line 112 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.

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

◆ IsApplicable()

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

Definition at line 132 of file ExthIonisation.h.

132 {
133 return ( p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0 * MeV && !p.IsShortLived() );
134}

◆ MinPrimaryEnergy()

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

Definition at line 138 of file ExthIonisation.h.

139 {
140 G4double x = 0.5 * cut / electron_mass_c2;
141 G4double y = electron_mass_c2 / mass;
142 G4double g = x * y + sqrt( ( 1. + x ) * ( 1. + x * y * y ) );
143 return mass * ( g - 1.0 );
144}
Double_t x[10]
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared cut
Definition KarFin.h:27

◆ PrintInfo()

void ExthIonisation::PrintInfo ( )
virtual

Definition at line 151 of file ExthIonisation.cxx.

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

◆ SecondariesPostStep()

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

Definition at line 147 of file ExthIonisation.h.

148 {
149 // return model->SampleSecondaries(couple, dp, tcut);
150 return NULL;
151} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....

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