Garfield++ 3.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <PhotoAbsCS.h>
Public Member Functions | |
PhotoAbsCS () | |
Default constructor. | |
PhotoAbsCS (const std::string &fname, int fZ, double fthreshold) | |
Constructor. | |
virtual | ~PhotoAbsCS () |
Destructor. | |
const std::string & | get_name () const |
Name of this shell or atom. | |
int | get_number () const |
Number of this shell. | |
int | get_Z () const |
double | get_threshold () const |
Return the threshold energy. | |
virtual double | get_CS (double energy) const =0 |
Retrieve cross-section [Mb] at a given energy [MeV]. | |
virtual double | get_integral_CS (double energy1, double energy2) const =0 |
Retrieve integral cross-section [Mb * MeV] in a given interval [MeV]. | |
virtual void | scale (double fact)=0 |
Multiply by some factor. Can be useful for debugging and other purposes. | |
virtual void | print (std::ostream &file, int l) const |
virtual PhotoAbsCS * | copy () const =0 |
Protected Attributes | |
std::string | name |
int | number = 0 |
int | Z |
double | threshold |
Photoabsorption cross-section base class.
The literature data on photoabsorption cross section are fragmentar and not always consistent. This class hierarchy is designed to gather them in a consistent library. The principle is ordinary: definition of an abstract class which defines the interface available for the rest of program, and definition of derived classes with this or that realization. To the contrary with wcpplib/matter, there is no any global "database" and no formal ban to duplicate these definitions. So these are simple classes determining photoabsorption cross sections for atomic shells, for atoms, and for molecules. Also the atomic relaxation cascades are defined. The system requires some memory for keeping data, and some disk files with input information. It takes some time for initializations, so it is not intended to be used in a loop. In the fortran version of HEED, the equivalent data structure kept in a common block was depending on energy mesh. But in this C++ version it was found possible to avoid this dependence. The data are kept and handled as is, without unnecessary conversions. This improves precision of handling energies near ionization thresholds.
2004, I. Smirnov
Definition at line 46 of file PhotoAbsCS.h.
Heed::PhotoAbsCS::PhotoAbsCS | ( | ) |
Heed::PhotoAbsCS::PhotoAbsCS | ( | const std::string & | fname, |
int | fZ, | ||
double | fthreshold | ||
) |
|
inlinevirtual |
|
pure virtual |
Implemented in Heed::AveragePhotoAbsCS, Heed::HydrogenPhotoAbsCS, Heed::SimpleTablePhotoAbsCS, and Heed::PhenoPhotoAbsCS.
|
pure virtual |
Retrieve cross-section [Mb] at a given energy [MeV].
Implemented in Heed::AveragePhotoAbsCS, Heed::HydrogenPhotoAbsCS, Heed::SimpleTablePhotoAbsCS, and Heed::PhenoPhotoAbsCS.
|
pure virtual |
Retrieve integral cross-section [Mb * MeV] in a given interval [MeV].
Implemented in Heed::AveragePhotoAbsCS, Heed::HydrogenPhotoAbsCS, Heed::SimpleTablePhotoAbsCS, and Heed::PhenoPhotoAbsCS.
|
inline |
|
inline |
|
inline |
Return the threshold energy.
Definition at line 64 of file PhotoAbsCS.h.
Referenced by Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS().
|
inline |
Charge or number of electrons at this shell or in this atom (in principle the integral of CS should satisfy the Thomas-Reiche-Kuhn sum rule).
Definition at line 62 of file PhotoAbsCS.h.
|
virtual |
Reimplemented in Heed::AveragePhotoAbsCS, Heed::HydrogenPhotoAbsCS, Heed::SimpleTablePhotoAbsCS, and Heed::PhenoPhotoAbsCS.
Definition at line 91 of file PhotoAbsCS.cpp.
|
pure virtual |
Multiply by some factor. Can be useful for debugging and other purposes.
Implemented in Heed::AveragePhotoAbsCS, Heed::HydrogenPhotoAbsCS, Heed::SimpleTablePhotoAbsCS, and Heed::PhenoPhotoAbsCS.
|
protected |
Definition at line 76 of file PhotoAbsCS.h.
Referenced by Heed::AveragePhotoAbsCS::AveragePhotoAbsCS(), get_name(), PhotoAbsCS(), print(), Heed::HydrogenPhotoAbsCS::print(), Heed::SimpleTablePhotoAbsCS::print(), and Heed::PhenoPhotoAbsCS::print().
|
protected |
Definition at line 77 of file PhotoAbsCS.h.
Referenced by Heed::AveragePhotoAbsCS::AveragePhotoAbsCS(), get_number(), Heed::HydrogenPhotoAbsCS::HydrogenPhotoAbsCS(), and PhotoAbsCS().
|
protected |
Definition at line 79 of file PhotoAbsCS.h.
Referenced by Heed::AveragePhotoAbsCS::AveragePhotoAbsCS(), Heed::HydrogenPhotoAbsCS::get_CS(), Heed::SimpleTablePhotoAbsCS::get_CS(), Heed::PhenoPhotoAbsCS::get_CS(), Heed::HydrogenPhotoAbsCS::get_integral_CS(), Heed::SimpleTablePhotoAbsCS::get_integral_CS(), Heed::PhenoPhotoAbsCS::get_integral_CS(), get_threshold(), Heed::PhenoPhotoAbsCS::PhenoPhotoAbsCS(), print(), Heed::HydrogenPhotoAbsCS::print(), Heed::SimpleTablePhotoAbsCS::print(), Heed::PhenoPhotoAbsCS::print(), and Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS().
|
protected |
Definition at line 78 of file PhotoAbsCS.h.
Referenced by Heed::AveragePhotoAbsCS::AveragePhotoAbsCS(), get_Z(), Heed::PhenoPhotoAbsCS::PhenoPhotoAbsCS(), print(), Heed::HydrogenPhotoAbsCS::print(), Heed::SimpleTablePhotoAbsCS::print(), and Heed::PhenoPhotoAbsCS::print().