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

#include <PhotoAbsCS.h>

+ Inheritance diagram for Heed::HydrogenPhotoAbsCS:

Public Member Functions

 HydrogenPhotoAbsCS ()
 Constructor.
 
virtual ~HydrogenPhotoAbsCS ()
 Destructor.
 
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].
 
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
 
HydrogenPhotoAbsCScopy () 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 PhotoAbsCScopy () const =0
 

Additional Inherited Members

- Protected Attributes inherited from Heed::PhotoAbsCS
std::string name
 
int number = 0
 
int Z
 
double threshold
 

Detailed Description

Hydrogen: empirical fit of Kosarev & Podoliak. Original formula for molecular hydrogen. Since this class for separated shell, we divide the molecular CS by two.

Definition at line 123 of file PhotoAbsCS.h.

Constructor & Destructor Documentation

◆ HydrogenPhotoAbsCS()

Heed::HydrogenPhotoAbsCS::HydrogenPhotoAbsCS ( )

Constructor.

Definition at line 161 of file PhotoAbsCS.cpp.

162 : PhotoAbsCS("H", 1, 15.43e-6) {
163 number = 1;
164}
PhotoAbsCS()
Default constructor.
Definition: PhotoAbsCS.cpp:79

Referenced by copy().

◆ ~HydrogenPhotoAbsCS()

virtual Heed::HydrogenPhotoAbsCS::~HydrogenPhotoAbsCS ( )
inlinevirtual

Destructor.

Definition at line 128 of file PhotoAbsCS.h.

128{}

Member Function Documentation

◆ copy()

HydrogenPhotoAbsCS * Heed::HydrogenPhotoAbsCS::copy ( ) const
inlineoverridevirtual

Implements Heed::PhotoAbsCS.

Definition at line 134 of file PhotoAbsCS.h.

134 {
135 return new HydrogenPhotoAbsCS(*this);
136 }
HydrogenPhotoAbsCS()
Constructor.
Definition: PhotoAbsCS.cpp:161

◆ get_CS()

double Heed::HydrogenPhotoAbsCS::get_CS ( double  energy) const
overridevirtual

Retrieve cross-section [Mb] at a given energy [MeV].

Implements Heed::PhotoAbsCS.

Definition at line 166 of file PhotoAbsCS.cpp.

166 {
167 if (energy < threshold || energy == DBL_MAX) return 0.0;
168 // The factor 0.5 is needed because we have one atom instead of two.
169 return 0.5 * prefactor * 0.0535 * (pow(100.0e-6 / energy, 3.228));
170}
double threshold
Definition: PhotoAbsCS.h:79
DoubleAc pow(const DoubleAc &f, double p)
Definition: DoubleAc.cpp:337

◆ get_integral_CS()

double Heed::HydrogenPhotoAbsCS::get_integral_CS ( double  energy1,
double  energy2 
) const
overridevirtual

Retrieve integral cross-section [Mb * MeV] in a given interval [MeV].

Implements Heed::PhotoAbsCS.

Definition at line 172 of file PhotoAbsCS.cpp.

173 {
174 if (e2 < threshold) return 0.;
175 if (e1 < threshold) e1 = threshold;
176 const double c1 = 0.5 * 0.0535 * pow(100.0e-6, 3.228) / 2.228;
177 if (e2 == DBL_MAX) {
178 return prefactor * c1 * (1. / pow(e1, 2.228));
179 } else {
180 return prefactor * c1 * (1. / pow(e1, 2.228) - 1. / pow(e2, 2.228));
181 }
182}

◆ print()

void Heed::HydrogenPhotoAbsCS::print ( std::ostream &  file,
int  l 
) const
overridevirtual

Reimplemented from Heed::PhotoAbsCS.

Definition at line 186 of file PhotoAbsCS.cpp.

186 {
187 if (l <= 0) return;
188 Ifile << "HydrogenPhotoAbsCS: name=" << name << " Z = " << Z
189 << " threshold = " << threshold << std::endl;
190}
std::string name
Definition: PhotoAbsCS.h:76
#define Ifile
Definition: prstream.h:196

◆ scale()

void Heed::HydrogenPhotoAbsCS::scale ( double  fact)
overridevirtual

Multiply by some factor. Can be useful for debugging and other purposes.

Implements Heed::PhotoAbsCS.

Definition at line 184 of file PhotoAbsCS.cpp.

184{ prefactor = fact; }

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