Garfield++ v1r0
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 ()
 
virtual ~HydrogenPhotoAbsCS ()
 
virtual double get_CS (double energy) const
 
virtual double get_integral_CS (double energy1, double energy2) const
 
virtual void scale (double fact)
 
 macro_copy_total (HydrogenPhotoAbsCS)
 
virtual void print (std::ostream &file, int l) const
 

Detailed Description

Definition at line 145 of file PhotoAbsCS.h.

Constructor & Destructor Documentation

◆ HydrogenPhotoAbsCS()

Heed::HydrogenPhotoAbsCS::HydrogenPhotoAbsCS ( void  )

Definition at line 368 of file PhotoAbsCS.cpp.

369 : PhotoAbsCS("H", 1, 15.43e-6), prefactor(1.) {}

◆ ~HydrogenPhotoAbsCS()

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

Definition at line 148 of file PhotoAbsCS.h.

148{}

Member Function Documentation

◆ get_CS()

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

Definition at line 371 of file PhotoAbsCS.cpp.

371 {
372 if (energy < threshold) {
373 return 0.0;
374 } else {
375 if (energy != DBL_MAX) {
376 return 0.5 * // accounts one atom instead of two
377 prefactor * 0.0535 * (pow(100.0e-6 / energy, 3.228));
378 } else {
379 return 0.0;
380 }
381 }
382}
DoubleAc pow(const DoubleAc &f, double p)
Definition: DoubleAc.cpp:336

◆ get_integral_CS()

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

Definition at line 384 of file PhotoAbsCS.cpp.

385 {
386 if (energy2 < threshold) {
387 return 0.0;
388 } else {
389 if (energy1 < threshold) {
390 energy1 = threshold; // local var.
391 }
392 if (energy2 == DBL_MAX) {
393 return 0.5 * // accounts one atom instead of two
394 prefactor * 0.0535 * pow(100.0e-6, 3.228) / 2.228 *
395 (1.0 / pow(energy1, 2.228));
396 } else {
397 return 0.5 * // accounts one atom instead of two
398 prefactor * 0.0535 * pow(100.0e-6, 3.228) / 2.228 *
399 (1.0 / pow(energy1, 2.228) - 1.0 / pow(energy2, 2.228));
400 }
401 }
402}

◆ macro_copy_total()

Heed::HydrogenPhotoAbsCS::macro_copy_total ( HydrogenPhotoAbsCS  )

◆ print()

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

Definition at line 406 of file PhotoAbsCS.cpp.

406 {
407 if (l > 0) {
408 Ifile << "HydrogenPhotoAbsCS: name=" << name << " Z = " << Z
409 << " threshold = " << threshold << std::endl;
410 }
411}
#define Ifile
Definition: prstream.h:207

◆ scale()

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

Definition at line 404 of file PhotoAbsCS.cpp.

404{ prefactor = fact; }

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