Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4EmTableUtil.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//
27// Geant4 header G4EmTableUtil
28//
29// Author V.Ivanchenko 14.03.2022
30//
31// Utilities used at initialisation of EM physics
32//
33
34#ifndef G4EmTableUtil_h
35#define G4EmTableUtil_h 1
36
37#include "globals.hh"
38#include "G4PhysicsTable.hh"
40#include "G4VEmProcess.hh"
42#include "G4EmModelManager.hh"
43#include "G4LossTableBuilder.hh"
45#include "G4MscStepLimitType.hh"
46#include "G4DataVector.hh"
47
49{
50public:
51
52 static const G4DataVector*
54 const G4ParticleDefinition* part,
55 const G4ParticleDefinition* secPart,
56 G4EmModelManager* modelManager,
57 const G4double& maxKinEnergy,
58 G4int& secID, G4int& tripletID,
59 G4int& mainSec, const G4int& verb,
60 const G4bool& master);
61
62 static void BuildEmProcess(G4VEmProcess* proc,
63 const G4VEmProcess* masterProc,
64 const G4ParticleDefinition* firstPart,
65 const G4ParticleDefinition* part,
66 const G4int nModels, const G4int verb,
67 const G4bool master, const G4bool isLocked,
68 const G4bool toBuild, G4bool& baseMat);
69
70 static void BuildLambdaTable(G4VEmProcess* proc,
71 const G4ParticleDefinition* part,
72 G4EmModelManager* modelManager,
74 G4PhysicsTable* theLambdaTable,
75 G4PhysicsTable* theLambdaTablePrim,
76 const G4double minKinEnergy,
77 const G4double minKinEnergyPrim,
78 const G4double maxKinEnergy,
79 const G4double scale,
80 const G4int verbose,
81 const G4bool startFromNull,
82 const G4bool splineFlag);
83
84 static void BuildLambdaTable(G4VEnergyLossProcess* proc,
85 const G4ParticleDefinition* part,
86 G4EmModelManager* modelManager,
88 G4PhysicsTable* theLambdaTable,
89 const G4DataVector* theCuts,
90 const G4double minKinEnergy,
91 const G4double maxKinEnergy,
92 const G4double scale,
93 const G4int verbose,
94 const G4bool splineFlag);
95
96 static const G4ParticleDefinition* CheckIon(
98 const G4ParticleDefinition* part,
99 const G4ParticleDefinition* particle,
100 const G4int verboseLevel, G4bool& isIon);
101
102 static void UpdateModels(G4VEnergyLossProcess* proc,
103 G4EmModelManager* modelManager,
104 const G4double maxKinEnergy,
105 const G4int nModels,
106 G4int& secID, G4int& biasID,
107 G4int& mainSecondaries, const G4bool baseMat,
108 const G4bool isMaster, const G4bool useAGen);
109
111 const G4VEnergyLossProcess* masterProc,
112 const G4ParticleDefinition* part,
113 const G4int nModels);
114
115 static void BuildDEDXTable(G4VEnergyLossProcess* proc,
116 const G4ParticleDefinition* part,
117 G4EmModelManager* modelManager,
119 G4PhysicsTable* table,
120 const G4double minKinEnergy,
121 const G4double maxKinEnergy,
122 const G4int nbins,
123 const G4int verbose,
124 const G4EmTableType tType,
125 const G4bool splineFlag);
126
128 const G4ParticleDefinition& part,
129 G4EmModelManager* modelManager,
130 G4MscStepLimitType& stepLimit,
131 G4double& facrange,
132 G4bool& latDisplacement, G4bool& master,
133 G4bool& isIon, G4bool& baseMat);
134
135 static void BuildMscProcess(G4VMultipleScattering* proc,
136 const G4VMultipleScattering* masterProc,
137 const G4ParticleDefinition& part,
138 const G4ParticleDefinition* firstPart,
139 G4int nModels, G4bool master);
140
142 const G4ParticleDefinition* part,
143 const G4String& directory,
144 const G4int nModels, const G4int verb,
145 const G4bool ascii);
146
148 G4PhysicsTable*, const G4String& dir,
149 const G4String& tname, G4int verb,
150 G4bool ascii);
151
152 static G4bool RetrieveTable(G4VProcess* ptr,
153 const G4ParticleDefinition* part,
154 G4PhysicsTable* aTable,
155 const G4String& dir, const G4String& tname,
156 const G4int verb, const G4bool ascii,
157 const G4bool spline);
158
159};
160
161#endif
162
163
G4EmTableType
G4MscStepLimitType
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
static void BuildEmProcess(G4VEmProcess *proc, const G4VEmProcess *masterProc, const G4ParticleDefinition *firstPart, const G4ParticleDefinition *part, const G4int nModels, const G4int verb, const G4bool master, const G4bool isLocked, const G4bool toBuild, G4bool &baseMat)
static G4bool RetrieveTable(G4VProcess *ptr, const G4ParticleDefinition *part, G4PhysicsTable *aTable, const G4String &dir, const G4String &tname, const G4int verb, const G4bool ascii, const G4bool spline)
static void PrepareMscProcess(G4VMultipleScattering *proc, const G4ParticleDefinition &part, G4EmModelManager *modelManager, G4MscStepLimitType &stepLimit, G4double &facrange, G4bool &latDisplacement, G4bool &master, G4bool &isIon, G4bool &baseMat)
static void BuildMscProcess(G4VMultipleScattering *proc, const G4VMultipleScattering *masterProc, const G4ParticleDefinition &part, const G4ParticleDefinition *firstPart, G4int nModels, G4bool master)
static void UpdateModels(G4VEnergyLossProcess *proc, G4EmModelManager *modelManager, const G4double maxKinEnergy, const G4int nModels, G4int &secID, G4int &biasID, G4int &mainSecondaries, const G4bool baseMat, const G4bool isMaster, const G4bool useAGen)
static const G4DataVector * PrepareEmProcess(G4VEmProcess *proc, const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4EmModelManager *modelManager, const G4double &maxKinEnergy, G4int &secID, G4int &tripletID, G4int &mainSec, const G4int &verb, const G4bool &master)
static void BuildLocalElossProcess(G4VEnergyLossProcess *proc, const G4VEnergyLossProcess *masterProc, const G4ParticleDefinition *part, const G4int nModels)
static G4bool StoreTable(G4VProcess *, const G4ParticleDefinition *, G4PhysicsTable *, const G4String &dir, const G4String &tname, G4int verb, G4bool ascii)
static void BuildDEDXTable(G4VEnergyLossProcess *proc, const G4ParticleDefinition *part, G4EmModelManager *modelManager, G4LossTableBuilder *bld, G4PhysicsTable *table, const G4double minKinEnergy, const G4double maxKinEnergy, const G4int nbins, const G4int verbose, const G4EmTableType tType, const G4bool splineFlag)
static const G4ParticleDefinition * CheckIon(G4VEnergyLossProcess *proc, const G4ParticleDefinition *part, const G4ParticleDefinition *particle, const G4int verboseLevel, G4bool &isIon)
static G4bool StoreMscTable(G4VMultipleScattering *proc, const G4ParticleDefinition *part, const G4String &directory, const G4int nModels, const G4int verb, const G4bool ascii)
static void BuildLambdaTable(G4VEmProcess *proc, const G4ParticleDefinition *part, G4EmModelManager *modelManager, G4LossTableBuilder *bld, G4PhysicsTable *theLambdaTable, G4PhysicsTable *theLambdaTablePrim, const G4double minKinEnergy, const G4double minKinEnergyPrim, const G4double maxKinEnergy, const G4double scale, const G4int verbose, const G4bool startFromNull, const G4bool splineFlag)