Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
HeedMatterDef.h
Go to the documentation of this file.
1#ifndef HEEDMATTERDEF_H
2#define HEEDMATTERDEF_H
3
8
9/*
10Definition of matter parameters necessary for HEED.
11This is photoabsorption cross section, dielectric constant
12and other parameters related to these.
13All the parameters depending on energy are kept in arrays
14associated with specific energy mesh, which should be defined.
15
16The principle is ordinary: definition of just a class.
17To the contrary with wcpplib/matter, there is no any global "database"
18and no formal ban to duplicate these definitions
19(although there would not be sense in duplication).
20
212003, I. Smirnov
22*/
23
24namespace Heed {
25
27/*
28Affects the mixtures in which atoms have different potentials of ionization.
29If 1, all energy transfers what is absorbed even with the energy less than
30the potential of ionization of single atom, but more than the minimal
31potential of ionization of the mixture, should ionize.
32This is emulation of Jesse effect in extreme case.
33It is likely not realistic.
34So the recommended value is 0.
35*/
36
37class HeedMatterDef : public RegPassivePtr {
38 public:
41 // Each element of this array corresponds to component of matter
42 double eldens_cm_3; // electron density cm**-3
43 double eldens; // electron density MeV**3
44 double xeldens; // longitudinal electron density MeV**2/cm (for x=1 cm)
45 double wpla; // squared plasm energy;
46 double radiation_length; // Radiation Length.
47 double Rutherford_const; // Const for Rutherford cross section (1/cm3).
48 double W; // Mean work per pair production, MeV
49 double F; // Fano factor
51
52 // The physical definition of two previous arrays of values:
53 // mean values of cross sections for each energy interval.
54 DynLinArr<double> ACS; // Photoabsorbtion cross section per one atom(Mb).
55 DynLinArr<double> ICS; // Photoionization cross section per one atom(Mb).
56 DynLinArr<double> epsip; // some plasma dielectric constant.
57 // (not used, but just initialized for print)
58 // (in order to take into account bounds,
59 // one has to multiply this by some integral)
60
61 DynLinArr<double> epsi1; // real part of dielectric constant (e_1 - 1)
62 DynLinArr<double> epsi2; // imaginary part of dielectric constant.
63 double min_ioniz_pot; // Minimum ionization potential,
64 // it is using only for switching off
65 // the Cherenkov radiation below it.
66 HeedMatterDef(void);
67 // In the following, if fW == 0.0, the program takes mean W from
68 // molecules for gas or from atoms for matters.
69 // If fF is input as 0.0, it is assigned to be mean for gas.
70 // For matters this is the terminating error.
72 EnergyMesh* fenergy_mesh, MatterDef* amatter,
73 AtomPhotoAbsCS* faapacs[], // array of size corresponding matter
74 double fW = 0.0, double fF = standard_factor_Fano);
75 // Gas consists of molecules, molecules of atoms
76 // The order in which molecules appear in fampacs should correspond
77 // to that of agas.
78 // The order in which atoms appear in fampacs[n] should correspond to that
79 // of molecules in gas.
80 HeedMatterDef(EnergyMesh* fenergy_mesh, GasDef* agas,
81 MolecPhotoAbsCS* fampacs[], // array of size corresponding gas
82 double fW = 0.0, double fF = standard_factor_Fano);
83 HeedMatterDef(EnergyMesh* fenergy_mesh, const String& gas_notation,
84 MolecPhotoAbsCS* fampacs[], // array of size corresponding gas
85 double fW = 0.0, double fF = standard_factor_Fano);
86 // Replace permeability (epsi1 and epsi2) by the numbers
87 // calculated by another program and written to a file (only for debug)
88 void replace_epsi12(const String& file_name);
89 virtual void print(std::ostream& file, int l) const;
91
92 private:
93 // Initialization after assignment of matter and apacs
94 void inite_HeedMatterDef(void);
95};
96
97}
98
99#endif
std::string String
Definition: String.h:75
DynLinArr< double > epsi2
Definition: HeedMatterDef.h:62
DynLinArr< double > epsip
Definition: HeedMatterDef.h:56
macro_copy_total(HeedMatterDef)
DynLinArr< double > ACS
Definition: HeedMatterDef.h:54
PassivePtr< MatterDef > matter
Definition: HeedMatterDef.h:39
PassivePtr< EnergyMesh > energy_mesh
Definition: HeedMatterDef.h:50
void replace_epsi12(const String &file_name)
DynLinArr< double > ICS
Definition: HeedMatterDef.h:55
DynLinArr< double > epsi1
Definition: HeedMatterDef.h:61
virtual void print(std::ostream &file, int l) const
DynLinArr< PassivePtr< const AtomPhotoAbsCS > > apacs
Definition: HeedMatterDef.h:40
Definition: BGMesh.cpp:3
const double standard_factor_Fano
Definition: PhotoAbsCS.h:542
const int s_use_mixture_thresholds
Definition: HeedMatterDef.h:26