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

#include <HeedChamber.hh>

+ Inheritance diagram for Garfield::HeedChamber:

Public Member Functions

 HeedChamber (const Heed::abssyscoor &fcsys, const double dx, const double dy, const double dz, const Heed::EnTransfCS &etcs, const Heed::HeedDeltaElectronCS &hdecs)
 
Garfield::HeedChambercopy () const override
 
absvol * Gavol () const override
 Get the volume.
 
- Public Member Functions inherited from Heed::sh_manip_absvol
virtual const abssyscoorGasc () const override
 Get the coordinate system.
 
void Psc (const fixsyscoor &fcsys)
 
 sh_manip_absvol ()
 
 sh_manip_absvol (sh_manip_absvol &f)
 
 sh_manip_absvol (const sh_manip_absvol &f)
 
 sh_manip_absvol (const abssyscoor &f)
 
 sh_manip_absvol (const point &fc, const basis &fbas, const std::string &fname)
 
virtual ~sh_manip_absvol ()
 
virtual void m_chname (char *nm) const
 
virtual void m_print (std::ostream &file, int l) const override
 
sh_manip_absvolcopy () const
 
- Public Member Functions inherited from Heed::manip_absvol
virtual absvolGavol () const =0
 Get the volume.
 
virtual const abssyscoorGasc () const
 Get the coordinate system.
 
virtual int m_check_point_inside (const point &fpt, const vec &dir) const
 
virtual int m_find_embed_vol (const point &fpt, const vec &fdir, manip_absvol_treeid *atid) const
 
virtual int m_range (trajestep &fts, int s_ext, int &sb, manip_absvol *&faeid) const
 
virtual int m_range_ext (trajestep &fts, int s_ext) const
 
void down_absref (absref *f) const
 
void up_absref (absref *f) const
 
void m_chname (char *nm) const
 
virtual void m_print (std::ostream &file, int l) const
 
manip_absvolcopy () const
 
virtual ~manip_absvol ()
 
- Public Member Functions inherited from Heed::absref
virtual ~absref ()
 Destructor.
 
virtual void down (const abssyscoor *fasc)
 Convert numbering representation of object to basical system of fasc.
 
virtual void up (const abssyscoor *fasc)
 Convert numbering representation of objects to new system.
 
virtual void turn (const vec &dir, vfloat angle)
 Turn around axis doing via center of coordinate system along dir.
 
virtual void shift (const vec &dir)
 
- Public Member Functions inherited from Heed::box
 box ()
 Default constructor.
 
 box (vfloat fdx, vfloat fdy, vfloat fdz, const std::string &fname)
 
 box (vfloat fdx, vfloat fdy, vfloat fdz, vfloat fprec, const std::string &fname)
 Constructor with user-provided precision.
 
 box (box &fb)
 
 box (const box &fb)
 
virtual ~box ()
 Destructor.
 
void init_prec ()
 
void init_planes ()
 
int check_point_inside (const point &fpt, const vec &dir) const override
 
int range_ext (trajestep &fts, int s_ext) const override
 Range till exit from given volume or to entry only.
 
void income (gparticle *gp) override
 
void chname (char *nm) const override
 
void print (std::ostream &file, int l) const override
 
boxcopy () const override
 
- Public Member Functions inherited from Heed::absvol
virtual ~absvol ()
 Destructor.
 
virtual int check_point_inside (const point &fpt, const vec &dir) const =0
 
virtual int find_embed_vol (const point &fpt, const vec &dir, manip_absvol_treeid *atid) const
 
virtual int range (trajestep &fts, int s_ext, int &sb, manip_absvol *&faeid) const
 
virtual int range_ext (trajestep &fts, int s_ext) const =0
 
virtual void income (gparticle *)
 
virtual void chname (char *nm) const
 
virtual void print (std::ostream &file, int l) const
 
virtual absvolcopy () const
 
virtual std::vector< manip_absvol * > Gamanip_embed () const
 
- Public Member Functions inherited from Heed::EnTransfCS
 EnTransfCS ()=default
 Default constructor.
 
 EnTransfCS (double fparticle_mass, double fgamma_1, bool fs_primary_electron, HeedMatterDef *fhmd, long fparticle_charge=1)
 Constructor.
 
void print (std::ostream &file, int l) const
 
EnTransfCScopy () const
 
- Public Member Functions inherited from Heed::HeedDeltaElectronCS
 HeedDeltaElectronCS ()
 Default constructor.
 
 HeedDeltaElectronCS (HeedMatterDef *fhmd, ElElasticScat *fees, ElElasticScatLowSigma *feesls, PairProd *fpairprod, int fsruth=2, double fmlambda=0.001 *4.0e-3, double fmthetac=0.1)
 Constructor.
 
double get_sigma (double energy, double nscat) const
 
void print (std::ostream &file, int l) const
 
HeedDeltaElectronCScopy () const
 

Protected Member Functions

Heed::absref_transmit get_components () override
 
virtual absref_transmit get_components () override
 
