61 double e1,
double e2,
double threshold);
73double my_integr_fun(
double xp1,
double yp1,
double xp2,
double yp2,
74 double xmin,
double xmax,
double x1,
double x2);
75double my_val_fun(
double xp1,
double yp1,
double xp2,
double yp2,
double xmin,
76 double xmax,
double x);
92 inline int get_Z()
const {
return Z; }
95 double energy)
const = 0;
100 virtual void scale(
double fact) = 0;
102 virtual void print(std::ostream& file,
int l)
const;
115 ActivePtr<PhotoAbsCS> real_pacs;
127 double fstep,
long fmax_q_step);
130 virtual double get_CS(
double energy)
const;
136 virtual void scale(
double fact);
138 virtual void print(std::ostream& file,
int l)
const;
149 virtual double get_CS(
double energy)
const;
151 virtual void scale(
double fact);
153 virtual void print(std::ostream& file,
int l)
const;
181 const String& ffile_name);
189 double E0,
double yw,
double ya,
double P,
208 virtual double get_CS(
double energy)
const;
212 virtual void scale(
double fact);
213 virtual void print(std::ostream& file,
int l)
const;
229 double fpower = 2.75);
233 virtual double get_CS(
double energy)
const;
235 virtual void scale(
double fact);
236 virtual void print(std::ostream& file,
int l)
const;
312 virtual void print(std::ostream& file,
int l)
const;
328 virtual double get_ACS(
double energy)
const = 0;
330 virtual double get_ACS(
int nshell,
double energy)
const = 0;
332 double energy2)
const = 0;
336 virtual double get_ICS(
double energy)
const = 0;
337 virtual double get_TICS(
double energy,
338 double factual_minimal_threshold)
const;
341 double factual_minimal_threshold)
const;
342 virtual double get_ICS(
int nshell,
double energy)
const = 0;
343 virtual double get_TICS(
int nshell,
double energy,
344 double factual_minimal_threshold)
const;
346 double energy2)
const = 0;
348 double factual_minimal_threshold)
const;
376 virtual void print(std::ostream& file,
int l)
const;
404 virtual double get_ACS(
double energy)
const;
406 virtual double get_ACS(
int nshell,
double energy)
const;
408 double energy2y)
const;
410 virtual double get_ICS(
double energy)
const;
412 virtual double get_ICS(
int nshell,
double energy)
const;
414 double energy2)
const;
417 virtual void print(std::ostream& file,
int l)
const;
449 virtual double get_ACS(
double energy)
const;
451 virtual double get_ACS(
int nshell,
double energy)
const;
453 double energy2)
const;
456 virtual double get_ICS(
double energy)
const;
458 virtual double get_ICS(
int nshell,
double energy)
const;
460 double energy2)
const;
463 double fstep,
long fmax_q_step);
464 virtual void print(std::ostream& file,
int l)
const;
468 const String& fsimple_table_file_name,
469 const String& fname =
"none",
472 double fminimal_threshold = 0.0);
477 const String& fBT_file_name,
483 double fminimal_threshold = 0.0);
489 const String& fFitBT_file_name,
495 double fminimal_threshold = 0.0);
500 const String& fFitBT_file_name,
502 const String& fsimple_table_file_name,
double emax_repl,
505 double fminimal_threshold = 0.0);
544#define CALC_W_USING_CHARGES
572 virtual double get_ACS(
double energy)
const;
575 virtual double get_ICS(
double energy)
const;
583 double get_F(
void)
const {
return F; }
602 virtual void print(std::ostream& file,
int l)
const;
611std::ostream&
operator<<(std::ostream& file,
const MolecPhotoAbsCS& f);
virtual void remove_shell(int nshell)
virtual double get_ACS(double energy) const =0
virtual double get_integral_ICS(double energy1, double energy2) const =0
virtual int get_main_shell_number(int nshell) const =0
macro_copy_total_zero(AtomPhotoAbsCS)
virtual double get_ICS(int nshell, double energy) const =0
virtual void print(std::ostream &file, int l) const
virtual double get_TICS(double energy, double factual_minimal_threshold) const
virtual double get_threshold(int nshell) const =0
virtual double get_ICS(double energy) const =0
virtual double get_ACS(int nshell, double energy) const =0
DynLinArr< int > s_ignore_shell
virtual double get_integral_TICS(double energy1, double energy2, double factual_minimal_threshold) const
virtual void get_escape_particles(int nshell, double energy, DynLinArr< double > &el_energy, DynLinArr< double > &ph_energy) const
DynLinArr< AtomicSecondaryProducts > asp
virtual void restore_shell(int nshell)
virtual double get_integral_ACS(int nshell, double energy1, double energy2) const =0
virtual double get_I_min(void) const
virtual double get_integral_ICS(int nshell, double energy1, double energy2) const =0
AtomicSecondaryProducts * get_asp(int nshell)
virtual double get_integral_ACS(double energy1, double energy2) const =0
int get_channel(DynLinArr< double > &felectron_energy, DynLinArr< double > &fphoton_energy) const
AtomicSecondaryProducts()
DynLinArr< DynLinArr< double > > photon_energy
DynLinArr< double > channel_prob_dens
virtual ~AtomicSecondaryProducts()
virtual void print(std::ostream &file, int l) const
DynLinArr< DynLinArr< double > > electron_energy
void add_channel(double fchannel_prob_dens, const DynLinArr< double > &felectron_energy, const DynLinArr< double > &fphoton_energy, int s_all_rest=0)
double integ_abs_before_corr
String simple_table_file_name
double height_of_excitation
virtual double get_threshold(int nshell) const
double integ_ioniz_after_corr
void replace_shells_by_overage(double fwidth, double fstep, long fmax_q_step)
virtual double get_integral_ACS(double energy1, double energy2) const
virtual double get_ACS(double energy) const
virtual int get_main_shell_number(int nshell) const
virtual ~ExAtomPhotoAbsCS()
DynLinArr< ActivePtr< PhotoAbsCS > > acs
String threshold_file_name
virtual void print(std::ostream &file, int l) const
virtual double get_ICS(double energy) const
macro_copy_total(ExAtomPhotoAbsCS)
virtual double get_integral_ICS(double energy1, double energy2) const
double integ_abs_after_corr
virtual void print(std::ostream &file, int l) const
macro_copy_total(HydrogenPhotoAbsCS)
virtual double get_CS(double energy) const
virtual double get_integral_CS(double energy1, double energy2) const
virtual ~HydrogenPhotoAbsCS()
virtual void scale(double fact)
virtual double get_ACS(double energy) const
virtual double get_ICS(double energy) const
virtual double get_integral_ICS(double energy1, double energy2) const
virtual ~MolecPhotoAbsCS()
virtual double get_integral_ACS(double energy1, double energy2) const
virtual void print(std::ostream &file, int l) const
const PassivePtr< const AtomPhotoAbsCS > get_atom(int n)
virtual void print(std::ostream &file, int l) const
virtual double get_integral_CS(double energy1, double energy2) const
virtual void scale(double fact)
virtual double get_CS(double energy) const
macro_copy_total(OveragePhotoAbsCS)
virtual ~OveragePhotoAbsCS()
virtual double get_integral_CS(double energy1, double energy2) const
virtual ~PhenoPhotoAbsCS()
virtual double get_CS(double energy) const
macro_copy_total(PhenoPhotoAbsCS)
virtual void print(std::ostream &file, int l) const
virtual void scale(double fact)
SimpleAtomPhotoAbsCS(void)
virtual double get_ACS(double energy) const
virtual void print(std::ostream &file, int l) const
virtual int get_main_shell_number(int nshell) const
virtual double get_integral_ACS(double energy1, double energy2) const
virtual double get_integral_ICS(double energy1, double energy2) const
DynLinArr< ActivePtr< PhotoAbsCS > > acs
macro_copy_total(SimpleAtomPhotoAbsCS)
virtual double get_threshold(int nshell) const
virtual double get_ICS(double energy) const
virtual ~SimpleAtomPhotoAbsCS()
virtual double get_integral_CS(double energy1, double energy2) const
void remove_leading_tiny(double level)
virtual double get_CS(double energy) const
virtual void print(std::ostream &file, int l) const
const DynLinArr< double > & get_arr_CS() const
virtual ~SimpleTablePhotoAbsCS()
const DynLinArr< double > & get_arr_ener() const
macro_copy_total(SimpleTablePhotoAbsCS)
virtual void scale(double fact)
void remove_leading_zeros(void)
const String & get_name() const
macro_copy_total_zero(PhotoAbsCS)
virtual void scale(double fact)=0
PhotoAbsCS(const String &fname, int fZ, double fthreshold)
virtual double get_CS(double energy) const =0
virtual void print(std::ostream &file, int l) const
double get_threshold() const
virtual double get_integral_CS(double energy1, double energy2) const =0
double my_integr_fun(double xp1, double yp1, double xp2, double yp2, double xmin, double, double x1, double x2)
const int s_scale_to_normalize_if_more
const double low_boundary_of_excitations
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
const double standard_factor_Fano
const double Thomas_sum_rule_const_Mb
double glin_integ_ar(DynLinArr< double > x, DynLinArr< double > y, long q, double x1, double x2, double threshold)
const int s_add_excitations_to_normalize
int sign_nonlinear_interpolation(double e1, double cs1, double e2, double cs2, double threshold)
double my_val_fun(double xp1, double yp1, double xp2, double yp2, double xmin, double, double x)
const double Thomas_sum_rule_const