Garfield++ 5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
EnTransfCS.h
Go to the documentation of this file.
1#ifndef ENTRANFCS_H
2#define ENTRANFCS_H
3
5
6namespace Heed {
7
8#define EXCLUDE_A_VALUES // exclude absorption values
9
10/// The PAI cross section of energy transfers from charged particle to media.
11/// The particle has fixed parameters (energy, speed, etc.), which
12/// are not affected by energy transfers, since they are considered
13/// too small compared with the particle energy.
14///
15/// 2003, I. Smirnov
16
18 public:
19 /// Default constructor
20 EnTransfCS() = default;
21 /// Constructor
22 EnTransfCS(double fparticle_mass, double fgamma_1, bool fs_primary_electron,
23 HeedMatterDef* fhmd, double fparticle_charge = 1.,
24 const bool debug = false);
25
26 void print(std::ostream& file, int l) const;
27 EnTransfCS* copy() const { return new EnTransfCS(*this); }
28
29 /// Flag indicating whether the calculation was successful.
30 bool m_ok = true;
31
32 /// Particle mass [MeV]
33 double particle_mass = 0.;
34 /// Charge in units of electron charge (used square, sign does not matter).
35 double particle_charge = 1.;
36
37 /// Lorentz factor - 1 (the best dimensionless measurement of speed).
38 double gamma_1 = 0.;
39
40 /// Max. energy transfer [MeV]
41 double max_etransf = 0.;
42 /// Flag controlling the form of Rutherford scattering.
43 /// For our purposes it is good to have simple form,
44 /// so this variable is initialized to 1.
45 /// Simple form means that there are two terms.
46 /// The third term is assumed zero.
47 bool s_simple_form = true;
48 /// Flag indicating whether the primary particle is an electron.
49 bool s_primary_electron = false;
50
51 HeedMatterDef* hmd = nullptr;
52
53 /// Integrated (ionization) cross-section
54 double quanC = 0.;
55 /// First moment (mean restricted energy loss) [MeV]
56 double meanC = 0.;
57 /// First moment with additional tail to max. kinematically allowed transfer,
58 /// calculated only for heavy particles (integral for electrons non-trivial).
59 double meanC1 = 0.;
60
61#ifndef EXCLUDE_A_VALUES
62 /// Integrated (absorption) cross-section
63 double quanC_a = 0.;
64 double meanC1_a = 0.;
65 double meanC_a = 0.;
66#endif
67
68 /// Integral, normalised to unity for each atom, shell and energy.
69 std::vector<std::vector<std::vector<double> > > fadda;
70 /// Number of collisions / cm, for each atom and shell.
71 std::vector<std::vector<double> > quan;
72#ifndef EXCLUDE_A_VALUES
73 // Integral (total absorption), normalised to unity.
74 std::vector<std::vector<std::vector<double> > > fadda_a;
75 /// Number of collisions / cm (total absorption), for each atom and shell.
76 std::vector<std::vector<double> > quan_a;
77#endif
78
79 std::vector<double> length_y0;
80
81 // Prefactor (without thickness dependence) of the Highland formula.
82 double sigma_ms = 0.;
83};
84}
85
86#endif
std::vector< std::vector< double > > quan
Number of collisions / cm, for each atom and shell.
Definition EnTransfCS.h:71
double particle_charge
Charge in units of electron charge (used square, sign does not matter).
Definition EnTransfCS.h:35
double gamma_1
Lorentz factor - 1 (the best dimensionless measurement of speed).
Definition EnTransfCS.h:38
double meanC
First moment (mean restricted energy loss) [MeV].
Definition EnTransfCS.h:56
std::vector< std::vector< std::vector< double > > > fadda
Integral, normalised to unity for each atom, shell and energy.
Definition EnTransfCS.h:69
double particle_mass
Particle mass [MeV].
Definition EnTransfCS.h:33
EnTransfCS * copy() const
Definition EnTransfCS.h:27
HeedMatterDef * hmd
Definition EnTransfCS.h:51
bool s_primary_electron
Flag indicating whether the primary particle is an electron.
Definition EnTransfCS.h:49
EnTransfCS()=default
Default constructor.
bool m_ok
Flag indicating whether the calculation was successful.
Definition EnTransfCS.h:30
std::vector< double > length_y0
Definition EnTransfCS.h:79
double quanC
Integrated (ionization) cross-section.
Definition EnTransfCS.h:54
void print(std::ostream &file, int l) const
double max_etransf
Max. energy transfer [MeV].
Definition EnTransfCS.h:41
Definition BGMesh.cpp:6