Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4MicroElecCapture.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// $Id: G4ElectronCapture.hh,v 1.1 2010-08-31 11:23:58 vnivanch Exp $
27// GEANT4 tag $Name: not supported by cvs2svn $
28//
29//---------------------------------------------------------------------------
30//
31// ClassName: G4MicroElecCapture
32//
33// Description: The process to kill e- to save CPU
34//
35// Author: V.Ivanchenko 31 August 2010 modified and adapted to MicorElec by C. Inguimbert 321/01/2022
36//
37//----------------------------------------------------------------------------
38//
39// Class description:
40//
41// G4ElectronCapture allows to remove unwanted e- from simulation in
42// order to improve CPU performance. There are two parameters:
43//
44// 1) low energy threshold for e- kinetic energy (default 0)
45// 2) the name of G4Region where process is active
46//
47//
48// If an electron track is killed then energy deposition is added to the step
49//
50
51//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
52//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
54#ifndef MicroElecCapture_h
55#define MicroElecCapture_h 1
56
57#include "G4VDiscreteProcess.hh"
59#include "globals.hh"
62
63class G4Region;
64
65//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
66
68{
69public:
70
71 G4MicroElecCapture(const G4String& regName, G4double ekinlimit);
72
73 virtual ~G4MicroElecCapture();
74
76
77 void BuildPhysicsTable(const G4ParticleDefinition&) override;
78
80
81 void Initialise();
82
83 G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&) override;
84
87
88
89protected:
90
92
93private:
94
95 G4double G_Lindhard_Rob(G4double , G4int , G4int , G4int , G4int );
96
97 typedef std::map<G4String, G4MicroElecMaterialStructure*, std::less<G4String> > WorkFunctionTable;
98 WorkFunctionTable tableWF; //Table of all materials simulated
99
100 G4bool isInitialised;
101 G4double kinEnergyThreshold;
102 G4String regionName;
103 G4Region* region;
104 G4ParticleChangeForGamma fParticleChange;
105};
106
107//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
108
109#endif
110
G4ForceCondition
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &) override
G4MicroElecCapture(const G4String &regName, G4double ekinlimit)
G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *) override
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4MicroElecCapture & operator=(const G4MicroElecCapture &right)=delete
void SetKinEnergyLimit(G4double)
G4bool IsApplicable(const G4ParticleDefinition &) override
G4MicroElecCapture(const G4MicroElecCapture &)=delete