Garfield++ v2r0
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.
 
virtual double get_CS (double energy) const
 Retrieve cross-section [Mb] at a given energy [MeV].
 
virtual double get_integral_CS (double energy1, double energy2) const
 Retrieve integral cross-section [Mb * MeV] in a given interval [MeV].
 
virtual void scale (double fact)
 Multiply by some factor. Can be useful for debugging and other purposes.
 
virtual void print (std::ostream &file, int l) const
 
virtual HydrogenPhotoAbsCScopy () const
 
- 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
 
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 160 of file PhotoAbsCS.cpp.

161 : PhotoAbsCS("H", 1, 15.43e-6), prefactor(1.) {
162 number = 1;
163}
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()

virtual HydrogenPhotoAbsCS * Heed::HydrogenPhotoAbsCS::copy ( ) const
inlinevirtual

Implements Heed::PhotoAbsCS.

Definition at line 134 of file PhotoAbsCS.h.

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

◆ get_CS()

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

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

Implements Heed::PhotoAbsCS.

Definition at line 165 of file PhotoAbsCS.cpp.

165 {
166 if (energy < threshold || energy == DBL_MAX) return 0.0;
167 // The factor 0.5 is needed because we have one atom instead of two.
168 return 0.5 * prefactor * 0.0535 * (pow(100.0e-6 / energy, 3.228));
169}
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
virtual

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

Implements Heed::PhotoAbsCS.

Definition at line 171 of file PhotoAbsCS.cpp.

172 {
173 if (energy2 < threshold) return 0.;
174 if (energy1 < threshold) energy1 = threshold;
175 if (energy2 == DBL_MAX) {
176 return 0.5 * prefactor * 0.0535 * pow(100.0e-6, 3.228) / 2.228 *
177 (1.0 / pow(energy1, 2.228));
178 } else {
179 return 0.5 * prefactor * 0.0535 * pow(100.0e-6, 3.228) / 2.228 *
180 (1.0 / pow(energy1, 2.228) - 1.0 / pow(energy2, 2.228));
181 }
182}

◆ print()

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

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)
virtual

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: