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 | |
SimpleTablePhotoAbsCS ()=default | |
Default constructor. | |
SimpleTablePhotoAbsCS (const std::string &fname, int fZ, double fthreshold, const std::string &ffile_name) | |
Constructor for reading table from file. | |
SimpleTablePhotoAbsCS (const std::string &fname, int fZ, double fthreshold, const std::vector< double > &fener, const std::vector< double > &fcs) | |
Constructor from given energy and cross-section tables. | |
SimpleTablePhotoAbsCS (const std::string &fname, int fZ, double fthreshold, int l, double E0, double yw, double ya, double P, double sigma) | |
SimpleTablePhotoAbsCS (const SimpleTablePhotoAbsCS &total, const SimpleTablePhotoAbsCS &part, double emax_repl) | |
Replace part of the cross-section table. | |
virtual | ~SimpleTablePhotoAbsCS () |
Destructor. | |
void | remove_leading_zeros () |
Remove points with zero cross-section from the table. | |
void | remove_leading_tiny (double level) |
double | get_CS (double energy) const override |
Retrieve cross-section [Mb] at a given energy [MeV]. | |
double | get_integral_CS (double energy1, double energy2) const override |
Retrieve integral cross-section [Mb * MeV] in a given interval [MeV]. | |
const std::vector< double > & | get_arr_ener () const |
const std::vector< double > & | get_arr_CS () const |
void | scale (double fact) override |
Multiply by some factor. Can be useful for debugging and other purposes. | |
void | print (std::ostream &file, int l) const override |
SimpleTablePhotoAbsCS * | copy () const override |
Public Member Functions inherited from Heed::PhotoAbsCS | |
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 |
Additional Inherited Members | |
Protected Attributes inherited from Heed::PhotoAbsCS | |
std::string | name |
int | number = 0 |
int | Z |
double | threshold |
Typically this is for reading Experimental CS, for example of argon, as if there is one shell. File is two-column table, the first row is energy in eV, the second one is CS in Mbarn. The points are understood as local points. The interpolation between them are either straight or by power function. the choice is determined by function sign_nonlinear_interpolation (see above). If the first point is not zero cross section, and the threshold is to the left, the straight extrapolation is performed from the two edge points. The extrapolation to the right is performed to the end of the energy mesh by power function with power -2.75. The minimal number of points is 2, as in PointCoorMesh from tline.h The zero number of points is allowed as well. Then the cross section is assumed to be zero.
Definition at line 160 of file PhotoAbsCS.h.
|
default |
Default constructor.
Referenced by copy().
Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS | ( | const std::string & | fname, |
int | fZ, | ||
double | fthreshold, | ||
const std::string & | ffile_name | ||
) |
Constructor for reading table from file.
Definition at line 194 of file PhotoAbsCS.cpp.
Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS | ( | const std::string & | fname, |
int | fZ, | ||
double | fthreshold, | ||
const std::vector< double > & | fener, | ||
const std::vector< double > & | fcs | ||
) |
Constructor from given energy and cross-section tables.
Definition at line 226 of file PhotoAbsCS.cpp.
Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS | ( | const std::string & | fname, |
int | fZ, | ||
double | fthreshold, | ||
int | l, | ||
double | E0, | ||
double | yw, | ||
double | ya, | ||
double | P, | ||
double | sigma | ||
) |
Constructor from fit parameters. Fit formula from Band-Band-Trzaskovskaya et al. It is difficult to integrate those formulas analytically, so I create numerical array and treat it as input data.
Definition at line 238 of file PhotoAbsCS.cpp.
Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS | ( | const SimpleTablePhotoAbsCS & | total, |
const SimpleTablePhotoAbsCS & | part, | ||
double | emax_repl | ||
) |
Replace part of the cross-section table.
Definition at line 269 of file PhotoAbsCS.cpp.
|
inlinevirtual |
|
inlineoverridevirtual |
Implements Heed::PhotoAbsCS.
Definition at line 197 of file PhotoAbsCS.h.
|
inline |
Definition at line 194 of file PhotoAbsCS.h.
Referenced by Heed::ExAtomPhotoAbsCS::ExAtomPhotoAbsCS(), and SimpleTablePhotoAbsCS().
|
inline |
Definition at line 193 of file PhotoAbsCS.h.
Referenced by Heed::ExAtomPhotoAbsCS::ExAtomPhotoAbsCS(), and SimpleTablePhotoAbsCS().
|
overridevirtual |
Retrieve cross-section [Mb] at a given energy [MeV].
Implements Heed::PhotoAbsCS.
Definition at line 337 of file PhotoAbsCS.cpp.
|
overridevirtual |
Retrieve integral cross-section [Mb * MeV] in a given interval [MeV].
Implements Heed::PhotoAbsCS.
Definition at line 357 of file PhotoAbsCS.cpp.
|
overridevirtual |
Reimplemented from Heed::PhotoAbsCS.
Definition at line 409 of file PhotoAbsCS.cpp.
void Heed::SimpleTablePhotoAbsCS::remove_leading_tiny | ( | double | level | ) |
Remove points with cross section below a given level from the table. The function is designed for Henke tables, which are prepared for database with leading values like 1.0e-15 . Both functions allow to use the straight interpolation to threshold
Definition at line 319 of file PhotoAbsCS.cpp.
Referenced by Heed::ExAtomPhotoAbsCS::ExAtomPhotoAbsCS().
void Heed::SimpleTablePhotoAbsCS::remove_leading_zeros | ( | ) |
Remove points with zero cross-section from the table.
Definition at line 302 of file PhotoAbsCS.cpp.
Referenced by SimpleTablePhotoAbsCS().
|
overridevirtual |
Multiply by some factor. Can be useful for debugging and other purposes.
Implements Heed::PhotoAbsCS.
Definition at line 403 of file PhotoAbsCS.cpp.