Garfield++ 5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
MatterDef.h
Go to the documentation of this file.
1#ifndef MATTER_DEF_H
2#define MATTER_DEF_H
3
5
6namespace Heed {
7
8/// Definition of matter (material or any media).
9/// Only the basic information: the name, the notation,
10/// the atomic mixture, temperature, density, effective ionization potential.
11///
12/// 1998-2004 I. Smirnov
13
14class MatterDef : public AtomMixDef {
15 std::string nameh = "none";
16 std::string notationh = "none";
17 double temperatureh;
18 double densityh;
19 double I_effh;
20 // I_eff is still not very reliable.
21 // There are too many approximations for this.
22 // Here is a simplest and probably not good.
23 void calc_I_eff();
24
25 public:
26 MatterDef() = default;
27 MatterDef(const std::string& fname, const std::string& fnotation, long fqatom,
28 const std::vector<std::string>& fatom_not,
29 const std::vector<double>& fweight_quan, double fdensity,
30 double ftemperature);
31 MatterDef(const std::string& fname, const std::string& fnotation,
32 const std::string& fatom_not, double fdensity, double ftemperature);
33 MatterDef(const std::string& fname, const std::string& fnotation,
34 const std::string& fatom_not1, double fweight_quan1,
35 const std::string& fatom_not2, double fweight_quan2,
36 double fdensity, double ftemperature);
37 MatterDef(const std::string& fname, const std::string& fnotation,
38 const std::string& fatom_not1, double fweight_quan1,
39 const std::string& fatom_not2, double fweight_quan2,
40 const std::string& fatom_not3, double fweight_quan3,
41 double fdensity, double ftemperature);
42 virtual ~MatterDef() = default;
43
44 const std::string& name() const { return nameh; }
45 const std::string& notation() const { return notationh; }
46 double density() const { return densityh; }
47 double temperature() const { return temperatureh; }
48 double I_eff() const { return I_effh; }
49
50 void print(std::ostream& file, int l) const;
51 MatterDef* copy() const { return new MatterDef(*this); }
52};
53std::ostream& operator<<(std::ostream& file, const MatterDef& f);
54
55}
56#endif
AtomMixDef()=default
Default constructor.
const std::string & notation() const
Definition MatterDef.h:45
const std::string & name() const
Definition MatterDef.h:44
double I_eff() const
Definition MatterDef.h:48
MatterDef()=default
double temperature() const
Definition MatterDef.h:47
virtual ~MatterDef()=default
void print(std::ostream &file, int l) const
Definition MatterDef.cpp:52
double density() const
Definition MatterDef.h:46
MatterDef * copy() const
Definition MatterDef.h:51
Definition BGMesh.cpp:6
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
Definition BGMesh.cpp:37