Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
Heed::MolecPhotoAbsCS Class Reference

#include <PhotoAbsCS.h>

+ Inheritance diagram for Heed::MolecPhotoAbsCS:

Public Member Functions

int get_qatom (void)
 
int get_gatom_ps (int n)
 
const PassivePtr< const AtomPhotoAbsCSget_atom (int n)
 
virtual double get_ACS (double energy) const
 
virtual double get_integral_ACS (double energy1, double energy2) const
 
virtual double get_ICS (double energy) const
 
virtual double get_integral_ICS (double energy1, double energy2) const
 
int get_total_Z () const
 
double get_W (void) const
 
double get_F (void) const
 
 MolecPhotoAbsCS (void)
 
 MolecPhotoAbsCS (const AtomPhotoAbsCS &fatom, int fqatom, double fW=0.0, double fF=standard_factor_Fano)
 
 MolecPhotoAbsCS (const AtomPhotoAbsCS &fatom1, int fqatom_ps1, const AtomPhotoAbsCS &fatom2, int fqatom_ps2, double fW=0.0, double fF=standard_factor_Fano)
 
 MolecPhotoAbsCS (const AtomPhotoAbsCS &fatom1, int fqatom_ps1, const AtomPhotoAbsCS &fatom2, int fqatom_ps2, const AtomPhotoAbsCS &fatom3, int fqatom_ps3, double fW=0.0, double fF=standard_factor_Fano)
 
virtual ~MolecPhotoAbsCS ()
 
virtual void print (std::ostream &file, int l) const
 

Detailed Description

Definition at line 559 of file PhotoAbsCS.h.

Constructor & Destructor Documentation

◆ MolecPhotoAbsCS() [1/4]

Heed::MolecPhotoAbsCS::MolecPhotoAbsCS ( void  )
inline

Definition at line 585 of file PhotoAbsCS.h.

585: qatom(0) { ; }

◆ MolecPhotoAbsCS() [2/4]

Heed::MolecPhotoAbsCS::MolecPhotoAbsCS ( const AtomPhotoAbsCS fatom,
int  fqatom,
double  fW = 0.0,
double  fF = standard_factor_Fano 
)

Definition at line 2572 of file PhotoAbsCS.cpp.

2574 : W(fW), F(fF) {
2575 qatom = fqatom;
2576 qatom_ps.put_qel(1, qatom);
2577 atom.put_qel(1, PassivePtr<const AtomPhotoAbsCS>(&fatom));
2578 if (W == 0.0) {
2579 W = coef_I_to_W * atom[0]->get_I_min();
2580 }
2581}
void put_qel(long fqel)
Definition: AbsArr.h:774
const double coef_I_to_W
Definition: PhotoAbsCS.h:552

◆ MolecPhotoAbsCS() [3/4]

Heed::MolecPhotoAbsCS::MolecPhotoAbsCS ( const AtomPhotoAbsCS fatom1,
int  fqatom_ps1,
const AtomPhotoAbsCS fatom2,
int  fqatom_ps2,
double  fW = 0.0,
double  fF = standard_factor_Fano 
)

Definition at line 2583 of file PhotoAbsCS.cpp.

2586 : W(fW), F(fF) {
2587 qatom = fqatom_ps1 + fqatom_ps2;
2588 qatom_ps.put_qel(2);
2589 atom.put_qel(2);
2590 qatom_ps[0] = fqatom_ps1;
2591 qatom_ps[1] = fqatom_ps2;
2592 atom[0] = fatom1;
2593 atom[1] = fatom2;
2594 if (W == 0.0) {
2595#ifdef CALC_W_USING_CHARGES
2596 W = coef_I_to_W * (qatom_ps[0] * atom[0]->get_Z() * atom[0]->get_I_min() +
2597 qatom_ps[1] * atom[1]->get_Z() * atom[1]->get_I_min()) /
2598 (qatom_ps[0] * atom[0]->get_Z() + qatom_ps[1] * atom[1]->get_Z());
2599#else
2600 W = coef_I_to_W * (qatom_ps[0] * atom[0]->get_I_min() +
2601 qatom_ps[1] * atom[1]->get_I_min()) / qatom;
2602#endif
2603 }
2604}