- Protected Member Functions inherited from Heed::box
absref_transmit get_components () override
 

Additional Inherited Members

- Public Attributes inherited from Heed::box
vfloat m_dx
 
vfloat m_dy
 
vfloat m_dz
 Lengths of sides.
 
vfloat m_dxh
 
vfloat m_dyh
 
vfloat m_dzh
 Half-lengths of sides.
 
ulsvolume m_ulsv
 
std::string m_name
 
- Public Attributes inherited from Heed::absvol
vfloat prec
 
bool s_sensitive
 
- Public Attributes inherited from Heed::EnTransfCS
double particle_mass = 0.
 Particle mass [MeV].
 
long particle_charge = 0
 Charge in units of electron charge (used square, sign does not matter).
 
double gamma_1 = 0.
 Lorentz factor - 1 (the best dimensionless measurement of speed).
 
double max_etransf = 0.
 Max. energy transfer [MeV].
 
bool s_simple_form = true
 
bool s_primary_electron = false
 Flag indicating whether the primary particle is an electron.
 
HeedMatterDefhmd = nullptr
 
std::vector< double > log1C
 common first log without cs
 
std::vector< double > log2C
 common second log without cs
 
std::vector< double > chereC
 Cherenkov's radiation.
 
std::vector< double > chereCangle
 angle of Cherenkov's radiation
 
std::vector< double > Rruth
 term called R in my paper
 
std::vector< double > addaC
 Sum of (ionization) differential cross-section terms.
 
double quanC = 0.
 Integrated (ionization) cross-section.
 
double meanC = 0.
 
double meanC1 = 0.
 
std::vector< std::vector< std::vector< double > > > cher
 
std::vector< std::vector< std::vector< double > > > fruth
 Rutherford term.
 
std::vector< std::vector< std::vector< double > > > adda
 Sum.
 
std::vector< std::vector< std::vector< double > > > fadda
 Integral, normalised to unity.
 
std::vector< std::vector< double > > quan
 Number of collisions / cm, for each atom and shell.
 
std::vector< std::vector< double > > mean
 First moment, for each atom and shell.
 
std::vector< double > length_y0
 
- Public Attributes inherited from Heed::HeedDeltaElectronCS
HeedMatterDefhmd = nullptr
 
ElElasticScatees = nullptr
 
ElElasticScatLowSigmaeesls = nullptr
 
PairProdpairprod = nullptr
 
std::vector< double > beta
 Table of velocities.
 
std::vector< double > momentum
 Table of momenta [MeV/c].
 
std::vector< double > eLoss
 
double mlambda
 
std::vector< double > lambda
 
std::vector< double > low_lambda
 
int sruth
 
double mthetac
 
std::vector< double > angular_mesh_c
 Angular mesh, centers, angles in degrees.
 
std::vector< PointsRanangular_points_ran
 
std::vector< PointsRanlow_angular_points_ran
 
std::vector< double > mean_coef_low_sigma
 
- Static Public Attributes inherited from Heed::HeedDeltaElectronCS
static constexpr long q_angular_mesh = 50
 
static constexpr double low_cut_angle_deg = 20.
 
- Protected Attributes inherited from Heed::sh_manip_absvol
fixsyscoor csys
 
absrefaref_ptr [1]
 

Detailed Description

Definition at line 13 of file HeedChamber.hh.

Constructor & Destructor Documentation

◆ HeedChamber()

Garfield::HeedChamber::HeedChamber ( const Heed::abssyscoor fcsys,
const double  dx,
const double  dy,
const double  dz,
const Heed::EnTransfCS etcs,
const Heed::HeedDeltaElectronCS hdecs 
)
inline

Definition at line 19 of file HeedChamber.hh.

22 : Heed::sh_manip_absvol(fcsys),
23 Heed::box(dx * Heed::CLHEP::cm,
24 dy * Heed::CLHEP::cm,
25 dz * Heed::CLHEP::cm, "chamber"),
26 Heed::EnTransfCS(etcs),
28
29 s_sensitive = true;
30 }
bool s_sensitive
Definition: volume.h:73
Definition: box.h:25

Member Function Documentation

◆ copy()

Garfield::HeedChamber * Garfield::HeedChamber::copy ( ) const
inlineoverridevirtual

Reimplemented from Heed::absvol.

Definition at line 32 of file HeedChamber.hh.

32 {
33 return new Garfield::HeedChamber(*this);
34 }

◆ Gavol()

absvol * Garfield::HeedChamber::Gavol ( ) const
inlineoverridevirtual

Get the volume.

Implements Heed::manip_absvol.

Definition at line 35 of file HeedChamber.hh.

35{ return (Heed::box*)this; }

◆ get_components()

Heed::absref_transmit Garfield::HeedChamber::get_components ( )
inlineoverrideprotectedvirtual

Reimplemented from Heed::sh_manip_absvol.

Definition at line 38 of file HeedChamber.hh.

38 {
39 return sh_manip_absvol::get_components();
40 }

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