Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4EmSaturation.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$
27//
28//
29#ifndef G4EmSaturation_h
30#define G4EmSaturation_h 1
31
32// -------------------------------------------------------------
33//
34// GEANT4 Class header file
35//
36//
37// File name: G4EmSaturation
38//
39// Author: Vladimir Ivanchenko
40//
41// Creation date: 18.02.2008
42//
43// Modifications:
44//
45//
46// Class Description:
47// Compution on saturation effect, which reduce visible energy
48// deposition at the step. Default implementation takes into
49// account Birks effect. Birks coefficients for some materials
50// from G4 database on materials are provided
51//
52// -------------------------------------------------------------
53
54//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
55//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
56
57#include "globals.hh"
58#include "G4Step.hh"
60#include <vector>
61
62//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
63
65class G4NistManager;
67class G4Material;
68
70{
71public:
72
74 virtual ~G4EmSaturation();
75
78 G4double length,
79 G4double edepTotal,
80 G4double edepNIEL = 0.0);
81
83
84 // find and Birks coefficient
86
87 inline void SetVerbose(G4int);
88
89 // dump coeffitients used in run time
91
92 // dump G4 list
94
95private:
96
97 // hide assignment operator
98 G4EmSaturation & operator=(const G4EmSaturation &right);
100
101 G4double FindBirksCoefficient(const G4Material*);
102
103 void Initialise();
104
105 const G4ParticleDefinition* electron;
106 const G4ParticleDefinition* proton;
107 G4LossTableManager* manager;
108 G4NistManager* nist;
109
110 // cash
111 const G4Material* curMaterial;
112 G4double curBirks;
113 G4double curRatio;
114 G4double curChargeSq;
115
116 G4int verbose;
117 G4int nMaterials;
118 G4int nG4Birks;
119
120 // list of materials used in run time
121 std::vector<const G4Material*> matPointers;
122 std::vector<G4String> matNames;
123 std::vector<G4double> massFactors;
124 std::vector<G4double> effCharges;
125
126 // list of G4 materials
127 std::vector<G4double> g4MatData;
128 std::vector<G4String> g4MatNames;
129
130};
131
133{
134 verbose = val;
135}
136
138 const G4Step* step)
139{
140 G4Track* track = step->GetTrack();
142 track->GetMaterialCutsCouple(),
143 step->GetStepLength(),
144 step->GetTotalEnergyDeposit(),
146}
147
148#endif
149
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
virtual ~G4EmSaturation()
void SetVerbose(G4int)
G4double VisibleEnergyDeposition(const G4ParticleDefinition *, const G4MaterialCutsCouple *, G4double length, G4double edepTotal, G4double edepNIEL=0.0)
G4double FindG4BirksCoefficient(const G4Material *)
void DumpBirksCoefficients()
void DumpG4BirksCoefficients()
Definition: G4Step.hh:78
G4Track * GetTrack() const
G4double GetNonIonizingEnergyDeposit() const
G4double GetStepLength() const
G4double GetTotalEnergyDeposit() const
const G4ParticleDefinition * GetParticleDefinition() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const