◆ MolecPhotoAbsCS() [4/4]

Heed::MolecPhotoAbsCS::MolecPhotoAbsCS ( const AtomPhotoAbsCS fatom1,
int  fqatom_ps1,
const AtomPhotoAbsCS fatom2,
int  fqatom_ps2,
const AtomPhotoAbsCS fatom3,
int  fqatom_ps3,
double  fW = 0.0,
double  fF = standard_factor_Fano 
)

Definition at line 2606 of file PhotoAbsCS.cpp.

2610 : W(fW), F(fF) {
2611 qatom = fqatom_ps1 + fqatom_ps2 + fqatom_ps3;
2612 qatom_ps.put_qel(3);
2613 atom.put_qel(3);
2614 qatom_ps[0] = fqatom_ps1;
2615 qatom_ps[1] = fqatom_ps2;
2616 qatom_ps[2] = fqatom_ps3;
2617 atom[0] = fatom1;
2618 atom[1] = fatom2;
2619 atom[2] = fatom3;
2620 if (W == 0.0) {
2621#ifdef CALC_W_USING_CHARGES
2622 W = coef_I_to_W * (qatom_ps[0] * atom[0]->get_Z() * atom[0]->get_I_min() +
2623 qatom_ps[1] * atom[1]->get_Z() * atom[1]->get_I_min() +
2624 qatom_ps[2] * atom[2]->get_Z() * atom[2]->get_I_min()) /
2625 (qatom_ps[0] * atom[0]->get_Z() + qatom_ps[1] * atom[1]->get_Z() +
2626 qatom_ps[2] * atom[2]->get_Z());
2627#else
2628 W = coef_I_to_W * (qatom_ps[0] * atom[0]->get_I_min() +
2629 qatom_ps[1] * atom[1]->get_I_min() +
2630 qatom_ps[2] * atom[2]->get_I_min()) / qatom;
2631#endif
2632 }
2633}

◆ ~MolecPhotoAbsCS()

virtual Heed::MolecPhotoAbsCS::~MolecPhotoAbsCS ( )
inlinevirtual

Definition at line 601 of file PhotoAbsCS.h.

601{}

Member Function Documentation

◆ get_ACS()

double Heed::MolecPhotoAbsCS::get_ACS ( double  energy) const
virtual

Definition at line 2635 of file PhotoAbsCS.cpp.

2635 {
2636 mfunname("double MolecPhotoAbsCS::get_ACS(double energy) const");
2637 const long q = qatom_ps.get_qel();
2638 double s = 0.0;
2639 for (long n = 0; n < q; n++) {
2640 s += qatom_ps[n] * atom[n]->get_ACS(energy);
2641 }
2642 return s;
2643}
#define mfunname(string)
Definition: FunNameStack.h:67
long get_qel(void) const
Definition: AbsArr.h:420

◆ get_atom()

const PassivePtr< const AtomPhotoAbsCS > Heed::MolecPhotoAbsCS::get_atom ( int  n)
inline

Definition at line 569 of file PhotoAbsCS.h.

569 {
570 return atom[n];
571 }

◆ get_F()

double Heed::MolecPhotoAbsCS::get_F ( void  ) const
inline

Definition at line 583 of file PhotoAbsCS.h.

583{ return F; }

Referenced by Heed::HeedMatterDef::HeedMatterDef().

◆ get_gatom_ps()

int Heed::MolecPhotoAbsCS::get_gatom_ps ( int  n)
inline

Definition at line 565 of file PhotoAbsCS.h.

565 {
566 return qatom_ps[n];
567 } // quantity of atom

◆ get_ICS()

double Heed::MolecPhotoAbsCS::get_ICS ( double  energy) const
virtual

Definition at line 2656 of file PhotoAbsCS.cpp.

2656 {
2657 mfunname("double MolecPhotoAbsCS::get_ICS(double energy) const");
2658 const long q = qatom_ps.get_qel();
2659 double s = 0.0;
2660 for (long n = 0; n < q; n++) {
2661 s += qatom_ps[n] * atom[n]->get_ICS(energy);
2662 }
2663 return s;
2664}

◆ get_integral_ACS()

double Heed::MolecPhotoAbsCS::get_integral_ACS ( double  energy1,
double  energy2 
) const
virtual

Definition at line 2645 of file PhotoAbsCS.cpp.

2645 {
2646 mfunname("double MolecPhotoAbsCS::get_integral_ACS(double energy1, double "
2647 "energy2) const");
2648 const long q = qatom_ps.get_qel();
2649 double s = 0.0;
2650 for (long n = 0; n < q; n++) {
2651 s += qatom_ps[n] * atom[n]->get_integral_ACS(energy1, energy2);
2652 }
2653 return s;
2654}

◆ get_integral_ICS()

double Heed::MolecPhotoAbsCS::get_integral_ICS ( double  energy1,
double  energy2 
) const
virtual

Definition at line 2666 of file PhotoAbsCS.cpp.

2666 {
2667 mfunname("double MolecPhotoAbsCS::get_integral_ICS(double energy1, double "
2668 "energy2) const");
2669 const long q = qatom_ps.get_qel();
2670 double s = 0.0;
2671 for (long n = 0; n < q; n++) {
2672 s += qatom_ps[n] * atom[n]->get_integral_ICS(energy1, energy2);
2673 }
2674 return s;
2675}

◆ get_qatom()

int Heed::MolecPhotoAbsCS::get_qatom ( void  )
inline

Definition at line 561 of file PhotoAbsCS.h.

561 {
562 return qatom;
563 } // total quantity of atoms

Referenced by Heed::HeedMatterDef::HeedMatterDef().

◆ get_total_Z()

int Heed::MolecPhotoAbsCS::get_total_Z ( ) const

Definition at line 2677 of file PhotoAbsCS.cpp.

2677 {
2678 mfunname("int MolecPhotoAbsCS::get_total_Z() const");
2679 int s = 0;
2680 const long q = qatom_ps.get_qel();
2681 for (long n = 0; n < q; n++) {
2682 s += atom[n]->get_Z();
2683 }
2684 return s;
2685}

Referenced by Heed::HeedMatterDef::HeedMatterDef().

◆ get_W()

double Heed::MolecPhotoAbsCS::get_W ( void  ) const
inline

Definition at line 580 of file PhotoAbsCS.h.

580 {
581 return W;
582 } // MeV

Referenced by Heed::HeedMatterDef::HeedMatterDef().

◆ print()

void Heed::MolecPhotoAbsCS::print ( std::ostream &  file,
int  l 
) const
virtual

Definition at line 2687 of file PhotoAbsCS.cpp.

2687 {
2688 Ifile << "MolecPhotoAbsCS (l=" << l << "):\n";
2689 Iprintn(file, qatom);
2690 Iprintn(file, W);
2691 Iprintn(file, F);
2692 const long q = qatom_ps.get_qel();
2693 Ifile << "number of sorts of atoms is " << q << '\n';
2694 indn.n += 2;
2695 for (long n = 0; n < q; n++) {
2696 Ifile << "n=" << n << " qatom_ps[n]=" << qatom_ps[n] << " atom:\n";
2697 atom[n]->print(file, l);
2698 }
2699 indn.n -= 2;
2700}
indentation indn
Definition: prstream.cpp:13
#define Ifile
Definition: prstream.h:207
#define Iprintn(file, name)
Definition: prstream.h:216

Referenced by Heed::operator<<().


The documentation for this class was generated from the following files: