Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <cmath>
#include <climits>
#include <cfloat>
#include "wcpplib/util/FunNameStack.h"
#include "wcpplib/stream/prstream.h"
#include "wcpplib/math/minmax.h"
Go to the source code of this file.
Classes | |
class | DoubleAc |
Macros | |
#define | DEF_DBL_PREC 1.0e-15 |
#define | DEF_FLT_PREC 1.0e-7 |
#define | Iprintda(file, name) |
#define | Iprintdan(file, name) |
Variables | |
const double | one_plus_def_dbl_prec = double(1.0) + DEF_DBL_PREC |
const double | one_minus_def_dbl_prec = double(1.0) - DEF_DBL_PREC |
const double | one_plus_def_flt_prec = double(1.0) + DEF_FLT_PREC |
const double | one_minus_def_flt_prec = double(1.0) - DEF_FLT_PREC |
#define DEF_DBL_PREC 1.0e-15 |
Definition at line 36 of file DoubleAc.h.
#define DEF_FLT_PREC 1.0e-7 |
Definition at line 40 of file DoubleAc.h.
#define Iprintda | ( | file, | |
name | |||
) |
Definition at line 702 of file DoubleAc.h.
#define Iprintdan | ( | file, | |
name | |||
) |
Definition at line 707 of file DoubleAc.h.
Definition at line 488 of file DoubleAc.cpp.
Referenced by Heed::spquadr::apos(), Garfield::Medium::ElectronAttachment(), Garfield::Medium::ElectronDiffusion(), Garfield::Medium::ElectronTownsend(), Garfield::Medium::ElectronVelocity(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::Medium::HoleAttachment(), Garfield::Medium::HoleDiffusion(), Garfield::Medium::HoleTownsend(), Garfield::Medium::HoleVelocity(), Garfield::Medium::IonDiffusion(), Garfield::Medium::IonDissociation(), Garfield::Medium::IonVelocity(), Heed::HeedDeltaElectron::physics_after_new_speed(), and Heed::theta_two_part().
Definition at line 468 of file DoubleAc.cpp.
Referenced by Garfield::Medium::ElectronAttachment(), Garfield::Medium::ElectronDiffusion(), Garfield::Medium::ElectronTownsend(), Garfield::Medium::ElectronVelocity(), Heed::ElElasticScat::fill_hist_low_scat(), Garfield::MediumMagboltz::GetElectronCollision(), Heed::HeedDeltaElectronCS::HeedDeltaElectronCS(), Garfield::Medium::HoleAttachment(), Garfield::Medium::HoleDiffusion(), Garfield::Medium::HoleTownsend(), Garfield::Medium::HoleVelocity(), Garfield::Medium::IonDiffusion(), Garfield::Medium::IonDissociation(), Garfield::Medium::IonVelocity(), and Heed::theta_two_part().
|
inline |
Definition at line 425 of file DoubleAc.h.
Definition at line 431 of file DoubleAc.cpp.
Referenced by Heed::ElElasticScatDataStruct::CS(), Garfield::ViewMedium::EvaluateFunction(), Heed::ElElasticScat::fill_hist_low_scat(), Garfield::Medium::GetElectronCollision(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::MediumSilicon::GetElectronCollision(), Garfield::Medium::GetElectronMomentum(), Garfield::MediumSilicon::GetElectronMomentum(), Heed::HeedDeltaElectronCS::HeedDeltaElectronCS(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::TrackBichsel::NewTrack(), Garfield::TrackElectron::NewTrack(), Garfield::TrackHeed::NewTrack(), Garfield::TrackPAI::NewTrack(), Garfield::TrackSimple::NewTrack(), Heed::HeedDeltaElectron::physics_after_new_speed(), vec::random_conic_vec(), vec::random_round_vec(), rnorm_double(), rnorm_float(), Garfield::ViewField::Rotate(), Garfield::SolidBox::SolidBox(), Garfield::SolidTube::SolidTube(), Garfield::TrackHeed::TransportDeltaElectron(), Garfield::TrackHeed::TransportPhoton(), vec::turn_new(), and Garfield::ComponentFieldMap::UnmapFields().
Definition at line 376 of file DoubleAc.cpp.
Referenced by Garfield::Numerics::BesselK0L(), Garfield::Numerics::BesselK1L(), Garfield::Medium::ElectronAttachment(), Garfield::Medium::ElectronTownsend(), Garfield::TrackPAI::GetCluster(), Garfield::TrackBichsel::GetClusterDensity(), Garfield::MediumCdTe::GetDielectricFunction(), Garfield::MediumGaAs::GetDielectricFunction(), Garfield::MediumSilicon::GetDielectricFunction(), Garfield::MediumMagboltz::GetElectronCollisionRate(), Garfield::DriftLineRKF::GetGain(), Garfield::TrackBichsel::GetStoppingPower(), Garfield::Medium::HoleAttachment(), Garfield::Medium::HoleTownsend(), Garfield::Medium::Interpolate1D(), Garfield::Medium::IonDissociation(), pois(), and t_value_exp_2point().
Definition at line 616 of file DoubleAc.h.
Referenced by abstract_determinant(), acos(), Garfield::ComponentAnalyticField::AddStripOnPlaneX(), Garfield::ComponentAnalyticField::AddStripOnPlaneY(), asin(), Garfield::Numerics::Boxin3(), Garfield::Numerics::Cfact(), Heed::mparticle::check_consistency(), Heed::polygon::check_point_in(), Garfield::Numerics::Cinv(), Garfield::ComponentFieldMap::Coordinates13(), Garfield::ComponentFieldMap::Coordinates3(), Garfield::ComponentFieldMap::Coordinates5(), Heed::straight::cross(), Garfield::Numerics::Deqinv(), Garfield::Numerics::Dfact(), Heed::straight::distance(), Garfield::Numerics::Divdif(), Garfield::Medium::ElectronAttachment(), Garfield::Medium::ElectronDiffusion(), Garfield::Medium::ElectronTownsend(), Garfield::Medium::ElectronVelocity(), Garfield::ViewMedium::EvaluateFunction(), fabs(), Cubic::find_real_zero(), Cubic::find_zero(), Garfield::TrackHeed::GetCluster(), Garfield::TrackBichsel::GetClusterDensity(), Garfield::ComponentTcad2d::GetElement(), Garfield::ComponentTcad3d::GetElement(), Garfield::ComponentAnsys121::GetElementVolume(), Garfield::ComponentAnsys123::GetElementVolume(), Garfield::ComponentCST::GetElementVolume(), Garfield::ComponentElmer::GetElementVolume(), Garfield::MediumMagboltz::GetPhotonCollision(), Garfield::MediumMagboltz::GetPhotonCollisionRate(), Garfield::TrackBichsel::GetStoppingPower(), Heed::HeedPhoton::HeedPhoton(), Garfield::Medium::HoleAttachment(), Garfield::Medium::HoleDiffusion(), Garfield::Medium::HoleTownsend(), Garfield::Medium::HoleVelocity(), inverse_DynArr(), inverse_DynArr_prot(), Garfield::Medium::IonDiffusion(), Garfield::Medium::IonDissociation(), Garfield::Medium::IonVelocity(), Garfield::SolidBox::IsInside(), Garfield::SolidSphere::IsInside(), Garfield::SolidTube::IsInside(), Garfield::ComponentAnalyticField::IsWireCrossed(), Garfield::TrackHeed::NewTrack(), Parabol::Parabol(), Heed::HeedParticle::physics(), Heed::HeedParticle_BGM::physics(), Garfield::ViewGeometry::Plot(), Garfield::MediumMagboltz::RunMagboltz(), Garfield::Sensor::SetArea(), Garfield::TrackHeed::SetEnergyMesh(), Garfield::Medium::SetFieldGrid(), Garfield::GeometryRoot::SetMedium(), Garfield::TrackHeed::SetParticleUser(), Garfield::ComponentCST::SetRange(), Garfield::ComponentFieldMap::SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), Garfield::ComponentCST::SetRangeZ(), Garfield::ComponentTcad2d::SetRangeZ(), Garfield::AvalancheMC::SetTimeWindow(), Garfield::AvalancheMicroscopic::SetTimeWindow(), Garfield::TrackHeed::TransportDeltaElectron(), Garfield::TrackHeed::TransportPhoton(), and Garfield::ComponentFieldMap::UpdatePeriodicityCommon().
Definition at line 655 of file DoubleAc.h.
Referenced by append(), cos(), fabs(), Heed::ExAtomPhotoAbsCS::get_integral_ACS(), DoubleAc::operator*=(), pow(), sin(), sqrt(), and square().
Definition at line 658 of file DoubleAc.h.
Definition at line 664 of file DoubleAc.h.
Definition at line 676 of file DoubleAc.h.
Definition at line 670 of file DoubleAc.h.
Definition at line 661 of file DoubleAc.h.
Definition at line 667 of file DoubleAc.h.
Definition at line 679 of file DoubleAc.h.
Definition at line 673 of file DoubleAc.h.
Definition at line 627 of file DoubleAc.h.
Referenced by cos(), determinant_DynArr(), Heed::ExAtomPhotoAbsCS::get_integral_ACS(), DoubleAc::operator*=(), and sin().
Definition at line 630 of file DoubleAc.h.
Definition at line 636 of file DoubleAc.h.
Definition at line 648 of file DoubleAc.h.
Definition at line 642 of file DoubleAc.h.
Definition at line 633 of file DoubleAc.h.
Definition at line 639 of file DoubleAc.h.
Definition at line 651 of file DoubleAc.h.
Definition at line 645 of file DoubleAc.h.
Definition at line 524 of file DoubleAc.h.
Definition at line 529 of file DoubleAc.h.
Definition at line 539 of file DoubleAc.h.
Definition at line 559 of file DoubleAc.h.
Definition at line 549 of file DoubleAc.h.
Definition at line 534 of file DoubleAc.h.
Definition at line 544 of file DoubleAc.h.
Definition at line 564 of file DoubleAc.h.
Definition at line 554 of file DoubleAc.h.
Definition at line 432 of file DoubleAc.h.
Definition at line 437 of file DoubleAc.h.
Definition at line 447 of file DoubleAc.h.
Definition at line 467 of file DoubleAc.h.
Definition at line 457 of file DoubleAc.h.
Definition at line 442 of file DoubleAc.h.
Definition at line 452 of file DoubleAc.h.
Definition at line 472 of file DoubleAc.h.
Definition at line 462 of file DoubleAc.h.
Definition at line 420 of file DoubleAc.h.
Definition at line 478 of file DoubleAc.h.
Definition at line 483 of file DoubleAc.h.
Definition at line 493 of file DoubleAc.h.
Definition at line 513 of file DoubleAc.h.
Definition at line 503 of file DoubleAc.h.
Definition at line 488 of file DoubleAc.h.
Definition at line 498 of file DoubleAc.h.
Definition at line 518 of file DoubleAc.h.
Definition at line 508 of file DoubleAc.h.
Definition at line 570 of file DoubleAc.h.
Definition at line 575 of file DoubleAc.h.
Definition at line 585 of file DoubleAc.h.
Definition at line 605 of file DoubleAc.h.
Definition at line 595 of file DoubleAc.h.
Definition at line 580 of file DoubleAc.h.
Definition at line 590 of file DoubleAc.h.
Definition at line 610 of file DoubleAc.h.
Definition at line 600 of file DoubleAc.h.
std::ostream & operator<< | ( | std::ostream & | file, |
const DoubleAc & | f | ||
) |
Definition at line 544 of file DoubleAc.cpp.
Definition at line 336 of file DoubleAc.cpp.
Referenced by Garfield::Numerics::BesselI0S(), Garfield::Numerics::BesselI1S(), Garfield::Numerics::BesselK0L(), Garfield::Numerics::BesselK0S(), Garfield::Numerics::BesselK1L(), Garfield::Numerics::BesselK1S(), Heed::Bethe_Bloch_energy_loss(), Heed::Bethe_Bloch_energy_loss_gamma_1(), Heed::Bethe_Bloch_restricted_energy_loss_gamma_1(), Garfield::ComponentFieldMap::Coordinates4(), Heed::ElElasticScatDataStruct::CS(), Heed::e_cont_enloss(), Garfield::Medium::ElectronAttachment(), Garfield::Medium::ElectronDiffusion(), Garfield::Medium::ElectronTownsend(), Garfield::Medium::ElectronVelocity(), Garfield::MediumCdTe::ElectronVelocity(), Garfield::MediumGaAs::ElectronVelocity(), Garfield::MediumSilicon::ElectronVelocity(), Heed::ElElasticScat::ElElasticScat(), Heed::EnergyMesh::EnergyMesh(), Heed::EnTransfCS::EnTransfCS(), Heed::ExAtomPhotoAbsCS::ExAtomPhotoAbsCS(), Heed::ElElasticScat::fill_hist(), Heed::ElElasticScat::fill_hist_low_scat(), Cubic::find_zero(), Heed::HydrogenPhotoAbsCS::get_CS(), Heed::SimpleTablePhotoAbsCS::get_CS(), Heed::PhenoPhotoAbsCS::get_CS(), Heed::ElElasticScat::get_CS(), Heed::ElElasticScat::get_CS_Rutherford(), Heed::PairProd::get_eloss(), Heed::HydrogenPhotoAbsCS::get_integral_CS(), Heed::SimpleTablePhotoAbsCS::get_integral_CS(), Heed::PhenoPhotoAbsCS::get_integral_CS(), Garfield::ComponentAnsys121::GetAspectRatio(), Garfield::ComponentAnsys123::GetAspectRatio(), Garfield::ComponentElmer::GetAspectRatio(), Garfield::TrackElectron::GetCluster(), Garfield::MediumSilicon::GetConductionBandDensityOfStates(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::ComponentTcad2d::GetElement(), Garfield::ComponentTcad3d::GetElement(), Garfield::TrackElectron::GetStoppingPower(), Heed::HeedDeltaElectronCS::HeedDeltaElectronCS(), Garfield::Medium::HoleAttachment(), Garfield::Medium::HoleDiffusion(), Garfield::Medium::HoleTownsend(), Garfield::Medium::HoleVelocity(), Garfield::MediumCdTe::HoleVelocity(), Garfield::MediumGaAs::HoleVelocity(), Garfield::MediumSilicon::HoleVelocity(), Garfield::Medium::IonDiffusion(), Garfield::Medium::IonDissociation(), Garfield::Medium::IonVelocity(), Garfield::ComponentAnalyticField::IsInTrapRadius(), Garfield::ComponentAnalyticField::IsWireCrossed(), Heed::make_log_mesh(), Heed::make_log_mesh_ec(), Heed::mparticle::new_speed(), Heed::PhenoPhotoAbsCS::PhenoPhotoAbsCS(), Heed::HeedPhoton::physics_after_new_speed(), Garfield::ViewField::PlotProfile(), Heed::HeedMatterDef::print(), Garfield::RndmPolya(), Garfield::Medium::SetFieldGrid(), Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS(), Heed::straight::straight(), t_integ_power_2point(), t_value_power_2point(), and t_value_power_extended_2point().
Definition at line 383 of file DoubleAc.cpp.
Referenced by Garfield::ViewMedium::EvaluateFunction(), Heed::ElElasticScat::fill_hist(), Heed::ElElasticScat::fill_hist_low_scat(), Heed::ElElasticScat::get_CS_Rutherford(), Garfield::Medium::GetElectronCollision(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::MediumSilicon::GetElectronCollision(), Garfield::Medium::GetElectronMomentum(), Garfield::MediumSilicon::GetElectronMomentum(), Heed::HeedDeltaElectronCS::HeedDeltaElectronCS(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::TrackBichsel::NewTrack(), Garfield::TrackElectron::NewTrack(), Garfield::TrackHeed::NewTrack(), Garfield::TrackPAI::NewTrack(), Garfield::TrackSimple::NewTrack(), Heed::HeedDeltaElectron::physics_after_new_speed(), vec::random_conic_vec(), vec::random_round_vec(), rnorm_double(), rnorm_float(), Garfield::ViewField::Rotate(), Garfield::SolidBox::SolidBox(), Garfield::SolidTube::SolidTube(), Heed::theta_two_part(), Garfield::TrackHeed::TransportDeltaElectron(), Garfield::TrackHeed::TransportPhoton(), vec::turn_new(), and Garfield::ComponentFieldMap::UnmapFields().
Definition at line 313 of file DoubleAc.cpp.
Referenced by Garfield::Numerics::BesselK0L(), Garfield::Numerics::BesselK1L(), Garfield::ComponentFieldMap::Coordinates4(), Heed::cos_theta_two_part(), Heed::circumf::cross(), GarfieldPhysics::DoIt(), Heed::e_cont_enloss(), Garfield::Medium::ElectronAttachment(), Garfield::MediumCdTe::ElectronAttachment(), Garfield::MediumGaAs::ElectronAttachment(), Garfield::MediumSilicon::ElectronAttachment(), Garfield::Medium::ElectronDiffusion(), Garfield::Medium::ElectronTownsend(), Garfield::MediumSilicon::ElectronTownsend(), Garfield::Medium::ElectronVelocity(), Garfield::MediumCdTe::ElectronVelocity(), Garfield::MediumGaAs::ElectronVelocity(), Garfield::MediumSilicon::ElectronVelocity(), Heed::EnTransfCS::EnTransfCS(), Heed::EnTransfCS_BGM::EnTransfCS_BGM(), Garfield::ViewField::EvaluatePotential(), Garfield::ViewField::EvaluatePotentialProfile(), Garfield::ViewField::EvaluateWeightingField(), Heed::ElElasticScat::fill_hist_low_scat(), Parabol::find_zero(), Cubic::find_zero(), Garfield::DriftLineRKF::GetArrivalTimeSpread(), Garfield::ComponentAnsys121::GetAspectRatio(), Garfield::ComponentAnsys123::GetAspectRatio(), Garfield::ComponentElmer::GetAspectRatio(), Garfield::Track::GetBeta(), Garfield::Track::GetBetaGamma(), Garfield::SolidBox::GetBoundingBox(), Garfield::SolidTube::GetBoundingBox(), Garfield::TrackElectron::GetCluster(), Garfield::MediumSilicon::GetConductionBandDensityOfStates(), Garfield::Medium::GetElectronCollision(), Garfield::MediumMagboltz::GetElectronCollision(), Garfield::MediumSilicon::GetElectronCollision(), Garfield::MediumSilicon::GetElectronEnergy(), Garfield::Medium::GetElectronMomentum(), Garfield::MediumSilicon::GetElectronMomentum(), Garfield::ComponentTcad2d::GetElement(), Garfield::ComponentTcad3d::GetElement(), Garfield::DriftLineRKF::GetGain(), Garfield::Track::GetGamma(), Garfield::Track::GetMomentum(), Garfield::TrackElectron::GetStoppingPower(), Heed::HeedDeltaElectronCS::HeedDeltaElectronCS(), Garfield::Medium::HoleAttachment(), Garfield::MediumCdTe::HoleAttachment(), Garfield::MediumGaAs::HoleAttachment(), Garfield::MediumSilicon::HoleAttachment(), Garfield::Medium::HoleDiffusion(), Garfield::Medium::HoleTownsend(), Garfield::MediumSilicon::HoleTownsend(), Garfield::Medium::HoleVelocity(), Garfield::MediumCdTe::HoleVelocity(), Garfield::MediumGaAs::HoleVelocity(), Garfield::MediumSilicon::HoleVelocity(), Garfield::Medium::IonDiffusion(), Garfield::Medium::IonDissociation(), Garfield::Medium::IonVelocity(), Garfield::SolidSphere::IsInside(), Garfield::SolidTube::IsInside(), Garfield::ComponentAnalyticField::IsInTrapRadius(), Garfield::ComponentAnalyticField::IsWireCrossed(), Garfield::MediumGas::LoadGasFile(), Heed::lorbeta(), Heed::lorgamma_1(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::TrackBichsel::NewTrack(), Garfield::TrackElectron::NewTrack(), Garfield::TrackHeed::NewTrack(), Garfield::TrackPAI::NewTrack(), Garfield::TrackSimple::NewTrack(), norm_DynLinArr(), norm_DynLinArr_part(), Heed::PairProd::PairProd(), Heed::HeedParticle_BGM::physics(), Heed::HeedDeltaElectron::physics_after_new_speed(), Heed::HeedPhoton::physics_after_new_speed(), Garfield::ViewField::PlotProfile(), pois(), PointsRan::ran(), vec::random_sfer_vec(), Garfield::RndmGaussian(), Garfield::RndmPolya(), rnorm_double(), rnorm_float(), rnorm_improved(), Garfield::MediumMagboltz::RunMagboltz(), Garfield::MediumGas::ScaleDiffusion(), Garfield::Track::SetBeta(), Garfield::Track::SetBetaGamma(), Garfield::Track::SetMomentum(), Garfield::ViewFEMesh::SetPlane(), Garfield::ViewField::SetPlane(), Heed::SimpleTablePhotoAbsCS::SimpleTablePhotoAbsCS(), Garfield::SolidBox::SolidBox(), Garfield::SolidTube::SolidTube(), Heed::straight::straight(), Heed::theta_two_part(), Garfield::TrackHeed::TransportDeltaElectron(), Garfield::TrackHeed::TransportPhoton(), Garfield::ComponentFieldMap::UnmapFields(), and Garfield::MediumGas::WriteGasFile().
Definition at line 324 of file DoubleAc.cpp.
Referenced by norm_DynLinArr(), and normsq_DynLinArr().
const double one_minus_def_dbl_prec = double(1.0) - DEF_DBL_PREC |
Definition at line 38 of file DoubleAc.h.
const double one_minus_def_flt_prec = double(1.0) - DEF_FLT_PREC |
Definition at line 42 of file DoubleAc.h.
Referenced by DoubleAc::DoubleAc(), and DoubleAc::operator=().
const double one_plus_def_dbl_prec = double(1.0) + DEF_DBL_PREC |
Definition at line 37 of file DoubleAc.h.
Referenced by DoubleAc::DoubleAc(), and DoubleAc::operator=().
const double one_plus_def_flt_prec = double(1.0) + DEF_FLT_PREC |
Definition at line 41 of file DoubleAc.h.
Referenced by DoubleAc::DoubleAc(), and DoubleAc::operator=().